diff --git a/src/objectliterals.exports b/src/objectliterals.exports index 7ed3f72d17..1acfeb2081 100644 --- a/src/objectliterals.exports +++ b/src/objectliterals.exports @@ -1,7 +1,7 @@ @exportObjectLiteral ol.MapOptions @exportObjectLiteralProperty ol.MapOptions.controls Array.|undefined @exportObjectLiteralProperty ol.MapOptions.interactions ol.Collection|undefined -@exportObjectLiteralProperty ol.MapOptions.layers ol.Collection|undefined +@exportObjectLiteralProperty ol.MapOptions.layers Array.|ol.Collection|undefined @exportObjectLiteralProperty ol.MapOptions.renderer ol.RendererHint|undefined @exportObjectLiteralProperty ol.MapOptions.renderers Array.|undefined @exportObjectLiteralProperty ol.MapOptions.target Element|string diff --git a/src/ol/map.js b/src/ol/map.js index 06f997f7b4..8f9af2249f 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -823,8 +823,18 @@ ol.Map.createOptionsInternal = function(mapOptions) { */ var values = {}; - values[ol.MapProperty.LAYERS] = goog.isDef(mapOptions.layers) ? - mapOptions.layers : new ol.Collection(); + var layers; + if (goog.isDef(mapOptions.layers)) { + if (goog.isArray(mapOptions.layers)) { + layers = new ol.Collection(goog.array.clone(mapOptions.layers)); + } else { + goog.asserts.assert(mapOptions.layers instanceof ol.Collection); + layers = mapOptions.layers; + } + } else { + layers = new ol.Collection(); + } + values[ol.MapProperty.LAYERS] = layers; values[ol.MapProperty.VIEW] = goog.isDef(mapOptions.view) ? mapOptions.view : new ol.View2D();