X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/dcbc807526b5eb456e33e22d794374ae7ff3723b..ad75dd1f064e7aa80b6ffb7f2ff5ce5181985b77:/public/javascripts/map.js diff --git a/public/javascripts/map.js b/public/javascripts/map.js index ab15198ab..090d4abc2 100644 --- a/public/javascripts/map.js +++ b/public/javascripts/map.js @@ -23,7 +23,8 @@ function createMap(divName, options) { new OpenLayers.Control.LayerSwitcher(), new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoom(), - new OpenLayers.Control.PanZoomBar() + new OpenLayers.Control.PanZoomBar(), + new OpenLayers.Control.ScaleLine({geodesic: true}) ], units: "m", maxResolution: 156543.0339, @@ -32,20 +33,26 @@ function createMap(divName, options) { }); var mapnik = new OpenLayers.Layer.OSM.Mapnik(i18n("javascripts.map.base.mapnik"), { + keyid: "mapnik", displayOutsideMaxExtent: true, - wrapDateLine: 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 + 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 + wrapDateLine: true, + layerCode: "C" }); map.addLayer(cyclemap); @@ -57,16 +64,11 @@ function createMap(divName, options) { ], { displayOutsideMaxExtent: true, wrapDateLine: true, - numZoomLevels: 19 + numZoomLevels: 19, + layerCode: "N" }); map.addLayer(noname); - var maplint = new OpenLayers.Layer.OSM.Maplint(i18n("javascripts.map.overlays.maplint"), { - displayOutsideMaxExtent: true, - wrapDateLine: true - }); - map.addLayer(maplint); - var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels); markers = new OpenLayers.Layer.Markers("Markers", { @@ -223,39 +225,39 @@ function getEventPosition(event) { function getMapLayers() { var layerConfig = ""; - for (var layers = map.getLayersBy("isBaseLayer", true), i = 0; i < layers.length; i++) { - layerConfig += layers[i] == map.baseLayer ? "B" : "0"; - } - - for (var layers = map.getLayersBy("isBaseLayer", false), i = 0; i < layers.length; i++) { - layerConfig += layers[i].getVisibility() ? "T" : "F"; + for (var i = 0; i < map.layers.length; i++) { + if (map.layers[i].layerCode && map.layers[i].getVisibility()) { + layerConfig += map.layers[i].layerCode; + } } return layerConfig; } function setMapLayers(layerConfig) { - var l = 0; + if (layerConfig.charAt(0) == "B" || layerConfig.charAt(0) == "0") { + var l = 0; - for (var layers = map.getLayersBy("isBaseLayer", true), i = 0; i < layers.length; i++) { - var c = layerConfig.charAt(l++); + for (var layers = map.getLayersBy("isBaseLayer", true), i = 0; i < layers.length; i++) { + var c = layerConfig.charAt(l++); - if (c == "B") { - map.setBaseLayer(layers[i]); + if (c == "B") { + map.setBaseLayer(layers[i]); + } } - } - - while (layerConfig.charAt(l) == "B" || layerConfig.charAt(l) == "0") { - l++; - } - - for (var layers = map.getLayersBy("isBaseLayer", false), i = 0; i < layers.length; i++) { - var c = layerConfig.charAt(l++); - - if (c == "T") { - layers[i].setVisibility(true); - } else if(c == "F") { - layers[i].setVisibility(false); + } else { + for (var i = 0; i < map.layers.length; i++) { + if (map.layers[i].layerCode) { + if (layerConfig.indexOf(map.layers[i].layerCode) >= 0) { + if (map.layers[i].isBaseLayer) { + map.setBaseLayer(map.layers[i]); + } else { + map.layers[i].setVisibility(true); + } + } else { + map.layers[i].setVisibility(false); + } + } } } }