OpenLayers:在放大或缩小后重新出现被破坏的特征

时间:2012-08-08 17:27:22

标签: javascript openlayers

我有一个OpenLayers + Bing地图应用程序,显示危险废物站点。用户可以单击链接以在地图上切换网站的子网站。

当我通过调用图层上的destroyFeatures()来关闭子网格(它们是Vector图层上的点)时,它们会按预期消失。但是,如果我放大或缩小地图,某些子网站会重新出现。移动地图时不会发生这种情况,只是缩放。

神秘地重新出现的是重合点,即具有完全相同坐标的两个站点。两者都被摧毁,两者都重新出现。

为什么这些会从图层中被破坏,然后在缩放时重新出现?

(OpenLayers版本为2.11)

3 个答案:

答案 0 :(得分:1)

试试这个,它对我有用

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

答案 1 :(得分:0)

请记住,destroyFeatures()会更改向量中对象的索引。如果在代码中使用索引,则可能会导致问题。

答案 2 :(得分:0)

您确定将所有功能作为参数发送到destroyFeatures()方法吗?删除所有内容的更简单方法就是调用removeAllFeatures()方法。如果您想在用户切换子网站时隐藏和显示要素,那么在向量图层上使用show()hide()方法会更好。