使用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