jquery - Leaflet - 如何查找现有标记并删除标记?

标签 jquery leaflet

我已经开始使用leaflet作为开源 map 了,http://leaflet.cloudmade.com/

以下 jQuery 代码将启用在 map 上点击 map 上的标记的创建:

 map.on('click', onMapClick);
function onMapClick(e) {
        var marker = new L.Marker(e.latlng, {draggable:true});
        map.addLayer(marker);
        marker.bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();
};

但目前我(在我的代码中)无法删除现有标记,或找到我在 map 上创建的所有标记并将它们放入数组中。任何人都可以帮助我了解如何执行此操作吗?传单文档可在此处获得:http://leaflet.cloudmade.com/reference.html

最佳答案

你必须把你的“变量标记”放在函数之外。稍后您可以访问它:

var marker;
function onMapClick(e) {
        marker = new L.Marker(e.latlng, {draggable:true});
        map.addLayer(marker);
        marker.bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();
};

然后:

map.removeLayer(marker)

但是你只能那样拥有最新的标记,因为每次,var 标记都会被最新的标记删除。因此,一种方法是创建一个全局标记数组,然后将标记添加到全局数组中。

关于jquery - Leaflet - 如何查找现有标记并删除标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9912145/

相关文章:

jquery - 为什么集合获取后 el 未定义

leaflet - 从传单标记集群中删除项目

leaflet - 查找 LineString 与 turfjs 中的多边形边界相交的坐标

删除 R Shiny 中的特定传单标记。

jquery - 为什么这些 jQuery 对象不起作用?

jquery - 使用 Turbolinks,jQuery 停止工作,直到硬刷新

javascript - 如何在 JS 插件中使值 "get from my JS"而不是默认值 "get from CSS"?

javascript - 插入 HTML 代码不受 CSS 和 Jquery 的影响

javascript - 带有传单和杂食动物的 csv 聚类标记

javascript - 如何显示一个弹出窗口,其中显示传单 map 中 Geoserver WMS 图层的要素属性?