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
+9 -5
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;
} }
} }
if (!inTransition) {
continue; continue;
} }
}
var fullyLoaded = tileGrid.forEachTileCoordParentTileRange(
tile.tileCoord, findLoadedTiles, null, tmpTileRange, tmpExtent);
if (!fullyLoaded) {
var childTileRange = tileGrid.getTileCoordChildTileRange( var childTileRange = tileGrid.getTileCoordChildTileRange(
tile.tileCoord, tmpTileRange, tmpExtent); tile.tileCoord, tmpTileRange, tmpExtent);
var covered = false;
if (childTileRange) { if (childTileRange) {
findLoadedTiles(z + 1, childTileRange); covered = findLoadedTiles(z + 1, childTileRange);
} }
if (!covered) {
tileGrid.forEachTileCoordParentTileRange(
tile.tileCoord, findLoadedTiles, null, tmpTileRange, tmpExtent);
} }
} }