From f7c0c26bede090b56927dc78764aee992d8a2bc1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 18 Apr 2013 19:14:50 +0200 Subject: [PATCH 1/2] Update layer visibility in DOM renderer --- src/ol/renderer/dom/dommaprenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/renderer/dom/dommaprenderer.js b/src/ol/renderer/dom/dommaprenderer.js index 00cb83890e..5da3f8c52b 100644 --- a/src/ol/renderer/dom/dommaprenderer.js +++ b/src/ol/renderer/dom/dommaprenderer.js @@ -81,7 +81,7 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) { goog.array.forEach(frameState.layersArray, function(layer) { var layerRenderer = this.getLayerRenderer(layer); var layerState = frameState.layerStates[goog.getUid(layer)]; - if (layerState.visible && layerState.ready) { + if (layerState.ready) { layerRenderer.renderFrame(frameState, layerState); } }, this); From 8831d259296c66c0c10020b2ae46d068f0a1b680 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 18 Apr 2013 19:16:44 +0200 Subject: [PATCH 2/2] Remove DOM layer in render, not in dispose --- src/ol/renderer/dom/domlayerrenderer.js | 9 --------- src/ol/renderer/dom/dommaprenderer.js | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ol/renderer/dom/domlayerrenderer.js b/src/ol/renderer/dom/domlayerrenderer.js index 04e6b94c8f..66ecde9bd3 100644 --- a/src/ol/renderer/dom/domlayerrenderer.js +++ b/src/ol/renderer/dom/domlayerrenderer.js @@ -27,15 +27,6 @@ ol.renderer.dom.Layer = function(mapRenderer, layer, target) { goog.inherits(ol.renderer.dom.Layer, ol.renderer.Layer); -/** - * @inheritDoc - */ -ol.renderer.dom.Layer.prototype.disposeInternal = function() { - goog.dom.removeNode(this.target); - goog.base(this, 'disposeInternal'); -}; - - /** * @protected * @return {!Element} Target. diff --git a/src/ol/renderer/dom/dommaprenderer.js b/src/ol/renderer/dom/dommaprenderer.js index 5da3f8c52b..7ad296a0f1 100644 --- a/src/ol/renderer/dom/dommaprenderer.js +++ b/src/ol/renderer/dom/dommaprenderer.js @@ -4,6 +4,7 @@ goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); +goog.require('goog.object'); goog.require('goog.style'); goog.require('ol.css'); goog.require('ol.layer.ImageLayer'); @@ -86,6 +87,14 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) { } }, this); + goog.object.forEach( + this.getLayerRenderers(), + function(layerRenderer, layerKey) { + if (!(layerKey in frameState.layerStates)) { + goog.dom.removeNode(layerRenderer.getTarget()); + } + }); + if (!this.renderedVisible_) { goog.style.showElement(this.layersPane_, true); this.renderedVisible_ = true;