2015-04-22 186 views
0

我要寻找的是重绘所有存储在图层中的要素(相当于法“重绘”与OL2)如何强制重绘层

类ol.layer的“改变”的方法等。矢量“刷新”只有地图(例如在放大部分)上可见的功能 ,因而不会影响之外

功能应用到这些数据的处理是定期删除旧的功能

如何我可以做到这一点吗?

另一个问题是如何通知此特定删除的结束?

在此先感谢

让 - 玛丽·

+0

这取决于。你如何获得你的功能?它们是否来自您异步获取的文件,并且内容是远程更新的?如果是这样,为源网址添加唯一参数应该是正确的方法。 哦,你可能也想查看FAQ,但我不确定它是否适用于你的情况(但值得一试):https://github.com/openlayers/ol3/blob/master/ DOC/faq.md#怎么办,我力-A-重新渲染的最地图 –

回答

0

我有同样的问题与TileVector源和格式GeoJSON的。最后,我使用提供的TileUrlFunction并重新绘制图层,我只需使用layer.setSource(yourdefinedSource)方法再次设置Source。杜贝是对的。大多数情况下(如果源经常更新),发送唯一参数(如unix时间戳)作为缓存是非常有用的。

1

首先感谢您的回答

我的问题,需要有效的更多信息:

浏览器客户端通过实时WebSocket连接

每一秒,从这些收集到的新功能阵列接收点点以这种方式添加到矢量图层中:

vectorLayer.getSource().addFeatures(features); 

源b的持续时间uffer是,例如一小时,来管理一个小时的时间滑动窗口,旧的功能被删除的每一分钟

 map.once('postrender',removeOldFeatures); 
     vectorLayer.changed(); or map.renderSync(); 

该移除唯一正确的可见功能

但只要一些做特征是不可见的,例如,由于在某些地图的某些部分没有显示这些特征时对其进行缩放,则无论使用何种方法(vectorLayer.changed()或map),都不会执行移除处理(removeOldFeatures) .render()) 因此功能的数量不会停止增加...

让 - 玛丽