Merge pull request #11218 from ahocevar/getfeature-rotated
getFeatures() uses wrong transforms after resetting rotation
This commit is contained in:
@@ -150,6 +150,21 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
|
|||||||
function () {
|
function () {
|
||||||
if (image.getState() === ImageState.LOADED) {
|
if (image.getState() === ImageState.LOADED) {
|
||||||
this.image_ = image;
|
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)
|
}.bind(this)
|
||||||
);
|
);
|
||||||
@@ -157,23 +172,7 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.image_) {
|
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.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_;
|
return !!this.image_;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user