Skip to content

Commit a80298a

Browse files
committed
Fixed bug of interim tile can't use wrappedReplayGroup.
1 parent 1c6232b commit a80298a

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

src/renderer/canvas/GeoVectorTileLayer.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
304304
if (!this.isTileToDraw_(tile)) {
305305
tile = tile.getInterimTile();
306306
if (tile.getState() === TileState.LOADED) {
307-
this.createReplayGroup_(/** @type {import("../../VectorImageTile.js").default} */(tile), pixelRatio, projection, frameState);
307+
this.createReplayGroup_(/** @type {import("../../VectorImageTile.js").default} */(tile), pixelRatio, projection, frameState, true);
308308
if (this.context) {
309309
this.renderTileImage_(/** @type {import("../../VectorImageTile.js").default} */(tile), pixelRatio, projection);
310310
}
@@ -313,7 +313,7 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
313313
return tile;
314314
}
315315

316-
createReplayGroup_(tile, pixelRatio, projection, frameState) {
316+
createReplayGroup_(tile, pixelRatio, projection, frameState, isInterim) {
317317
const layer = /** @type {import("../../layer/Vector.js").default} */ (this.getLayer());
318318
const revision = layer.getRevision();
319319
const renderOrder = /** @type {import("../../render.js").OrderFunction} */ (layer.getRenderOrder()) || null;
@@ -338,14 +338,12 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
338338

339339
const wrappedTileCoord = tile.wrappedTileCoord;
340340
const wrappedReplayGroup = sourceTile.getReplayGroup(layer, wrappedTileCoord.toString());
341-
if (wrappedReplayGroup) {
341+
if (!isInterim && wrappedReplayGroup && wrappedTileCoord.toString() === sourceTile.tileCoord.toString()) {
342342
sourceTile.setReplayGroup(layer, tile.tileCoord.toString(), wrappedReplayGroup);
343343
replayState.replayGroupCreated = true;
344344
tile["replayCreated"] = true;
345345
}
346346
else {
347-
348-
349347
const sourceTileCoord = sourceTile.tileCoord;
350348
const requestCoord = sourceTile.requestCoord;
351349

@@ -354,7 +352,6 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
354352
var bufferedExtent = equals(sourceTileExtent, sharedExtent) ? null :
355353
buffer(sharedExtent, layer.getRenderBuffer() * resolution, this.tmpExtent);
356354

357-
358355
const tileProjection = sourceTile.getProjection();
359356
let reproject = false;
360357
if (!equivalentProjection(projection, tileProjection)) {
@@ -456,7 +453,7 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
456453
sourceTile.setReplayGroup(layer, tile.tileCoord.toString(), replayGroup);
457454

458455
// For wrappedTileCoord set originalReplayGroup
459-
if (sourceTile.tileCoord.toString() !== tile.tileCoord.toString()) {
456+
if (!isInterim && sourceTile.tileCoord.toString() !== tile.tileCoord.toString()) {
460457
sourceTile.setReplayGroup(layer, sourceTile.tileCoord.toString(), replayGroup);
461458
}
462459
tile["replayCreated"] = true;

0 commit comments

Comments
 (0)