Javascript 删除传单绘图上的多个图层
我使用传单绘制在地图上绘制多边形。 目前,我只能删除单击的多边形 这是我现在拥有的一个例子: 假设你画了3个多边形。如果要删除前2个,必须单击垃圾箱图标,单击前2个,然后单击保存。我想要实现的是不必点击第二个。我实际上有第二个的id,但我无法将其添加到保留单击的层的Javascript 删除传单绘图上的多个图层,javascript,leaflet,leaflet-draw,Javascript,Leaflet,Leaflet Draw,我使用传单绘制在地图上绘制多边形。 目前,我只能删除单击的多边形 这是我现在拥有的一个例子: 假设你画了3个多边形。如果要删除前2个,必须单击垃圾箱图标,单击前2个,然后单击保存。我想要实现的是不必点击第二个。我实际上有第二个的id,但我无法将其添加到保留单击的层的removingLayers数组中 我有什么自动取款机: function deleteSubPolygons(e) { var layersToRemove = []; if (e.layer &a
removingLayers
数组中
我有什么自动取款机:
function deleteSubPolygons(e) {
var layersToRemove = [];
if (e.layer && e.layer._originalPoints != null && e.layer._latlngs != null && e.layer.id != null && Number.isInteger(e.layer.id)) {
var polygonChildren = getPoligonChildren(e.layer.id);
for (var l in map._layers) {
if (polygonChildren.indexOf(map._layers[l].id) > -1) {
polygonsToDelete.push(map._layers[l].id);
layersToRemove.push(map._layers[l]);
}
}
for (var i = 0; i < layersToRemove.length; i++) {
map.removeLayer(layersToRemove[i]);
}
}
}
我的问题是:如何从外部访问
\u deletedLayers
。我在删除模式下对要删除的多边形触发单击事件,从而解决了这个问题:
for (var l in map._layers) {
if (polygonChildren.indexOf(map._layers[l].id) > -1) {
map._layers[l].fireEvent('click');
}
}
首先,您是否尝试过-
map.\u deletedLayers
?第二,这个答案不是完全重复的,但可能会有所帮助——我想我已经尝试过了,但没有成功。我已经在下面发布了我的解决方案。谢谢你的评论。
for (var l in map._layers) {
if (polygonChildren.indexOf(map._layers[l].id) > -1) {
map._layers[l].fireEvent('click');
}
}