Disable transition when an interim tile is available

This commit is contained in:
ahocevar
2019-03-03 22:37:06 +01:00
parent f1aca67882
commit 56f37ab347
2 changed files with 9 additions and 1 deletions

View File

@@ -170,6 +170,9 @@ class Tile extends EventTarget {
// cleaned up by refreshInterimChain)
do {
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;
}
tile = tile.interimTile;

View File

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