我想获取当前需要加载的图 block 总数。
原因是为了让 map 有一个平滑的加载栏。我知道 openlayers 上的演示,但对我来说,该栏会到处跳(来回),因为很多时候 tileloadstart
在某些图 block 已经加载后被调用。这会导致最大值发生变化并使栏恢复。
那么有没有办法(即使是自定义OL)在调用时获取tile的总数(最终的tileloadstart
调用总数)?
最佳答案
很抱歉挖出一个老问题,但我今天被困在这个问题上并找到了一个简单的解决方案。这个问题并没有在整个网络上得到真正的讨论,所以我将发布一个计算图 block 的函数,而无需事先加载它们。它基于 TileGrid 的 forEachTileCoord(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
}
关于openlayers - 获取要加载的图 block 总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52543450/