When rendering interim tiles, reuse existing replay groups
This commit is contained in:
@@ -156,7 +156,8 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
||||
const source = /** @type {import("../../source/VectorTile.js").default} */ (layer.getSource());
|
||||
const sourceTileGrid = source.getTileGrid();
|
||||
const tileGrid = source.getTileGridForProjection(projection);
|
||||
const resolution = tileGrid.getResolution(tile.tileCoord[0]);
|
||||
const zoom = tile.tileCoord[0];
|
||||
const resolution = tileGrid.getResolution(zoom);
|
||||
const tileExtent = tile.extent;
|
||||
|
||||
for (let t = 0, tt = tile.tileKeys.length; t < tt; ++t) {
|
||||
@@ -164,6 +165,14 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
||||
if (sourceTile.getState() != TileState.LOADED) {
|
||||
continue;
|
||||
}
|
||||
if (tile.useLoadedOnly) {
|
||||
const lowResReplayGroup = sourceTile.getLowResReplayGroup(layer, zoom, tileExtent);
|
||||
if (lowResReplayGroup) {
|
||||
// reuse existing replay if we're rendering an interim tile
|
||||
sourceTile.setReplayGroup(layer, tile.tileCoord.toString(), lowResReplayGroup);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
const sourceTileCoord = sourceTile.tileCoord;
|
||||
const sourceTileExtent = sourceTileGrid.getTileCoordExtent(sourceTileCoord);
|
||||
|
||||
Reference in New Issue
Block a user