Добавить несколько маркеров на карту рельсов

Я реализовал карты Google на своем веб-приложении ruby ​​on rails. Я отображаю карту очень хорошо, и я также могу разместить маркеры очень хорошо. Моя проблема в том, что у меня есть 2 функции JavaScript, которые обновляют карту и удаляют маркер на карте. Я хочу иметь возможность сохранить текущую карту и просто добавить еще один маркер на карту с моими функциями. Как остановить обновление карты, чтобы отображалось более 1 маркера?

// application.js

var map;

function initMap() {
  var lat=29.732585;
  var lng=-95.462830;

  map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: 29.7604, lng: -95.3698},
      zoom: 10.25,
  });
  var marker = new google.maps.Marker({
      position: {lat:29.732585,lng:-95.462830},
      map: map
  });
}

function getEmployee() {
  map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: 29.7604, lng: -95.3698},
      zoom: 10.25,
  });
  var marker = new google.maps.Marker({
      position: {lat:29.7154,lng:-95.3893},
      map: map
  });
}

function getLocation() {
  map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: 29.7604, lng: -95.3698},
      zoom: 10.25,
  });
  var marker = new google.maps.Marker({
      position: {lat:29.7560,lng:-95.3573},
      map: map
  });
}

1 ответ

Решение

При звонке getEmployee() или же getLocation() Вы воссоздаете карту, позвонив new google.maps.Map, Вот почему ваша карта обновляется при каждом вызове.

Просто удалите эту карту, воссоздав из этих двух функций. Вы создаете карту на initMap() вызвать и сохранить его в глобальной переменной mapтак что его можно использовать в getEmployee() а также getLocation() где вы создаете маркер.

Другие вопросы по тегам