Merge pull request #7763 from fredj/memory

Use the temporary extent in VectorTileLayer
This commit is contained in:
Frédéric Junod
2018-02-06 08:38:16 +01:00
committed by GitHub
+8 -8
View File
@@ -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) {