我正在使用传单在我的网站上显示地图。我希望用户在地图上显示并保存他的地址(通过放置标记),所以在我的代码中,如果用户双击,标记将被放置在地图上。问题是我不想禁用双击缩放。因此,当用户再次双击时,应删除先前的标记并添加新标记。 我搜索了Stack Overflow并找到了这段代码
map.on('dblclick', addMarker);
var Marker;
function addMarker(e) {
//remove previous markers
map.removeLayer(Marker);
// Add marker to map at click location; add popup window
Marker = new L.marker(e.latlng,{draggable:true}).addTo(map);
}
但是在添加" map.removeLayer(Marker)之后;"不仅双击缩放停止工作,而且还没有添加标记到地图了 简介:我总是希望将最后一个标记添加到地图
答案 0 :(得分:4)
脚本在第一次双击时停止工作,因为它尝试删除初始化时尚未分配的Marker
。
一旦发生错误,JS函数的其余部分就会停止:没有添加标记,也没有双击缩放。
在尝试删除之前,只需检查Marker
是否已分配。
map.on('dblclick', addMarker);
var Marker;
function addMarker(e) {
//remove previous markers
if (Marker) {
map.removeLayer(Marker);
}
// Add marker to map at click location; add popup window
Marker = new L.marker(e.latlng, {
draggable: true
}).addTo(map);
}