From 61982646ba949e88721472d57444d4ce3b1dab26 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Mar 2013 13:04:56 +0100 Subject: [PATCH] Allow layers to be passed as an array when creating a map --- src/objectliterals.exports | 2 +- src/ol/map.js | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) 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();