2

我想获取当前需要加载的瓷砖总数。
原因是地图有一个平滑的加载栏。我知道 openlayers 的演示,但对我来说,那个栏会到处乱跳(来回走动),因为tileloadstart在一些瓷砖已经加载后会调用很多次。这会导致最大值发生变化并带回条形图。
那么有没有办法(即使是自定义 OL)在调用时获取磁贴总数(最终总tileloadstart调用次数)?

4

1 回答 1

1

很抱歉挖掘了一个老问题,但我今天被困在这个问题上并找到了一个简单的解决方案。这个问题并没有真正覆盖整个网络,所以我将发布一个计算图块的函数,而无需事先加载它们。它基于TileGridforEachTileCoord(extent, zoom, callback)的方法。

function getTileCount(map, tileGrid) {
   let size = map.getSize();
   let view = map.getView();
   let extent = view.calculateExtent(size);
   let zoom = view.getZoom();
   let count = 0;
   tileGrid.forEachTileCoord(extent, zoom, function() {
      ++count;
   });
   return count
}
于 2021-09-17T13:29:17.283 回答