Also use hitTolerance to select tiles to search

This commit is contained in:
Maximilian Krög
2020-11-29 22:06:09 +01:00
parent cde2dac19f
commit 4546eff66e
+6 -2
View File
@@ -19,8 +19,8 @@ import {
translate as translateTransform, translate as translateTransform,
} from '../../transform.js'; } from '../../transform.js';
import { import {
boundingExtent,
buffer, buffer,
containsCoordinate,
containsExtent, containsExtent,
equals, equals,
getIntersection, getIntersection,
@@ -393,6 +393,10 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
const tileGrid = source.getTileGridForProjection( const tileGrid = source.getTileGridForProjection(
frameState.viewState.projection frameState.viewState.projection
); );
const hitExtent = boundingExtent([coordinate]);
buffer(hitExtent, resolution * hitTolerance, hitExtent);
/** @type {!Object<string, boolean>} */ /** @type {!Object<string, boolean>} */
const features = {}; const features = {};
@@ -404,7 +408,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
for (i = 0, ii = renderedTiles.length; i < ii; ++i) { for (i = 0, ii = renderedTiles.length; i < ii; ++i) {
const tile = renderedTiles[i]; const tile = renderedTiles[i];
const tileExtent = tileGrid.getTileCoordExtent(tile.wrappedTileCoord); const tileExtent = tileGrid.getTileCoordExtent(tile.wrappedTileCoord);
if (!containsCoordinate(tileExtent, coordinate)) { if (!intersects(tileExtent, hitExtent)) {
continue; continue;
} }
const layerUid = getUid(layer); const layerUid = getUid(layer);