Use calculated extent
This commit is contained in:
@@ -78,6 +78,11 @@ const VectorImageTile = function(tileCoord, state, sourceRevision, format,
|
|||||||
*/
|
*/
|
||||||
this.tileKeys = [];
|
this.tileKeys = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {module:ol/extent~Extent}
|
||||||
|
*/
|
||||||
|
this.extent = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {number}
|
* @type {number}
|
||||||
*/
|
*/
|
||||||
@@ -99,7 +104,7 @@ const VectorImageTile = function(tileCoord, state, sourceRevision, format,
|
|||||||
this.sourceTileListenerKeys_ = [];
|
this.sourceTileListenerKeys_ = [];
|
||||||
|
|
||||||
if (urlTileCoord) {
|
if (urlTileCoord) {
|
||||||
const extent = tileGrid.getTileCoordExtent(urlTileCoord);
|
const extent = this.extent = tileGrid.getTileCoordExtent(urlTileCoord);
|
||||||
const resolution = tileGrid.getResolution(tileCoord[0]);
|
const resolution = tileGrid.getResolution(tileCoord[0]);
|
||||||
const sourceZ = sourceTileGrid.getZForResolution(resolution);
|
const sourceZ = sourceTileGrid.getZForResolution(resolution);
|
||||||
sourceTileGrid.forEachTileCoord(extent, sourceZ, function(sourceTileCoord) {
|
sourceTileGrid.forEachTileCoord(extent, sourceZ, function(sourceTileCoord) {
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ CanvasVectorTileLayerRenderer.prototype.createReplayGroup_ = function(tile, fram
|
|||||||
const sourceTileGrid = source.getTileGrid();
|
const sourceTileGrid = source.getTileGrid();
|
||||||
const tileGrid = source.getTileGridForProjection(projection);
|
const tileGrid = source.getTileGridForProjection(projection);
|
||||||
const resolution = tileGrid.getResolution(tile.tileCoord[0]);
|
const resolution = tileGrid.getResolution(tile.tileCoord[0]);
|
||||||
const tileExtent = tileGrid.getTileCoordExtent(tile.wrappedTileCoord);
|
const tileExtent = tile.extent;
|
||||||
|
|
||||||
const zIndexKeys = {};
|
const zIndexKeys = {};
|
||||||
for (let t = 0, tt = tile.tileKeys.length; t < tt; ++t) {
|
for (let t = 0, tt = tile.tileKeys.length; t < tt; ++t) {
|
||||||
@@ -269,16 +269,11 @@ CanvasVectorTileLayerRenderer.prototype.forEachFeatureAtCoordinate = function(co
|
|||||||
/** @type {Array.<module:ol/VectorImageTile>} */
|
/** @type {Array.<module:ol/VectorImageTile>} */
|
||||||
const renderedTiles = this.renderedTiles;
|
const renderedTiles = this.renderedTiles;
|
||||||
|
|
||||||
const source = /** @type {module:ol/source/VectorTile} */ (layer.getSource());
|
|
||||||
const tileGrid = source.getTileGridForProjection(frameState.viewState.projection);
|
|
||||||
let bufferedExtent, found;
|
let bufferedExtent, found;
|
||||||
let i, ii, replayGroup;
|
let i, ii, replayGroup;
|
||||||
let tile, tileCoord, tileExtent;
|
|
||||||
for (i = 0, ii = renderedTiles.length; i < ii; ++i) {
|
for (i = 0, ii = renderedTiles.length; i < ii; ++i) {
|
||||||
tile = renderedTiles[i];
|
const tile = renderedTiles[i];
|
||||||
tileCoord = tile.wrappedTileCoord;
|
bufferedExtent = buffer(tile.extent, hitTolerance * resolution, bufferedExtent);
|
||||||
tileExtent = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent);
|
|
||||||
bufferedExtent = buffer(tileExtent, hitTolerance * resolution, bufferedExtent);
|
|
||||||
if (!containsCoordinate(bufferedExtent, coordinate)) {
|
if (!containsCoordinate(bufferedExtent, coordinate)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -388,8 +383,7 @@ CanvasVectorTileLayerRenderer.prototype.postCompose = function(context, frameSta
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const tileCoord = tile.tileCoord;
|
const tileCoord = tile.tileCoord;
|
||||||
const worldOffset = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent)[0] -
|
const worldOffset = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent)[0] - tile.extent[0];
|
||||||
tileGrid.getTileCoordExtent(tile.wrappedTileCoord, this.tmpExtent)[0];
|
|
||||||
let transform = undefined;
|
let transform = undefined;
|
||||||
for (let t = 0, tt = tile.tileKeys.length; t < tt; ++t) {
|
for (let t = 0, tt = tile.tileKeys.length; t < tt; ++t) {
|
||||||
const sourceTile = tile.getTile(tile.tileKeys[t]);
|
const sourceTile = tile.getTile(tile.tileKeys[t]);
|
||||||
|
|||||||
Reference in New Issue
Block a user