Merge pull request #11218 from ahocevar/getfeature-rotated

getFeatures() uses wrong transforms after resetting rotation
This commit is contained in:
Andreas Hocevar
2020-06-25 08:08:30 +02:00
committed by GitHub
2 changed files with 19 additions and 17 deletions
+8 -9
View File
@@ -150,20 +150,11 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
function () { function () {
if (image.getState() === ImageState.LOADED) { if (image.getState() === ImageState.LOADED) {
this.image_ = image; this.image_ = image;
}
}.bind(this)
);
image.load();
}
if (this.image_) {
const image = this.image_;
const imageResolution = image.getResolution(); const imageResolution = image.getResolution();
const imagePixelRatio = image.getPixelRatio(); const imagePixelRatio = image.getPixelRatio();
const renderedResolution = const renderedResolution =
(imageResolution * pixelRatio) / imagePixelRatio; (imageResolution * pixelRatio) / imagePixelRatio;
this.renderedResolution = renderedResolution; this.renderedResolution = renderedResolution;
this.renderedPixelToCoordinateTransform_ = frameState.pixelToCoordinateTransform.slice();
this.coordinateToVectorPixelTransform_ = compose( this.coordinateToVectorPixelTransform_ = compose(
this.coordinateToVectorPixelTransform_, this.coordinateToVectorPixelTransform_,
width / 2, width / 2,
@@ -175,6 +166,14 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
-viewState.center[1] -viewState.center[1]
); );
} }
}.bind(this)
);
image.load();
}
if (this.image_) {
this.renderedPixelToCoordinateTransform_ = frameState.pixelToCoordinateTransform.slice();
}
return !!this.image_; return !!this.image_;
} }
+4 -1
View File
@@ -318,6 +318,10 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
container.style.opacity = opacity === 1 ? '' : String(opacity); container.style.opacity = opacity === 1 ? '' : String(opacity);
} }
if (this.renderedRotation_ !== viewState.rotation) {
this.renderedRotation_ = viewState.rotation;
this.hitDetectionImageData_ = null;
}
return this.container; return this.container;
} }
@@ -660,7 +664,6 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
this.renderedRevision_ = vectorLayerRevision; this.renderedRevision_ = vectorLayerRevision;
this.renderedRenderOrder_ = vectorLayerRenderOrder; this.renderedRenderOrder_ = vectorLayerRenderOrder;
this.renderedExtent_ = extent; this.renderedExtent_ = extent;
this.renderedRotation_ = viewState.rotation;
this.renderedCenter_ = center; this.renderedCenter_ = center;
this.renderedProjection_ = projection; this.renderedProjection_ = projection;
this.replayGroup_ = executorGroup; this.replayGroup_ = executorGroup;