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 00cb83890e..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'); @@ -81,11 +82,19 @@ 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); + 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;