Check for alt tiles when in transition, always prefer higher z

This commit is contained in:
Tim Schaub
2017-09-23 16:54:23 -07:00
parent f7bfee8497
commit ecc2a9059e
+14 -10
View File
@@ -179,24 +179,28 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = function(frameState, layer
tile = tile.getInterimTile(); tile = tile.getInterimTile();
} }
if (this.isDrawableTile_(tile)) { if (this.isDrawableTile_(tile)) {
var inTransition = false;
if (tile.getState() == ol.TileState.LOADED) { if (tile.getState() == ol.TileState.LOADED) {
tilesToDrawByZ[z][tile.tileCoord.toString()] = tile; tilesToDrawByZ[z][tile.tileCoord.toString()] = tile;
var inTransition = tile.inTransition && tile.inTransition(ol.getUid(this)); inTransition = tile.inTransition && tile.inTransition(ol.getUid(this));
if (!newTiles && (inTransition || this.renderedTiles.indexOf(tile) === -1)) { if (!newTiles && (inTransition || this.renderedTiles.indexOf(tile) === -1)) {
newTiles = true; newTiles = true;
} }
} }
continue; if (!inTransition) {
continue;
}
} }
var fullyLoaded = tileGrid.forEachTileCoordParentTileRange( var childTileRange = tileGrid.getTileCoordChildTileRange(
tile.tileCoord, findLoadedTiles, null, tmpTileRange, tmpExtent); tile.tileCoord, tmpTileRange, tmpExtent);
if (!fullyLoaded) { var covered = false;
var childTileRange = tileGrid.getTileCoordChildTileRange( if (childTileRange) {
tile.tileCoord, tmpTileRange, tmpExtent); covered = findLoadedTiles(z + 1, childTileRange);
if (childTileRange) { }
findLoadedTiles(z + 1, childTileRange); if (!covered) {
} tileGrid.forEachTileCoordParentTileRange(
tile.tileCoord, findLoadedTiles, null, tmpTileRange, tmpExtent);
} }
} }