单个 VectorTile 图层加载的许多“postrender”和“rendercomplete”事件

Posted

技术标签:

【中文标题】单个 VectorTile 图层加载的许多“postrender”和“rendercomplete”事件【英文标题】:Many 'postrender' and 'rendercomplete' events for a single VectorTile layer loading 【发布时间】:2021-03-26 18:16:32 【问题描述】:

我们向 PluggableMap (OpenLayers v6.4.3) 添加了一个带有样式函数的新层 VectorTile

根据文档:

图层渲染后触发图层“postrender”事件 map 'rendercomplete' 事件在渲染完成时触发,即当前视口的所有源和图块都已完成加载,并且所有图块都淡入。

通过在加载此地图(单个 VectorTile 层)时在控制台中记录这些事件,我们可以看到 6 层“postrender”事件和 3 个地图“rendercomplete”事件。

似乎在图层的每个渲染图块(来自渲染器/画布/VectorTileLayer)之后触发了一个图层“postrender”事件,并且每 2 个渲染图块触发了一个地图“rendercomplete”。

如何检测图层何时完全渲染,即所有图块渲染完毕?

【问题讨论】:

【参考方案1】:

当第一个 rendercomplete 事件发生时,地图应该被完全渲染。

我创建了一个 PR 来修复您观察到的重复渲染完成事件。 https://github.com/openlayers/openlayers/pull/11859

【讨论】:

您能否确认现在更新的 OpenLayers (6.5.0) 版本应该可以解决此问题? 在 6.5.0 中,我实际上仍然看到许多 'post render' 和 'rendercomplete',从这个角度来看没有变化:如何检测图层何时完全渲染,即所有图块都渲染? 链接的PR包含在v6.5.0中。 图像层存在一个未解决的问题:github.com/openlayers/openlayers/issues/11934,我认为这与您的问题无关。您能否提供一个工作示例来说明您的问题?您可以通过单击右上角的“编辑”按钮来修改openlayers.org/en/latest/examples 的任何示例。

以上是关于单个 VectorTile 图层加载的许多“postrender”和“rendercomplete”事件的主要内容,如果未能解决你的问题,请参考以下文章

gis三个图层一起导出

如图ARCMAP选项的栅格图层显示不全,如何解决?

如何在单个ggplot2中对齐图层(密度图和垂直线)

从Matlab中的单个文件加载多个函数[重复]

在加载图层的函数加载图层后,我怎么能调用函数?

无法使用 Clover POS REST API 添加带有修饰符的单个行项目