传单删除GeoJSON图层

时间:2018-11-05 12:30:20

标签: javascript leaflet geojson

我通过在传单中创建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);

我在做什么错了?

3 个答案:

答案 0 :(得分:2)

在将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);

答案 1 :(得分:1)

对我没有任何帮助,因此我看了一下Chrome开发者工具。如果您单击突出显示元素功能并实际单击要删除的任何内容,您将在页面上看到它现在是带有类ID的元素。所以我只是使用

$ awk -F ": " 'BEGIN{OFS=FS}{$1=""; print}' test
: abc : xyz
: aaa------ : bbbb
: sometext sometext

从jQuery开始,它起作用了!

答案 2 :(得分:0)

对我来说,该线程没有任何作用,我使用上面的@Rastin答案提出了可靠的解决方案:

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

顺便说一句,我的线条画为:

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