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;