Merge pull request #13434 from M393/rendercomplete-invisible-webglpoints

Fix rendercomplete with invisible WebGLPoints layer
This commit is contained in:
Andreas Hocevar
2022-03-02 11:51:29 +01:00
committed by GitHub
2 changed files with 18 additions and 3 deletions

View File

@@ -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;

View File

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