使用Google-Maps-for-Rails添加标记

我正在玩https://github.com/apneadiving/Google-Maps-for-Rails ,我想清除地图上的所有标记,并在地图上用户点击的位置添加一个新标记,我在页面中添加了以下代码

 function gmaps4rails_callback() { google.maps.event.addListener(Gmaps4Rails.map, 'click', function(object){ alert(object.latLng); });  

通过这种方式,我可以看到具有lat和long值的警报,现在我如何删除旧标记并创建新标记并将其放在地图上?

如果要清除gmaps4rails创建的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