获取要加载的图块总数

Get total number of tiles to load

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

很抱歉翻出一个老问题,但我今天被困在那个问题上并找到了一个简单的解决方案。这个问题并没有真正涵盖整个网络,所以我将 post 一个计算瓷砖的函数,而无需事先加载它们。它基于 forEachTileCoord(extent, zoom, callback) 方法 TileGrid.

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
}