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:被破坏的特征在放大或缩小后重新出现的主要内容,如果未能解决你的问题,请参考以下文章

openlayers小案例(输入地名查询拖动图层切换图层透明度鹰眼图层显示与隐藏定位放大缩小)新手必备

添加地图滚轮放大缩小的动画效果

OpenLayers3 在放大时不刷新 WMS

OpenLayers 3 的地图基本操作

在blender中bezier圆怎么放大和缩小

Solidworks如何等比例缩小放大模型