传单删除 GeoJSON 层

Leaflet remove GeoJSON layer(s)

我通过在传单中创建 GeoJSON 图层来为地图上的区域着色。首先我创建一个空层:

var layerPostalcodes=L.geoJSON().addTo(map);

然后我创建一个包含形状信息的 geojson 元素并将其添加到图层中:

layerPostalcodes.addData(geojson);

这会正确显示地图上的区域。现在,单击一个按钮我想从地图上删除所有形状。这是行不通的。我尝试了几种方法:

layerPostalcodes.clearLayers();

或通过 LayerGroup,向其添加 GeoJSON 层,以便我可以使用 removeLayer()。但是,这甚至不显示形状,更不用说删除它们了。

var layerGroup = new L.LayerGroup();
layerGroup.addLayer(layerPostalcodes);
layerGroup.addTo(map);
layerGroup.removeLayer(layerPostalcodes);

我做错了什么?

先将 layerGroup 添加到地图,然后再将 layerPostalCodes 添加到地图。

var layerGroup = new L.LayerGroup();
layerGroup.addTo(map);
layerGroup.addLayer(layerPostalcodes);
layerGroup.removeLayer(layerPostalcodes);

var layerGroup = new L.LayerGroup();
layerGroup.addTo(map);
layerGroup.addLayer(layerPostalcodes);
map.removeLayer(layerGroup);

我没有任何效果,所以我查看了 Chrome 开发人员工具。如果您单击突出显示元素功能并实际单击要删除的任何内容,您将看到它现在和页面上的元素具有 class id。所以我简单地使用了

$(".<class name>").remove();

来自 jQuery,它成功了!

对我来说,这个线程没有任何效果,我使用上面的@Rastin 回答来想出一个可靠的解决方案:

$(".leaflet-interactive").remove(); //removes previously drawn lines! 

顺便说一句,我画的线是:

route_lines = L.geoJSON(myLines, { style: myStyle }).addTo(map);