Use correct resolution for tile hit canvas
This commit is contained in:
@@ -437,10 +437,12 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
resolve([]);
|
resolve([]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const corner = getTopLeft(tileGrid.getTileCoordExtent(sourceTile.tileCoord));
|
const sourceTileCoord = sourceTile.tileCoord;
|
||||||
|
const corner = getTopLeft(tileGrid.getTileCoordExtent(sourceTileCoord));
|
||||||
|
const renderScale = sourceTileGrid.getResolution(sourceTileCoord[0]) / resolution;
|
||||||
const tilePixel = [
|
const tilePixel = [
|
||||||
(coordinate[0] - corner[0]) / resolution,
|
(coordinate[0] - corner[0]) / resolution / renderScale,
|
||||||
(corner[1] - coordinate[1]) / resolution
|
(corner[1] - coordinate[1]) / resolution / renderScale
|
||||||
];
|
];
|
||||||
if (!sourceTile.hitDetectionImageData) {
|
if (!sourceTile.hitDetectionImageData) {
|
||||||
const tileSize = toSize(sourceTileGrid.getTileSize(sourceTileGrid.getZForResolution(resolution)));
|
const tileSize = toSize(sourceTileGrid.getTileSize(sourceTileGrid.getZForResolution(resolution)));
|
||||||
@@ -448,7 +450,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
const rotation = this.renderedRotation_;
|
const rotation = this.renderedRotation_;
|
||||||
const transforms = [
|
const transforms = [
|
||||||
this.getRenderTransform(tileGrid.getTileCoordCenter(sourceTile.tileCoord),
|
this.getRenderTransform(tileGrid.getTileCoordCenter(sourceTile.tileCoord),
|
||||||
resolution, 0, 0.5, size[0], size[1], 0)
|
resolution * renderScale, 0, 0.5, size[0], size[1], 0)
|
||||||
];
|
];
|
||||||
requestAnimationFrame(function() {
|
requestAnimationFrame(function() {
|
||||||
sourceTile.hitDetectionImageData = createHitDetectionImageData(tileSize, transforms,
|
sourceTile.hitDetectionImageData = createHitDetectionImageData(tileSize, transforms,
|
||||||
|
|||||||
Reference in New Issue
Block a user