Fix rendering VectorImage with no features in view extent

This commit is contained in:
Maximilian Krög
2021-09-27 22:29:22 +02:00
parent 2d3d6cae31
commit 1942f3f91b

View File

@@ -120,6 +120,7 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
), ),
}) })
); );
let emptyImage = true;
const image = new ImageCanvas( const image = new ImageCanvas(
renderedExtent, renderedExtent,
viewResolution, viewResolution,
@@ -131,8 +132,10 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
vectorRenderer.replayGroupChanged vectorRenderer.replayGroupChanged
) { ) {
vectorRenderer.clipping = false; vectorRenderer.clipping = false;
vectorRenderer.renderFrame(imageFrameState, null); if (vectorRenderer.renderFrame(imageFrameState, null)) {
vectorRenderer.renderDeclutter(imageFrameState); vectorRenderer.renderDeclutter(imageFrameState);
emptyImage = false;
}
callback(); callback();
} }
} }
@@ -141,8 +144,10 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
image.addEventListener( image.addEventListener(
EventType.CHANGE, EventType.CHANGE,
function () { function () {
if (image.getState() === ImageState.LOADED) { if (image.getState() !== ImageState.LOADED) {
this.image_ = image; return;
}
this.image_ = emptyImage ? null : image;
const imageResolution = image.getResolution(); const imageResolution = image.getResolution();
const imagePixelRatio = image.getPixelRatio(); const imagePixelRatio = image.getPixelRatio();
const renderedResolution = const renderedResolution =
@@ -158,7 +163,6 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
-viewState.center[0], -viewState.center[0],
-viewState.center[1] -viewState.center[1]
); );
}
}.bind(this) }.bind(this)
); );
image.load(); image.load();