使用 openlayers 4.2.0 使用ol.layer.VectorTile
层时,我遇到了一个奇怪的问题。
对于ol.source.VectorTile
,我正在使用tileLoadFunction
对tileGrid中的磁贴发出网络请求。我的地图上有大约 100 个图层中的点。用户可以选择某些选项,这些选项将转到重新定义VectorTile
图层和VectorTile
源的功能,并移除和读取图层,以便在地图上绘制新点。
切换层几次后,事情似乎很好,但最终,tileLoadFunction
停止被调用。有时它会被调用 3 次或其他什么,但随后停止被调用,即使tileGrid
中有更多的瓷砖。我不确定发生了什么,比如它正在达到某种限制或阻止它调用tileLoadFunction
?我试图在源上使用.refresh()
以防这是问题所在,但这没有任何帮助。
我检查了给定磁贴的数据中是否有任何特征,如果没有,我跳过了该磁贴的tile.setFeatures()
函数。 这在事情的计划中搞砸了一些东西。
解决方案是不检查数据,如果数据没有特定切片的任何功能,则只需使用空featureCollection
进行setFeatures
。
我遇到了同样的问题,设置tile.setFeatures([]);
解决了它!