/* layers */ var source_osm = function(options){ return new ol.layer.Tile({ source: new ol.source.OSM() }); }; var map_layers = { 'osm': source_osm }; var get_layers = function(layers){ if (!layers){ layers = [{'type': 'osm', 'options': null}]; } console.log(layers); var ol_layers = []; for (idx in layers){ var layer_attr = layers[idx]; ol_layers.push( map_layers[layer_attr['type']](layer_attr['options']) ); } return ol_layers; }; /* get markers */ var get_markers = function(points){ }; /* display map */ var display_map = function(map_id, points, layers){ var map = new ol.Map({ target: map_id, layers: get_layers(layers), view: new ol.View({ center: ol.proj.fromLonLat([37.41, 8.82]), zoom: 4 }) }); get_markers(points); }