diff --git a/src/ol/layer/layer.js b/src/ol/layer/layer.js index d9e9eca0a8..13f3a565ed 100644 --- a/src/ol/layer/layer.js +++ b/src/ol/layer/layer.js @@ -149,8 +149,9 @@ ol.layer.Layer.prototype.handleSourcePropertyChange_ = function() { /** * Sets the layer to be rendered on a map. The map will not manage this layer in * its layers collection, and the layer will be rendered on top. This is useful - * for temporary layers. To add the layer to a map and have it managed by the - * map, use {@link ol.Map#addLayer} instead. + * for temporary layers. To remove an unmanaged layer from the map, use + * `#setMap(null)`. To add the layer to a map and have it managed by the map, + * use {@link ol.Map#addLayer} instead. * @param {ol.Map} map Map. * @api */ diff --git a/test/spec/ol/layer/layer.test.js b/test/spec/ol/layer/layer.test.js index b5899b034c..c9e63884cb 100644 --- a/test/spec/ol/layer/layer.test.js +++ b/test/spec/ol/layer/layer.test.js @@ -586,10 +586,17 @@ describe('ol.layer.Layer', function() { }; map.dispatchEvent(new ol.render.Event('precompose', map, null, frameState, null, null)); - var layerState = frameState.layerStatesArray[0]; expect(frameState.layerStatesArray.length).to.be(1); + var layerState = frameState.layerStatesArray[0]; expect(layerState.layer).to.equal(layer); expect(frameState.layerStates[goog.getUid(layer)]).to.equal(layerState); + frameState.layerStatesArray = []; + frameState.layerStates = {}; + + layer.setMap(null); + map.dispatchEvent(new ol.render.Event('precompose', map, null, + frameState, null, null)); + expect(frameState.layerStatesArray.length).to.be(0); }); });