Merge pull request #12018 from ahocevar/only-render-image-when-needed

Only render vector tile image when needed
This commit is contained in:
Andreas Hocevar
2021-02-11 08:35:57 +01:00
committed by GitHub

View File

@@ -149,7 +149,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
} }
if (state === TileState.LOADED || state === TileState.ERROR) { if (state === TileState.LOADED || state === TileState.ERROR) {
this.updateExecutorGroup_(tile, pixelRatio, projection); this.updateExecutorGroup_(tile, pixelRatio, projection);
if (this.tileImageNeedsRender_(tile, pixelRatio, projection)) { if (this.tileImageNeedsRender_(tile)) {
render = true; render = true;
if (queue) { if (queue) {
this.renderTileImageQueue_[tileUid] = tile; this.renderTileImageQueue_[tileUid] = tile;
@@ -833,13 +833,14 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
/** /**
* @param {import("../../VectorRenderTile.js").default} tile Tile. * @param {import("../../VectorRenderTile.js").default} tile Tile.
* @param {number} pixelRatio Pixel ratio.
* @param {import("../../proj/Projection.js").default} projection Projection.
* @return {boolean} A new tile image was rendered. * @return {boolean} A new tile image was rendered.
* @private * @private
*/ */
tileImageNeedsRender_(tile, pixelRatio, projection) { tileImageNeedsRender_(tile) {
const layer = /** @type {import("../../layer/VectorTile.js").default} */ (this.getLayer()); const layer = /** @type {import("../../layer/VectorTile.js").default} */ (this.getLayer());
if (layer.getRenderMode() === VectorTileRenderType.VECTOR) {
return false;
}
const replayState = tile.getReplayState(layer); const replayState = tile.getReplayState(layer);
const revision = layer.getRevision(); const revision = layer.getRevision();
const sourceZ = tile.sourceZ; const sourceZ = tile.sourceZ;