Use interim tiles
This commit is contained in:
@@ -80,6 +80,19 @@ ol.renderer.canvas.TileLayer = function(tileLayer) {
|
|||||||
ol.inherits(ol.renderer.canvas.TileLayer, ol.renderer.canvas.IntermediateCanvas);
|
ol.inherits(ol.renderer.canvas.TileLayer, ol.renderer.canvas.IntermediateCanvas);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* @param {ol.Tile} tile Tile.
|
||||||
|
* @return {boolean} Tile is drawable.
|
||||||
|
*/
|
||||||
|
ol.renderer.canvas.TileLayer.prototype.isDrawableTile_ = function(tile) {
|
||||||
|
var tileState = tile.getState();
|
||||||
|
var useInterimTilesOnError = this.getLayer().getUseInterimTilesOnError();
|
||||||
|
return tileState == ol.Tile.State.LOADED ||
|
||||||
|
tileState == ol.Tile.State.EMPTY ||
|
||||||
|
tileState == ol.Tile.State.ERROR && !useInterimTilesOnError;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
@@ -123,7 +136,6 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = function(frameState, layer
|
|||||||
var findLoadedTiles = this.createLoadedTileFinder(
|
var findLoadedTiles = this.createLoadedTileFinder(
|
||||||
tileSource, projection, tilesToDrawByZ);
|
tileSource, projection, tilesToDrawByZ);
|
||||||
|
|
||||||
var useInterimTilesOnError = tileLayer.getUseInterimTilesOnError();
|
|
||||||
var tmpExtent = this.tmpExtent;
|
var tmpExtent = this.tmpExtent;
|
||||||
var tmpTileRange = this.tmpTileRange_;
|
var tmpTileRange = this.tmpTileRange_;
|
||||||
var newTiles = false;
|
var newTiles = false;
|
||||||
@@ -131,14 +143,11 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = function(frameState, layer
|
|||||||
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
||||||
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
||||||
tile = tileSource.getTile(z, x, y, pixelRatio, projection);
|
tile = tileSource.getTile(z, x, y, pixelRatio, projection);
|
||||||
var tileState = tile.getState();
|
if (!this.isDrawableTile_(tile)) {
|
||||||
var drawable = tileState == ol.Tile.State.LOADED ||
|
|
||||||
tileState == ol.Tile.State.EMPTY ||
|
|
||||||
tileState == ol.Tile.State.ERROR && !useInterimTilesOnError;
|
|
||||||
if (!drawable) {
|
|
||||||
tile = tile.getInterimTile();
|
tile = tile.getInterimTile();
|
||||||
} else {
|
}
|
||||||
if (tileState == ol.Tile.State.LOADED) {
|
if (this.isDrawableTile_(tile)) {
|
||||||
|
if (tile.getState() == ol.Tile.State.LOADED) {
|
||||||
tilesToDrawByZ[z][tile.tileCoord.toString()] = tile;
|
tilesToDrawByZ[z][tile.tileCoord.toString()] = tile;
|
||||||
if (!newTiles && this.renderedTiles.indexOf(tile) == -1) {
|
if (!newTiles && this.renderedTiles.indexOf(tile) == -1) {
|
||||||
newTiles = true;
|
newTiles = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user