From 1ba408dbe8a6402a084307cd6499ed49d1cf5c74 Mon Sep 17 00:00:00 2001 From: Neil Morrison <2095051+neil-morrison44@users.noreply.github.com> Date: Wed, 4 Feb 2026 11:35:57 +0000 Subject: [PATCH 1/2] Use the non-webGL `google.maps.OverlayView` when `interleaved` is false --- modules/google-maps/src/google-maps-overlay.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/google-maps/src/google-maps-overlay.ts b/modules/google-maps/src/google-maps-overlay.ts index 291d2e88421..36528ee51ec 100644 --- a/modules/google-maps/src/google-maps-overlay.ts +++ b/modules/google-maps/src/google-maps-overlay.ts @@ -136,7 +136,7 @@ export default class GoogleMapsOverlay { return; } - const isVectorMap = renderingType === VECTOR && google.maps.WebGLOverlayView; + const isVectorMap = renderingType === VECTOR && google.maps.WebGLOverlayView && interleaved; const OverlayView = isVectorMap ? google.maps.WebGLOverlayView : google.maps.OverlayView; const overlay = new OverlayView(); From 910516712d037b54df0aae37c8d1c5529fd2cb70 Mon Sep 17 00:00:00 2001 From: Neil Morrison Date: Fri, 6 Feb 2026 09:27:21 +0000 Subject: [PATCH 2/2] break out vector interleaved true/false tests, have false expect the "normal" overlay --- .../google-maps/google-maps-overlay.spec.ts | 84 ++++++++++++------- 1 file changed, 52 insertions(+), 32 deletions(-) diff --git a/test/modules/google-maps/google-maps-overlay.spec.ts b/test/modules/google-maps/google-maps-overlay.spec.ts index 97c38dd8f73..d3b045a0fe5 100644 --- a/test/modules/google-maps/google-maps-overlay.spec.ts +++ b/test/modules/google-maps/google-maps-overlay.spec.ts @@ -102,43 +102,63 @@ test('GoogleMapsOverlay#raster lifecycle', t => { t.end(); }); -for (const interleaved of [true, false]) { - test(`GoogleMapsOverlay#vector lifecycle (interleaved:${interleaved}`, t => { - const map = new mapsApi.Map({ - width: 1, - height: 1, - longitude: 0, - latitude: 0, - zoom: 1, - renderingType: mapsApi.RenderingType.VECTOR - }); +test('GoogleMapsOverlay#vector lifecycle (interleaved:false)', t => { + const map = new mapsApi.Map({ + width: 1, + height: 1, + longitude: 0, + latitude: 0, + zoom: 1, + renderingType: mapsApi.RenderingType.VECTOR + }); - const overlay = new GoogleMapsOverlay({ - interleaved, - layers: [] - }); + const overlay = new GoogleMapsOverlay({ + interleaved: false, + layers: [] + }); - overlay.setMap(map); - map.emit({type: 'renderingtype_changed'}); - t.ok(overlay._overlay.onAdd, 'onAdd lifecycle function is registered'); - t.ok(overlay._overlay.onContextLost, 'onContextLost lifecycle function is registered'); - t.ok(overlay._overlay.onContextRestored, 'onContextRestored lifecycle function is registered'); - t.ok(overlay._overlay.onDraw, 'onDraw lifecycle function is registered'); - t.ok(overlay._overlay.onRemove, 'onRemove lifecycle function is registered'); - - t.notOk(overlay._overlay._draws, 'Map not yet drawn'); - overlay.setMap(null); - if (interleaved) { - t.ok(overlay._overlay._draws, 'Redraw requested when map removed'); - } else { - t.notOk(overlay._overlay._draws, 'Redraw not requested when map removed'); - } + overlay.setMap(map); + map.emit({type: 'renderingtype_changed'}); + t.ok(overlay._overlay.onAdd, 'onAdd lifecycle function is registered'); + t.ok(overlay._overlay.draw, 'draw lifecycle function is registered'); + t.ok(overlay._overlay.onRemove, 'onRemove lifecycle function is registered'); + overlay.finalize(); - overlay.finalize(); + t.end(); +}); - t.end(); +test(`GoogleMapsOverlay#vector lifecycle (interleaved:true)`, t => { + const map = new mapsApi.Map({ + width: 1, + height: 1, + longitude: 0, + latitude: 0, + zoom: 1, + renderingType: mapsApi.RenderingType.VECTOR }); -} + + const overlay = new GoogleMapsOverlay({ + interleaved: true, + layers: [] + }); + + overlay.setMap(map); + map.emit({type: 'renderingtype_changed'}); + t.ok(overlay._overlay.onAdd, 'onAdd lifecycle function is registered'); + t.ok(overlay._overlay.onContextLost, 'onContextLost lifecycle function is registered'); + t.ok(overlay._overlay.onContextRestored, 'onContextRestored lifecycle function is registered'); + t.ok(overlay._overlay.onDraw, 'onDraw lifecycle function is registered'); + t.ok(overlay._overlay.onRemove, 'onRemove lifecycle function is registered'); + + t.notOk(overlay._overlay._draws, 'Map not yet drawn'); + overlay.setMap(null); + + t.ok(overlay._overlay._draws, 'Redraw requested when map removed'); + + overlay.finalize(); + + t.end(); +}); test('GoogleMapsOverlay#style', t => { const map = new mapsApi.Map({