我要寻找的是重绘所有存储在图层中的要素(相当于法“重绘”与OL2)如何强制重绘层
类ol.layer的“改变”的方法等。矢量“刷新”只有地图(例如在放大部分)上可见的功能 ,因而不会影响之外
功能应用到这些数据的处理是定期删除旧的功能
如何我可以做到这一点吗?
另一个问题是如何通知此特定删除的结束?
在此先感谢
让 - 玛丽·
我要寻找的是重绘所有存储在图层中的要素(相当于法“重绘”与OL2)如何强制重绘层
类ol.layer的“改变”的方法等。矢量“刷新”只有地图(例如在放大部分)上可见的功能 ,因而不会影响之外
功能应用到这些数据的处理是定期删除旧的功能
如何我可以做到这一点吗?
另一个问题是如何通知此特定删除的结束?
在此先感谢
让 - 玛丽·
我有同样的问题与TileVector源和格式GeoJSON的。最后,我使用提供的TileUrlFunction并重新绘制图层,我只需使用layer.setSource(yourdefinedSource)方法再次设置Source。杜贝是对的。大多数情况下(如果源经常更新),发送唯一参数(如unix时间戳)作为缓存是非常有用的。
首先感谢您的回答
我的问题,需要有效的更多信息:
浏览器客户端通过实时WebSocket连接
每一秒,从这些收集到的新功能阵列接收点点以这种方式添加到矢量图层中:
vectorLayer.getSource().addFeatures(features);
源b的持续时间uffer是,例如一小时,来管理一个小时的时间滑动窗口,旧的功能被删除的每一分钟
map.once('postrender',removeOldFeatures);
vectorLayer.changed(); or map.renderSync();
该移除唯一正确的可见功能
但只要一些做特征是不可见的,例如,由于在某些地图的某些部分没有显示这些特征时对其进行缩放,则无论使用何种方法(vectorLayer.changed()或map),都不会执行移除处理(removeOldFeatures) .render()) 因此功能的数量不会停止增加...
让 - 玛丽
这取决于。你如何获得你的功能?它们是否来自您异步获取的文件,并且内容是远程更新的?如果是这样,为源网址添加唯一参数应该是正确的方法。 哦,你可能也想查看FAQ,但我不确定它是否适用于你的情况(但值得一试):https://github.com/openlayers/ol3/blob/master/ DOC/faq.md#怎么办,我力-A-重新渲染的最地图 –