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(); 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({