首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何强制重绘层

如何强制重绘层
EN

Stack Overflow用户
提问于 2015-04-22 17:32:39
回答 2查看 2.6K关注 0票数 0

我正在寻找一种方法,可以重绘存储在图层中的所有要素(相当于使用OL2的“重绘”方法)

类ol.layer.Vector的"changed“方法仅”刷新“地图上可见的要素(例如,缩放部分),因此不会影响外部要素

应用于这些数据的处理方法是定期删除旧要素

我如何才能做到这一点?

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

提前感谢

Jean-Marie

EN

回答 2

Stack Overflow用户

发布于 2015-04-23 21:52:34

首先,感谢您的回答

我的问题实际上需要更多的信息:

浏览器客户端通过实时websocket连接接收点数

每秒,从这些点收集的新特征数组就会以这种方式添加到Vector图层中:

代码语言:javascript
运行
复制
vectorLayer.getSource().addFeatures(features);

源缓冲器的持续时间例如是一小时,并且为了管理一小时的时间滑动窗口,每分钟移除旧特征

代码语言:javascript
运行
复制
        map.once('postrender',removeOldFeatures);
        vectorLayer.changed(); or map.renderSync();

此移除仅适用于可见要素

但是,一旦某些要素由于对地图上未显示这些要素的部分进行缩放而不可见,则无论使用何种方法(vectorLayer.changed()或map.render()),都不会对这些要素执行移除处理(removeOldFeatures),因为要素的数量不会停止增加...

Jean-Marie

票数 1
EN

Stack Overflow用户

发布于 2015-04-23 17:57:59

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29793335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档