我不知道爲什麼沒有得到清除,我在嘗試刪除多邊形層:添加和刪除幾何座標層,單張
map.on('zoomend', function(e){
console.log(map.getZoom());
//This is going to be a function that gets dynamically built.
var polygons = L.polygon([
[43.22519, -107.69348],
[42.99259, -105.48523],
[42.26105, -107.7594]
]).bindPopup("Potential Geo polygon area of companies with violations.");
if(map.getZoom() >= 5){ map.removeLayer(geojson); }//order matters
if(map.getZoom() == 5){
geojson = L.geoJson(statesData, {
style: style,
onEachFeature: onEachFeature
}).addTo(map);
}
if(map.getZoom() == 7){
if(map.hasLayer(polygons)){
console.log("TEst");
}
map.removeLayer(polygons);
}
if(map.getZoom() == 6){
map.addLayer(polygons);
}
});
所以,等值線(以GeoJSON)層容易被移除並添加使用addTo()和removeLayer()函數。但是,多邊形變量不是這種情況。有誰知道爲什麼?
map.hasLayer(polygons)行不會打印到控制檯,指示多邊形不是圖層。如果是這種情況,那麼L.polygon()中的L應該是什麼?
非常感謝。
奇怪。根據這個:你引用的http://leafletjs.com/reference.html#polygon,你可以使用addLayer將多邊形對象添加到地圖中。我會認爲基於文檔,隨後應該能夠使用removeLayer從地圖中刪除對象。我嘗試了你的修改方法,但沒有奏效。謝謝你的努力和幫助,無論如何。 –
您可以發佈您收到的控制檯錯誤消息以幫助解決此問題嗎? – geraldarthur
我沒有得到任何控制檯錯誤。否則我會很樂意發佈它們。我嘗試了FF和Chrome。另外,window.map.removeLayer(多邊形)有什麼區別;和map.removeLayer(多邊形);?通過添加窗口,您可以簡單地從地圖對象進入窗口對象,並且不需要這樣做。或者我錯過了什麼? –