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
+6 -3
View File
@@ -950,13 +950,16 @@ class PluggableMap extends BaseObject {
getLoadingOrNotReady() { getLoadingOrNotReady() {
const layerStatesArray = this.getLayerGroup().getLayerStatesArray(); const layerStatesArray = this.getLayerGroup().getLayerStatesArray();
for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) { for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) {
const layer = layerStatesArray[i].layer; const state = layerStatesArray[i];
const renderer = layer.getRenderer(); if (!state.visible) {
continue;
}
const renderer = state.layer.getRenderer();
if (renderer && !renderer.ready) { if (renderer && !renderer.ready) {
return true; return true;
} }
const source = /** @type {import("./layer/Layer.js").default} */ ( const source = /** @type {import("./layer/Layer.js").default} */ (
layer state.layer
).getSource(); ).getSource();
if (source && source.loading) { if (source && source.loading) {
return true; return true;
+12
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 () { describe('#getFeaturesAtPixel', function () {