获取要加载的图块总数
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
}
我想获取当前需要加载的图块总数。
原因是地图有一个平滑的加载栏。我知道 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
}