Merge pull request #8042 from ahocevar/only-loaded-tiles

Only process loaded tiles
This commit is contained in:
Andreas Hocevar
2018-03-29 11:52:04 +02:00
committed by GitHub
2 changed files with 7 additions and 6 deletions

View File

@@ -176,7 +176,7 @@ CanvasVectorTileLayerRenderer.prototype.createReplayGroup_ = function(tile, fram
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) {
const sourceTile = tile.getTile(tile.tileKeys[t]); const sourceTile = tile.getTile(tile.tileKeys[t]);
if (sourceTile.getState() == TileState.ERROR) { if (sourceTile.getState() != TileState.LOADED) {
continue; continue;
} }
@@ -286,7 +286,7 @@ CanvasVectorTileLayerRenderer.prototype.forEachFeatureAtCoordinate = function(co
} }
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]);
if (sourceTile.getState() == TileState.ERROR) { if (sourceTile.getState() != TileState.LOADED) {
continue; continue;
} }
replayGroup = sourceTile.getReplayGroup(layer, tile.tileCoord.toString()); replayGroup = sourceTile.getReplayGroup(layer, tile.tileCoord.toString());
@@ -395,7 +395,7 @@ CanvasVectorTileLayerRenderer.prototype.postCompose = function(context, frameSta
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]);
if (sourceTile.getState() == TileState.ERROR) { if (sourceTile.getState() != TileState.LOADED) {
continue; continue;
} }
const replayGroup = sourceTile.getReplayGroup(layer, tileCoord.toString()); const replayGroup = sourceTile.getReplayGroup(layer, tileCoord.toString());
@@ -500,7 +500,7 @@ CanvasVectorTileLayerRenderer.prototype.renderTileImage_ = function(
const tileExtent = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent); 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.LOADED) {
continue; continue;
} }
const pixelScale = pixelRatio / resolution; const pixelScale = pixelRatio / resolution;

View File

@@ -61,7 +61,7 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
feature2.setStyle(featureStyle); feature2.setStyle(featureStyle);
const TileClass = function() { const TileClass = function() {
VectorTile.apply(this, arguments); VectorTile.apply(this, arguments);
this.setState('loaded'); this.setState(TileState.LOADED);
this.setFeatures([feature1, feature2, feature3]); this.setFeatures([feature1, feature2, feature3]);
this.setProjection(getProjection('EPSG:4326')); this.setProjection(getProjection('EPSG:4326'));
tileCallback(this); tileCallback(this);
@@ -292,8 +292,9 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
let layer, renderer, replayGroup; let layer, renderer, replayGroup;
const TileClass = function() { const TileClass = function() {
VectorImageTile.apply(this, arguments); VectorImageTile.apply(this, arguments);
this.setState('loaded'); this.setState(TileState.LOADED);
const sourceTile = new VectorTile([0, 0, 0]); const sourceTile = new VectorTile([0, 0, 0]);
sourceTile.setState(TileState.LOADED);
sourceTile.setProjection(getProjection('EPSG:3857')); sourceTile.setProjection(getProjection('EPSG:3857'));
sourceTile.getReplayGroup = function() { sourceTile.getReplayGroup = function() {
return replayGroup; return replayGroup;