diff --git a/src/ol/renderer/canvas/VectorTileLayer.js b/src/ol/renderer/canvas/VectorTileLayer.js index 6a549a378c..6efd9933a9 100644 --- a/src/ol/renderer/canvas/VectorTileLayer.js +++ b/src/ol/renderer/canvas/VectorTileLayer.js @@ -19,8 +19,8 @@ import { translate as translateTransform, } from '../../transform.js'; import { + boundingExtent, buffer, - containsCoordinate, containsExtent, equals, getIntersection, @@ -393,6 +393,10 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { const tileGrid = source.getTileGridForProjection( frameState.viewState.projection ); + + const hitExtent = boundingExtent([coordinate]); + buffer(hitExtent, resolution * hitTolerance, hitExtent); + /** @type {!Object} */ const features = {}; @@ -404,7 +408,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { for (i = 0, ii = renderedTiles.length; i < ii; ++i) { const tile = renderedTiles[i]; const tileExtent = tileGrid.getTileCoordExtent(tile.wrappedTileCoord); - if (!containsCoordinate(tileExtent, coordinate)) { + if (!intersects(tileExtent, hitExtent)) { continue; } const layerUid = getUid(layer);