OpenLayers:被破坏的特征在放大或缩小后重新出现
Posted
技术标签:
【中文标题】OpenLayers:被破坏的特征在放大或缩小后重新出现【英文标题】:OpenLayers: destroyed features reappear after zooming in or out 【发布时间】:2012-08-08 17:27:22 【问题描述】:我有一个显示危险废物地点的 OpenLayers + Bing 地图应用程序。用户可以单击链接在地图上切换站点的子站点。
当我通过调用 layer 上的 destroyFeatures() 来关闭子站点(它们是 Vector 层上的点)时,它们会按预期消失。但是,如果我放大或缩小地图,某些子站点会重新出现。移动地图时不会发生这种情况,只是缩放。
神秘再现的是重合地点,即坐标完全相同的两个地点。两者都被摧毁,并且都重新出现。
为什么这些会从图层中被破坏,然后在缩放时重新出现?
(OpenLayers 版本为 2.11)
【问题讨论】:
这也发生在我身上。你找到解决办法了吗? 【参考方案1】:试试这个,它对我有用
layer.removeAllFeatures();
layer.destroyFeatures();//optional
layer.addFeatures([]);
【讨论】:
【参考方案2】:请记住,destroyFeatures() 会更改向量中对象的索引。如果您在代码中使用索引,这可能会导致问题。
【讨论】:
【参考方案3】:您确定将所有功能作为参数发送到destroyFeatures()
方法吗?删除所有内容的更简单方法是调用removeAllFeatures()
方法。如果您想在用户切换子站点时隐藏和显示功能,那么在矢量图层上使用show()
和hide()
方法会更好。
【讨论】:
以上是关于OpenLayers:被破坏的特征在放大或缩小后重新出现的主要内容,如果未能解决你的问题,请参考以下文章