добавить маркер с Google-Maps-for-Rails - PullRequest
2 голосов
/ 08 апреля 2011

Я играл с https://github.com/apneadiving/Google-Maps-for-Rails и Я хотел бы очистить все маркеры на карте и добавить новый в позиции, которую пользователь щелкнул на карте. Я добавил следующий код на своей странице

<script type="text/javascript" charset="utf-8">
function gmaps4rails_callback() {
   google.maps.event.addListener(Gmaps4Rails.map, 'click', function(object){ 
      alert(object.latLng);
   });
</script>

И, таким образом, я могу видеть предупреждение с широтой и долготой, теперь, как я могу удалить старые маркеры и создать новый маркер и разместить его на карте?

1 Ответ

3 голосов
/ 08 апреля 2011

Если вы хотите очистить маркеры, созданные с помощью gmaps4rails, используйте эту функцию js:

Gmaps4Rails.clear_markers();

в противном случае, прокрутите ваши маркеры и сделайте marker.setMap(null)

Хорошо, следующееФункция удаляет все маркеры и добавляет новый, где пользователь нажимает:

var marker = null;
function gmaps4rails_callback() {
   Gmaps4Rails.clear_markers();
   if (marker != null) { marker.setMap(null); }
   google.maps.event.addListener(Gmaps4Rails.map, 'click', function(object){ marker = new google.maps.Marker({position: object.latLng, map: Gmaps4Rails.map});});
}

Примечания:

  • Вы можете использовать любую логику в коде js для создания только одного маркера илиотправьте свои координаты через ajax.
  • Широта может быть получена с помощью: object.latLng.lat(), долгота с: object.latLng.lng()

Другой способ добавить маркеры - использовать функцию add_markerздесь описано: https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Dynamic-%28or-Ajax%29-map-refresh

...