限制 Leaflet 点击创建标记的数量

3

我正在提示用户点击地图上创建一个单点标记。我需要将其限制为仅一个可拖动的标记。我已尝试使用计数变量和比较条件,但这个条件对我没有用(用户可以创建多个标记-如下图所示)。

enter image description here

这是我的代码:

var count = 0;
if (count <= 0) { 
map.on('click', function(e){
    count += 1;
    var marker = L.marker(e.latlng,{draggable: true}).addTo(map);
    var lat = e.latlng.lat;
    var lon = e.latlng.lng;
    alert("Lat, Lon : " + lat + ", " + lon);

    });
}

提前致谢。


1
当监听器被首次调用后,您可以将其删除。以下是如何执行此操作的示例:https://dev59.com/sHI_5IYBdhLWcg3wEOrq - Titus
1个回答

2

您可以通过off简单地在第一次点击后取消click事件的绑定

var onClick = function(e) {
    map.off('click', onClick);

    var marker = L.marker(e.latlng,{draggable: true}).addTo(map);
    var lat = e.latlng.lat;
    var lon = e.latlng.lng;
    alert("Lat, Lon : " + lat + ", " + lon);
};

map.on('click', onClick);

更多信息请查看Leaflet文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接