diff --git a/src/ol/PluggableMap.js b/src/ol/PluggableMap.js index 16f899d4bf..2d01f750f2 100644 --- a/src/ol/PluggableMap.js +++ b/src/ol/PluggableMap.js @@ -950,13 +950,16 @@ class PluggableMap extends BaseObject { getLoadingOrNotReady() { const layerStatesArray = this.getLayerGroup().getLayerStatesArray(); for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) { - const layer = layerStatesArray[i].layer; - const renderer = layer.getRenderer(); + const state = layerStatesArray[i]; + if (!state.visible) { + continue; + } + const renderer = state.layer.getRenderer(); if (renderer && !renderer.ready) { return true; } const source = /** @type {import("./layer/Layer.js").default} */ ( - layer + state.layer ).getSource(); if (source && source.loading) { return true; diff --git a/test/browser/spec/ol/Map.test.js b/test/browser/spec/ol/Map.test.js index c3bc22d36c..480dbe6b2d 100644 --- a/test/browser/spec/ol/Map.test.js +++ b/test/browser/spec/ol/Map.test.js @@ -491,6 +491,18 @@ describe('ol/Map', function () { }) ); }); + it('ignores invisible layers', function (done) { + map.getLayers().forEach(function (layer, i) { + layer.setVisible(i === 4); + }); + map.setView( + new View({ + center: [0, 0], + zoom: 0, + }) + ); + map.once('rendercomplete', () => done()); + }); }); describe('#getFeaturesAtPixel', function () {