From 981a40a994892d960cd661c082dc1a1358243d59 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Thu, 27 Sep 2012 17:44:12 +0200 Subject: [PATCH] Remove tiles that are still loading at alt z When zooming to a new zoom level, we can immediately remove tiles from the previous level. This (strongly) suggests not adding images to the container until they have actually loaded. --- src/ol/renderer/dom/tilelayer.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/dom/tilelayer.js b/src/ol/renderer/dom/tilelayer.js index b8a3092d1a..d97b7718de 100644 --- a/src/ol/renderer/dom/tilelayer.js +++ b/src/ol/renderer/dom/tilelayer.js @@ -153,6 +153,19 @@ ol.renderer.dom.TileLayer.prototype.handleTileChange_ = function(event) { }; +/** + * Remove all loading tiles that have been appended. + * @private + */ +ol.renderer.dom.TileLayer.prototype.removeLoadingTiles_ = function() { + for (var key in this.loadingTiles_) { + var tile = this.loadingTiles_[key]; + goog.dom.removeNode(tile.getImage(this)); + delete this.loadingTiles_[key]; + } +}; + + /** * @inheritDoc */ @@ -175,7 +188,7 @@ ol.renderer.dom.TileLayer.prototype.render = function() { if (z != this.renderedZ_) { // no longer wait for previously loading tiles - this.loadingTiles_ = {}; + this.removeLoadingTiles_(); } /**