From ac14f6df6257dad3b4664c4ef9f964673f4844e8 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Wed, 24 Jun 2020 21:37:13 +0200 Subject: [PATCH 1/2] Fix getFeatures after rotation reset for Vector --- src/ol/renderer/canvas/VectorLayer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/canvas/VectorLayer.js b/src/ol/renderer/canvas/VectorLayer.js index 4cfc53a639..5f0241d287 100644 --- a/src/ol/renderer/canvas/VectorLayer.js +++ b/src/ol/renderer/canvas/VectorLayer.js @@ -318,6 +318,10 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { container.style.opacity = opacity === 1 ? '' : String(opacity); } + if (this.renderedRotation_ !== viewState.rotation) { + this.renderedRotation_ = viewState.rotation; + this.hitDetectionImageData_ = null; + } return this.container; } @@ -660,7 +664,6 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { this.renderedRevision_ = vectorLayerRevision; this.renderedRenderOrder_ = vectorLayerRenderOrder; this.renderedExtent_ = extent; - this.renderedRotation_ = viewState.rotation; this.renderedCenter_ = center; this.renderedProjection_ = projection; this.replayGroup_ = executorGroup; From 18a8961d79405a432a420755018e204c1b7cd2f4 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Wed, 24 Jun 2020 21:37:25 +0200 Subject: [PATCH 2/2] Fix getFeatures after rotation reset for VectorImage --- src/ol/renderer/canvas/VectorImageLayer.js | 31 +++++++++++----------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/ol/renderer/canvas/VectorImageLayer.js b/src/ol/renderer/canvas/VectorImageLayer.js index 3b7da272c5..0de4dd3c1c 100644 --- a/src/ol/renderer/canvas/VectorImageLayer.js +++ b/src/ol/renderer/canvas/VectorImageLayer.js @@ -150,6 +150,21 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer { function () { if (image.getState() === ImageState.LOADED) { this.image_ = image; + const imageResolution = image.getResolution(); + const imagePixelRatio = image.getPixelRatio(); + const renderedResolution = + (imageResolution * pixelRatio) / imagePixelRatio; + this.renderedResolution = renderedResolution; + this.coordinateToVectorPixelTransform_ = compose( + this.coordinateToVectorPixelTransform_, + width / 2, + height / 2, + 1 / renderedResolution, + -1 / renderedResolution, + 0, + -viewState.center[0], + -viewState.center[1] + ); } }.bind(this) ); @@ -157,23 +172,7 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer { } if (this.image_) { - const image = this.image_; - const imageResolution = image.getResolution(); - const imagePixelRatio = image.getPixelRatio(); - const renderedResolution = - (imageResolution * pixelRatio) / imagePixelRatio; - this.renderedResolution = renderedResolution; this.renderedPixelToCoordinateTransform_ = frameState.pixelToCoordinateTransform.slice(); - this.coordinateToVectorPixelTransform_ = compose( - this.coordinateToVectorPixelTransform_, - width / 2, - height / 2, - 1 / renderedResolution, - -1 / renderedResolution, - 0, - -viewState.center[0], - -viewState.center[1] - ); } return !!this.image_;