我正在尝试在简单的javascript网络API(没有jQuery)上具有唯一标记。
每次点击地图时,我首先尝试删除以前的标记,
marker.setMap(null);
只是在创建新版本之前,但是它阻止了新版本,屏幕上没有任何显示。
我可以轻松地通过按钮或其他事件删除标记,但是有一种方法可以自动执行,并且在地图上只有一个标记(使用draggable:true可以移动它,也许dblClick可以删除它)?
平常触发的标记创建
google.maps.event.addListener(map, "click", function(event) {...
var marker = new google.maps.Marker({...
该界面用于定义一个位置,因此我不想在屏幕上出现多个标记。然后将坐标保存在数据库中。
当您使用var
-keyword添加标记时,以后将无法访问该变量,setMap
由于未定义变量,调用失败(并停止进一步的脚本执行)。
使用单个标记的示例(标记将作为地图的属性存储):
google.maps.event.addListener(map, "click", function(event) {
//closure for the map
var that=this;
//only create a single marker
if(!this.marker){
var input = document.getElementById("location_name");
this.marker = new google.maps.Marker({draggable:true,title:input.value});
google.maps.event.addListener(this.marker,'dblclick',function(){
this.setMap(null);
});
//update title
google.maps.event
.addDomListener(input,
'change',
function(){
that.marker.setTitle(this.value);
}
);
}
//update position
this.marker.setOptions({map : this,
position : event.latLng
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句