Use interim tiles when changing dynamic parameters
This commit is contained in:
@@ -316,19 +316,29 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame =
|
||||
|
||||
var tmpExtent = ol.extent.createEmpty();
|
||||
var tmpTileRange = new ol.TileRange(0, 0, 0, 0);
|
||||
var childTileRange, fullyLoaded, tile, tileState, x, y;
|
||||
var childTileRange, fullyLoaded, tile, x, y;
|
||||
var drawableTile = (
|
||||
/**
|
||||
* @param {!ol.Tile} tile Tile.
|
||||
* @return {boolean} Tile is selected.
|
||||
*/
|
||||
function(tile) {
|
||||
var tileState = tile.getState();
|
||||
return tileState == ol.TileState.LOADED ||
|
||||
tileState == ol.TileState.EMPTY ||
|
||||
tileState == ol.TileState.ERROR && !useInterimTilesOnError;
|
||||
});
|
||||
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
||||
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
||||
|
||||
tile = tileSource.getTile(z, x, y, pixelRatio, projection);
|
||||
tileState = tile.getState();
|
||||
if (tileState == ol.TileState.LOADED ||
|
||||
tileState == ol.TileState.EMPTY ||
|
||||
(tileState == ol.TileState.ERROR && !useInterimTilesOnError)) {
|
||||
if (!drawableTile(tile) && tile.interimTile) {
|
||||
tile = tile.interimTile;
|
||||
}
|
||||
goog.asserts.assert(tile);
|
||||
if (drawableTile(tile)) {
|
||||
tilesToDrawByZ[z][ol.tilecoord.toString(tile.tileCoord)] = tile;
|
||||
continue;
|
||||
}
|
||||
|
||||
fullyLoaded = tileGrid.forEachTileCoordParentTileRange(
|
||||
tile.tileCoord, findLoadedTiles, null, tmpTileRange, tmpExtent);
|
||||
if (!fullyLoaded) {
|
||||
@@ -360,7 +370,7 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame =
|
||||
var origin = ol.extent.getTopLeft(tileGrid.getTileCoordExtent(
|
||||
[z, canvasTileRange.minX, canvasTileRange.maxY],
|
||||
tmpExtent));
|
||||
var currentZ, index, scale, tileCoordKey, tileExtent, tilesToDraw;
|
||||
var currentZ, index, scale, tileCoordKey, tileExtent, tileState, tilesToDraw;
|
||||
var ix, iy, interimTileRange, maxX, maxY;
|
||||
var height, width;
|
||||
for (i = 0, ii = zs.length; i < ii; ++i) {
|
||||
|
||||
Reference in New Issue
Block a user