From 5b1df4438d89c18d162d775f0fdca91f6c782043 Mon Sep 17 00:00:00 2001 From: mike-000 <49240900+mike-000@users.noreply.github.com> Date: Wed, 1 Jan 2020 22:04:10 +0000 Subject: [PATCH] Fix for undefined source in Image layer Prevent error if layer does not have a source. Also clear any existing image if source is set to null or undefined by setSource. --- src/ol/renderer/canvas/ImageLayer.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/ol/renderer/canvas/ImageLayer.js b/src/ol/renderer/canvas/ImageLayer.js index 5dc9895cd0..7403890219 100644 --- a/src/ol/renderer/canvas/ImageLayer.js +++ b/src/ol/renderer/canvas/ImageLayer.js @@ -55,16 +55,20 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer { } if (!hints[ViewHint.ANIMATING] && !hints[ViewHint.INTERACTING] && !isEmpty(renderedExtent)) { - let projection = viewState.projection; - if (!ENABLE_RASTER_REPROJECTION) { - const sourceProjection = imageSource.getProjection(); - if (sourceProjection) { - projection = sourceProjection; + if (imageSource) { + let projection = viewState.projection; + if (!ENABLE_RASTER_REPROJECTION) { + const sourceProjection = imageSource.getProjection(); + if (sourceProjection) { + projection = sourceProjection; + } } - } - const image = imageSource.getImage(renderedExtent, viewResolution, pixelRatio, projection); - if (image && this.loadImage(image)) { - this.image_ = image; + const image = imageSource.getImage(renderedExtent, viewResolution, pixelRatio, projection); + if (image && this.loadImage(image)) { + this.image_ = image; + } + } else { + this.image_ = null; } }