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