@@ -354,10 +354,7 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
354354
355355 const tileProjection = sourceTile . getProjection ( ) ;
356356 let reproject = false ;
357- if ( ! equivalentProjection ( projection , tileProjection ) ) {
358- reproject = true ;
359- sourceTile . setProjection ( projection ) ;
360- }
357+
361358 replayState . dirty = false ;
362359 const replayGroup = new GeoCanvasReplayGroup ( 0 , sharedExtent , resolution ,
363360 pixelRatio , source . getOverlaps ( ) , this . declutterTree_ , layer . getRenderBuffer ( ) ) ;
@@ -405,6 +402,9 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
405402 let rendererSelf = this ;
406403 let geoStyles = source . getGeoFormat ( ) . styleJsonCache . geoStyles ;
407404 let createReplayGroupCallback = function ( data , methodInfo ) {
405+ if ( ! equivalentProjection ( projection , tileProjection ) ) {
406+ reproject = true ;
407+ }
408408 let replaysByZIndex = data [ "replays" ] ;
409409 let featuresInfo = data [ "features" ] ;
410410 let mainDrawingInstructs = data [ "mainDrawingInstructs" ] ;
@@ -453,9 +453,10 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
453453 sourceTile . setReplayGroup ( layer , tile . tileCoord . toString ( ) , replayGroup ) ;
454454
455455 // For wrappedTileCoord set originalReplayGroup
456- if ( ! isInterim && sourceTile . tileCoord . toString ( ) !== tile . tileCoord . toString ( ) ) {
457- sourceTile . setReplayGroup ( layer , sourceTile . tileCoord . toString ( ) , replayGroup ) ;
456+ if ( ! isInterim && tile . wrappedTileCoord . toString ( ) !== tile . tileCoord . toString ( ) ) {
457+ sourceTile . setReplayGroup ( layer , tile . wrappedTileCoord . toString ( ) , replayGroup ) ;
458458 }
459+
459460 tile [ "replayCreated" ] = true ;
460461 sourceTile [ "replayCreated" ] = true ;
461462 // The apply tile didn't enqueue, so it has no events that refresh the map.
@@ -469,6 +470,7 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
469470 // tile extent in tile pixel space
470471 tileProjection . setExtent ( sourceTile . getExtent ( ) ) ;
471472 }
473+
472474 let tileProjectionInfo = { } ;
473475 for ( let name in tileProjection ) {
474476 if ( typeof tileProjection [ name ] !== "function" ) {
@@ -500,6 +502,10 @@ class GeoCanvasVectorTileLayerRenderer extends CanvasVectorTileLayerRenderer {
500502 workerManager . postMessage ( getUid ( createReplayGroupCallback ) , "createReplayGroup" , createReplayGroupMethodInfo , createReplayGroupCallback , undefined ) ;
501503 }
502504 else {
505+ if ( ! equivalentProjection ( projection , tileProjection ) ) {
506+ reproject = true ;
507+ sourceTile . setProjection ( projection ) ;
508+ }
503509 let renderer = this ;
504510 var createReplayGroupFunction = function ( featuresAndInstructs ) {
505511 let features = undefined ;
0 commit comments