我通过在传单中创建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);
我在做什么错了?
答案 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);