Merge pull request #9286 from ahocevar/interim-transition

Disable transition when an interim tile is available
This commit is contained in:
Andreas Hocevar
2019-04-05 17:33:58 +02:00
committed by GitHub
2 changed files with 9 additions and 1 deletions

View File

@@ -170,6 +170,9 @@ class Tile extends EventTarget {
// cleaned up by refreshInterimChain) // cleaned up by refreshInterimChain)
do { do {
if (tile.getState() == TileState.LOADED) { if (tile.getState() == TileState.LOADED) {
// Show tile immediately instead of fading it in after loading, because
// the interim tile is in place already
this.transition_ = 0;
return tile; return tile;
} }
tile = tile.interimTile; tile = tile.interimTile;

View File

@@ -41,13 +41,18 @@ describe('ol.renderer.canvas.TileLayer', function() {
document.body.removeChild(target); document.body.removeChild(target);
}); });
it('properly handles interim tiles', function() { it('properly handles interim tiles', function(done) {
const layer = map.getLayers().item(0); const layer = map.getLayers().item(0);
source.once('tileloadend', function(e) {
expect(e.tile.inTransition()).to.be(false);
done();
});
source.updateParams({TIME: '1'}); source.updateParams({TIME: '1'});
map.renderSync(); map.renderSync();
const tiles = map.getRenderer().getLayerRenderer(layer).renderedTiles; const tiles = map.getRenderer().getLayerRenderer(layer).renderedTiles;
expect(tiles.length).to.be(1); expect(tiles.length).to.be(1);
expect(tiles[0]).to.equal(tile); expect(tiles[0]).to.equal(tile);
expect(tile.inTransition()).to.be(true);
}); });
}); });