]> git.openstreetmap.org Git - rails.git/blobdiff - public/javascripts/map.js
Add history for ways and nodes, split 'last edited by' into a seperate template to...
[rails.git] / public / javascripts / map.js
index d8765fe1a93fcb6507427427468c429c116b133a..bc2e9086326dbbbe1b24b6bdbc9da474c1ef9b7b 100644 (file)
@@ -7,9 +7,10 @@ OpenLayers._getScriptLocation = function () {
    return "/openlayers/";
 }
 
-function createMap(divName) {
+function createMap(divName, options) {
+   if (!options) { options = {} }
    map = new OpenLayers.Map(divName, {
-      controls: [
+      controls: options.controls || [
          new OpenLayers.Control.ArgParser(),
          new OpenLayers.Control.Attribution(),
          new OpenLayers.Control.LayerSwitcher(),
@@ -17,7 +18,9 @@ function createMap(divName) {
          new OpenLayers.Control.PanZoomBar(),
          new OpenLayers.Control.ScaleLine()
       ],
-      units: "m"
+      units: "m",
+      maxResolution: 156543.0339,
+      numZoomLevels: 20
    });
 
    var mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {
@@ -108,7 +111,7 @@ function setMapExtent(extent) {
 }
 
 function getEventPosition(event) {
-   return map.getLonLatFromViewPortPx(e.xy).clone().transform(epsg4326, map.getProjectionObject());
+   return map.getLonLatFromViewPortPx(event.xy).clone().transform(map.getProjectionObject(), epsg4326);
 }
 
 function getMapLayers() {
@@ -130,12 +133,15 @@ function getMapLayers() {
 function setMapLayers(layers) {
    for (var i=0; i < layers.length; i++) {
       var layer = map.layers[i];
-      var c = layers.charAt(i);
 
-      if (c == "B") {
-         map.setBaseLayer(layer);
-      } else if ( (c == "T") || (c == "F") ) {
-         layer.setVisibility(c == "T");
+      if (layer) {
+         var c = layers.charAt(i);
+
+         if (c == "B") {
+            map.setBaseLayer(layer);
+         } else if ( (c == "T") || (c == "F") ) {
+            layer.setVisibility(c == "T");
+         }
       }
    }
 }