Merge pull request #10224 from ahocevar/hitdetect-vectortiles-fixes
Vector tile hit detection fixes
This commit is contained in:
@@ -433,14 +433,16 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!sourceTile) {
|
||||
if (!sourceTile || sourceTile.getState() !== TileState.LOADED) {
|
||||
resolve([]);
|
||||
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 = [
|
||||
(coordinate[0] - corner[0]) / resolution,
|
||||
(corner[1] - coordinate[1]) / resolution
|
||||
(coordinate[0] - corner[0]) / resolution / renderScale,
|
||||
(corner[1] - coordinate[1]) / resolution / renderScale
|
||||
];
|
||||
if (!sourceTile.hitDetectionImageData) {
|
||||
const tileSize = toSize(sourceTileGrid.getTileSize(sourceTileGrid.getZForResolution(resolution)));
|
||||
@@ -448,7 +450,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
||||
const rotation = this.renderedRotation_;
|
||||
const transforms = [
|
||||
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() {
|
||||
sourceTile.hitDetectionImageData = createHitDetectionImageData(tileSize, transforms,
|
||||
|
||||
Reference in New Issue
Block a user