- options = options || {};
-
- map = new OpenLayers.Map(divName, {
- controls: options.controls || [
- new OpenLayers.Control.ArgParser(),
- new OpenLayers.Control.Attribution(),
- new OpenLayers.Control.LayerSwitcher(),
- new OpenLayers.Control.Navigation(),
- new OpenLayers.Control.PanZoom(),
- new OpenLayers.Control.PanZoomBar(),
- new OpenLayers.Control.ScaleLine({geodesic: true})
- ],
- units: "m",
- maxResolution: 156543.0339,
- numZoomLevels: 20,
- displayProjection: new OpenLayers.Projection("EPSG:4326")
- });
-
- var mapnik = new OpenLayers.Layer.OSM.Mapnik(i18n("javascripts.map.base.mapnik"), {
- keyid: "mapnik",
- displayOutsideMaxExtent: true,
- wrapDateLine: true,
- layerCode: "M"
- });
- map.addLayer(mapnik);
-
- var osmarender = new OpenLayers.Layer.OSM.Osmarender(i18n("javascripts.map.base.osmarender"), {
- keyid: "osmarender",
- displayOutsideMaxExtent: true,
- wrapDateLine: true,
- layerCode: "O"
- });
- map.addLayer(osmarender);
-
- var cyclemap = new OpenLayers.Layer.OSM.CycleMap(i18n("javascripts.map.base.cycle_map"), {
- keyid: "cyclemap",
- displayOutsideMaxExtent: true,
- wrapDateLine: true,
- layerCode: "C"
- });
- map.addLayer(cyclemap);
-
- var nonamekey = nonamekeys[document.domain];
- var noname = new OpenLayers.Layer.OSM(i18n("javascripts.map.base.noname"), [
- "http://a.tile.cloudmade.com/" + nonamekey + "/3/256/${z}/${x}/${y}.png",
- "http://b.tile.cloudmade.com/" + nonamekey + "/3/256/${z}/${x}/${y}.png",
- "http://c.tile.cloudmade.com/" + nonamekey + "/3/256/${z}/${x}/${y}.png"
- ], {
- displayOutsideMaxExtent: true,
- wrapDateLine: true,
- numZoomLevels: 19,
- layerCode: "N"
- });
- map.addLayer(noname);
-
- var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels);
-
- markers = new OpenLayers.Layer.Markers("Markers", {
- displayInLayerSwitcher: false,
- numZoomLevels: numZoomLevels,
- maxExtent: new OpenLayers.Bounds(-20037508,-20037508,20037508,20037508),
- maxResolution: 156543,
- units: "m",
- projection: "EPSG:900913"
- });
- map.addLayer(markers);
-
- return map;
+ options = $.extend({zoomControl: false, panZoomControl: true, layerControl: true}, options);
+
+ map = L.map(divName, $.extend({}, options, {panControl: false, zoomsliderControl: false, maxZoom: 18}));
+
+ if (map.attributionControl) {
+ map.attributionControl.setPrefix(''); // For tmcw
+ }
+
+ if (options.panZoomControl) {
+ new L.Control.Pan().addTo(map);
+ new L.Control.Zoomslider({stepHeight: 7}).addTo(map);
+ }
+
+ var layersControl = L.control.layers();
+
+ if (options.layerControl) {
+ layersControl.addTo(map);
+ }
+
+ for (var i = 0; i < layers.length; i++) {
+ layers[i].layer = new (layers[i].klass)(layers[i]);
+ if (i == 0) {
+ layers[i].layer.addTo(map);
+ }
+ layersControl.addBaseLayer(layers[i].layer, layers[i].name);
+ }
+
+ $("#" + divName).on("resized", function () {
+ map.invalidateSize();
+ });
+
+ return map;