]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index.js
Scope map variable.
[rails.git] / app / assets / javascripts / index.js
index 4041191343dc4b183427bc5f6027f1d225a10273..10f9f86f065d6fd78ffd3ff59d4744921f739e0a 100644 (file)
@@ -15,7 +15,7 @@ $(document).ready(function () {
   var marker;
   var params = OSM.mapParams();
 
-  map = L.map("map", {
+  var map = L.map("map", {
     zoomControl: false,
     layerControl: false
   });
@@ -61,24 +61,30 @@ $(document).ready(function () {
   L.control.customZoom({position: 'topright'})
     .addTo(map);
 
-  L.OSM.layers({position: 'topright', layers: layers})
-    .addTo(map);
+  var uiPane = $('#map-ui')[0];
+
+  L.OSM.layers({
+    position: 'topright',
+    layers: layers,
+    uiPane: uiPane
+  }).addTo(map);
 
   L.control.share({
-      getUrl: getShortUrl
+    getUrl: getShortUrl,
+    uiPane: uiPane
   }).addTo(map);
 
   L.control.note({
-      position: 'topright'
+    position: 'topright'
   }).addTo(map);
 
   L.control.locate({
-      position: 'topright'
+    position: 'topright'
   }).addTo(map);
 
   L.control.scale().addTo(map);
 
-  map.on("moveend layeradd layerremove", updateLocation);
+  map.on('moveend layeradd layerremove', updateLocation);
 
   if (!params.object_zoom) {
     if (params.bbox) {
@@ -148,17 +154,22 @@ $(document).ready(function () {
     marker = L.marker(centre, {icon: getUserIcon()}).addTo(map);
   });
 
-  function updateLocation() {
+  // generate a cookie-safe string of map state
+  function cookieContent(map) {
     var center = map.getCenter().wrap();
-    var zoom = map.getZoom();
-    var layers = getMapLayers();
-    var extents = map.getBounds().wrap();
+    return [center.lng, center.lat, map.getZoom(), getMapLayers(map)].join('|');
+  }
 
-    updatelinks(center, zoom, layers, extents, params.object);
+  function updateLocation() {
+    updatelinks(map.getCenter().wrap(),
+        map.getZoom(),
+        getMapLayers(this),
+        map.getBounds().wrap(),
+        params.object);
 
     var expiry = new Date();
     expiry.setYear(expiry.getFullYear() + 10);
-    $.cookie("_osm_location", [center.lng, center.lat, zoom, layers].join("|"), {expires: expiry});
+    $.cookie("_osm_location", cookieContent(map), { expires: expiry });
   }
 
   function remoteEditHandler() {
@@ -223,8 +234,8 @@ function getMapBaseLayer() {
   }
 }
 
-function getMapLayers() {
-  var layerConfig = "";
+function getMapLayers(map) {
+  var layerConfig = '';
   for (var i in map._layers) { // TODO: map.eachLayer
     var layer = map._layers[i];
     if (layer.options && layer.options.code) {