VectorTile 图层未更新

VectorTile Layer not updating

我在使用 openlayers 4.2.0 使用 ol.layer.VectorTile 层时遇到一个奇怪的问题。

对于 ol.source.VectorTile,我正在使用 tileLoadFunction 对我的 tileGrid 中的图块发出网络请求。我在图层中的地图上有大约 100 个点。用户可以选择某些选项,这将转到重新定义 VectorTile 图层和 VectorTile 源的功能,并删除和读取图层,以便在地图上绘制新点.

切换图层几次后一切似乎都很好,但最终 tileLoadFunction 停止调用。有时它会被调用 3 次或类似的东西,但随后停止被调用,即使 tileGrid 中有更多的图块。我不确定发生了什么,就像它达到了某种限制或阻止它调用 tileLoadFunction 的东西?我曾尝试在源代码中使用 .refresh() 以防出现此问题,但这无济于事。

我检查了给定图块的数据中是否有任何特征,如果没有,我跳过了该图块的 tile.setFeatures() 函数。这把事情的计划搞砸了。

解决方案是不检查数据,如果数据没有特定图块的任何特征,则只 setFeatures 和一个空的 featureCollection

我遇到了同样的问题,设置 tile.setFeatures([]); 解决了!