Merge pull request #7763 from fredj/memory
Use the temporary extent in VectorTileLayer
This commit is contained in:
@@ -39,7 +39,7 @@ const CanvasVectorTileLayerRenderer = function(layer) {
|
|||||||
/**
|
/**
|
||||||
* Declutter tree.
|
* Declutter tree.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.declutterTree_ = layer.getDeclutter() ? rbush(9) : null;
|
this.declutterTree_ = layer.getDeclutter() ? rbush(9) : null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -182,7 +182,7 @@ CanvasVectorTileLayerRenderer.prototype.createReplayGroup_ = function(
|
|||||||
const sourceTileExtent = sourceTileGrid.getTileCoordExtent(sourceTileCoord);
|
const sourceTileExtent = sourceTileGrid.getTileCoordExtent(sourceTileCoord);
|
||||||
const sharedExtent = getIntersection(tileExtent, sourceTileExtent);
|
const sharedExtent = getIntersection(tileExtent, sourceTileExtent);
|
||||||
const bufferedExtent = equals(sourceTileExtent, sharedExtent) ? null :
|
const bufferedExtent = equals(sourceTileExtent, sharedExtent) ? null :
|
||||||
buffer(sharedExtent, layer.getRenderBuffer() * resolution);
|
buffer(sharedExtent, layer.getRenderBuffer() * resolution, this.tmpExtent);
|
||||||
const tileProjection = sourceTile.getProjection();
|
const tileProjection = sourceTile.getProjection();
|
||||||
let reproject = false;
|
let reproject = false;
|
||||||
if (!equivalentProjection(projection, tileProjection)) {
|
if (!equivalentProjection(projection, tileProjection)) {
|
||||||
@@ -298,9 +298,9 @@ CanvasVectorTileLayerRenderer.prototype.forEachFeatureAtCoordinate = function(co
|
|||||||
found = found || replayGroup.forEachFeatureAtCoordinate(
|
found = found || replayGroup.forEachFeatureAtCoordinate(
|
||||||
coordinate, resolution, rotation, hitTolerance, {},
|
coordinate, resolution, rotation, hitTolerance, {},
|
||||||
/**
|
/**
|
||||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||||
* @return {?} Callback result.
|
* @return {?} Callback result.
|
||||||
*/
|
*/
|
||||||
function(feature) {
|
function(feature) {
|
||||||
const key = getUid(feature).toString();
|
const key = getUid(feature).toString();
|
||||||
if (!(key in features)) {
|
if (!(key in features)) {
|
||||||
@@ -396,8 +396,8 @@ CanvasVectorTileLayerRenderer.prototype.postCompose = function(context, frameSta
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const tileCoord = tile.tileCoord;
|
const tileCoord = tile.tileCoord;
|
||||||
const worldOffset = tileGrid.getTileCoordExtent(tileCoord)[0] -
|
const worldOffset = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent)[0] -
|
||||||
tileGrid.getTileCoordExtent(tile.wrappedTileCoord)[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]);
|
||||||
@@ -503,7 +503,7 @@ CanvasVectorTileLayerRenderer.prototype.renderTileImage_ = function(
|
|||||||
const size = source.getTilePixelSize(z, pixelRatio, frameState.viewState.projection);
|
const size = source.getTilePixelSize(z, pixelRatio, frameState.viewState.projection);
|
||||||
context.canvas.width = size[0];
|
context.canvas.width = size[0];
|
||||||
context.canvas.height = size[1];
|
context.canvas.height = size[1];
|
||||||
const tileExtent = tileGrid.getTileCoordExtent(tileCoord);
|
const tileExtent = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent);
|
||||||
for (let i = 0, ii = tile.tileKeys.length; i < ii; ++i) {
|
for (let i = 0, ii = tile.tileKeys.length; i < ii; ++i) {
|
||||||
const sourceTile = tile.getTile(tile.tileKeys[i]);
|
const sourceTile = tile.getTile(tile.tileKeys[i]);
|
||||||
if (sourceTile.getState() == TileState.ERROR) {
|
if (sourceTile.getState() == TileState.ERROR) {
|
||||||
|
|||||||
Reference in New Issue
Block a user