Leaflet 未移除的标记:传单
我正在使用传单api。我在其中添加了标记的自定义控件 我有一个按钮,可以移除所有标记 问题 通过包装,我必须删除所有标记,但功能不工作…浏览器没有给出任何控制台错误,所以我一无所知,没有完全理解api的结构 脚本Leaflet 未移除的标记:传单,leaflet,angular-leaflet-directive,dc.leaflet.js,Leaflet,Angular Leaflet Directive,Dc.leaflet.js,我正在使用传单api。我在其中添加了标记的自定义控件 我有一个按钮,可以移除所有标记 问题 通过包装,我必须删除所有标记,但功能不工作…浏览器没有给出任何控制台错误,所以我一无所知,没有完全理解api的结构 脚本 var markers = new L.FeatureGroup(); map.on('click', function markerPlace(e) { //L.marker(e.latlng, { ic
var markers = new L.FeatureGroup();
map.on('click', function markerPlace(e) {
//L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
markers.addLayer(marker);
map.off('click', markerPlace);
});
}).addTo(map);
//onClick this button we have to remove all marker
<button id="removeMarker">Remove Markers</button>
$('#removeMarker').click(function (e) {map.removeLayer(markers) });
var markers=新的L.FeatureGroup();
地图上('click',函数标记位置(e){
//L.marker(e.latlng,{icon:markerIcon,draggable:true}).addTo(map);
marker=L.marker(e.latlng,{icon:markerIcon,draggable:true}).addTo(map);
markers.addLayer(marker);
地图关闭(“单击”,标记位置);
});
}).addTo(地图);
//单击此按钮后,我们必须删除所有标记
删除标记
$('#removeMarker')。单击(函数(e){map.removeLayer(markers)});
如果有人对此有所了解,请提供帮助或任何形式的参考,我们将不胜感激。感谢您抽出时间当您正确识别代码时,您可以轻松发现第一个错误:
var markers = new L.FeatureGroup();
map.on('click', function markerPlace(e) {
//L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
markers.addLayer(marker);
map.off('click', markerPlace);
});
}).addTo(map); // <- What is this doing here
因此,您希望将标记添加到名为markers
的L.FeatureGroup
中,那么为什么要将它们添加到地图中呢
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
应改为:
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(markers);
简而言之:在地图的单击事件中,您试图从地图中删除标记featurelayer,但该标记尚未正确添加,您已将标记添加到地图,而不是featuregroup
PS:您想删除标记,但实际上您要做的是删除整个featuregroup。如果您想保留featuregroup,只移除标记,您也可以使用L.featuregroup
的clearLayers
方法:
markers.clearLayers();
正确识别代码后,您可以很容易地发现第一个错误:
var markers = new L.FeatureGroup();
map.on('click', function markerPlace(e) {
//L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
markers.addLayer(marker);
map.off('click', markerPlace);
});
}).addTo(map); // <- What is this doing here
因此,您希望将标记添加到名为markers
的L.FeatureGroup
中,那么为什么要将它们添加到地图中呢
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
应改为:
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(markers);
简而言之:在地图的单击事件中,您试图从地图中删除标记featurelayer,但该标记尚未正确添加,您已将标记添加到地图,而不是featuregroup
PS:您想删除标记,但实际上您要做的是删除整个featuregroup。如果您想保留featuregroup,只移除标记,您也可以使用L.featuregroup
的clearLayers
方法:
markers.clearLayers();
正确识别代码后,您可以很容易地发现第一个错误:
var markers = new L.FeatureGroup();
map.on('click', function markerPlace(e) {
//L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
markers.addLayer(marker);
map.off('click', markerPlace);
});
}).addTo(map); // <- What is this doing here
因此,您希望将标记添加到名为markers
的L.FeatureGroup
中,那么为什么要将它们添加到地图中呢
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
应改为:
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(markers);
简而言之:在地图的单击事件中,您试图从地图中删除标记featurelayer,但该标记尚未正确添加,您已将标记添加到地图,而不是featuregroup
PS:您想删除标记,但实际上您要做的是删除整个featuregroup。如果您想保留featuregroup,只移除标记,您也可以使用L.featuregroup
的clearLayers
方法:
markers.clearLayers();
正确识别代码后,您可以很容易地发现第一个错误:
var markers = new L.FeatureGroup();
map.on('click', function markerPlace(e) {
//L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
markers.addLayer(marker);
map.off('click', markerPlace);
});
}).addTo(map); // <- What is this doing here
因此,您希望将标记添加到名为markers
的L.FeatureGroup
中,那么为什么要将它们添加到地图中呢
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(map);
应改为:
marker = L.marker(e.latlng, { icon: markerIcon, draggable: true }).addTo(markers);
简而言之:在地图的单击事件中,您试图从地图中删除标记featurelayer,但该标记尚未正确添加,您已将标记添加到地图,而不是featuregroup
PS:您想删除标记,但实际上您要做的是删除整个featuregroup。如果您想保留featuregroup,只移除标记,您也可以使用L.featuregroup
的clearLayers
方法:
markers.clearLayers();