2012-08-08 28 views
2

我有一個OpenLayers + Bing地圖應用程序,顯示危險廢棄地點。用戶可以點擊鏈接在地圖上切換網站的子網站。OpenLayers:被破壞的特徵在放大或縮小後重新出現

當我通過調用圖層上的destroyFeatures()關閉子網站(它們是矢量圖層上的點)時,它們會按預期消失。但是,如果我放大或縮小地圖,某些子網站會重新出現。移動地圖時不會發生這種情況,只是縮放。

神祕地重現的那些是重合的地點,即具有完全相同座標的兩個地點。兩者都被破壞,並且都重新出現。

爲什麼這些會從圖層中被破壞,然後在縮放時重新出現?

(的OpenLayers版本是2.11)

+0

這發生在我身上了。你找到了解決方案嗎? – Yun 2012-10-11 05:52:43

回答

0

記住destroyFeatures()改變對象的指數向量。如果您在代碼中使用索引,這可能會導致問題。

0

您確定您將所有功能作爲參數發送到destroyFeatures()方法嗎?刪除所有內容的更簡單的方法是撥打removeAllFeatures()方法。如果要在用戶切換子網站時隱藏和顯示要素,則最好在矢量圖層上使用show()hide()方法。

1

試試這個,它爲我工作

layer.removeAllFeatures(); 
layer.destroyFeatures();//optional 
layer.addFeatures([]);