我有一個大的地圖應用程序,所以要有代表性,我將不得不提供一大塊代碼。所以,這是我嘗試從地圖上刪除所有圖層:無法從地圖中刪除所有圖層
map.getLayers().forEach(function (layer) {
map.removeLayer(layer);
});
//map.getOverlays().clear(); <-- also tried this, but to no effect
而且我有一些隨機行爲 - 有時所有層被去除,有時沒有。這是一個完全的隨機性,所以沒有保證,你將能夠重現這個問題。所以,對我來說,在概念上可能就足夠了解它爲什麼會發生。
SOLUTION
這顯然是一個OL3的錯誤,因爲如果我環路和刪除兩次即可,然後開始工作:
map.getLayers().forEach(function (layer) {
map.removeLayer(layer);
});
//for some crazy reason I need to do it twice.
map.getLayers().forEach(function (layer) {
map.removeLayer(layer);
});
也許,這是不是一個錯誤,並有一些祕密方法,可以清除地圖。但我不知道。
這樣做的結果是非常相同的行爲。我看到'catch'塊內沒有錯誤信息。 – Jacobian
這使用地圖的內部屬性。永遠不要這樣做! – ahocevar