]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/application.js
Use custom zoom control everywhere
[rails.git] / app / assets / javascripts / application.js
index e91a9036fd6973ce3ccbb12563b4826bd640b5aa..0ee6dc8806a7c94607619259352e92970668b58f 100644 (file)
@@ -5,6 +5,7 @@
 //= require augment
 //= require leaflet
 //= require leaflet.osm
+//= require leaflet.zoom
 //= require leaflet.extend
 //= require leaflet.locationfilter
 //= require i18n/translations
@@ -114,6 +115,10 @@ function updatelinks(loc, zoom, layers, bounds, object) {
   }
 }
 
+function minZoomAlert() {
+    alert(I18n.t("javascripts.site." + name + "_zoom_alert")); return false;
+}
+
 function getShortUrl(map) {
   return (window.location.hostname.match(/^www\.openstreetmap\.org/i) ?
           'http://osm.org/go/' : '/go/') +
@@ -122,21 +127,19 @@ function getShortUrl(map) {
 
 function getUrl(map) {
   var center = map.getCenter(),
-      zoom = map.getZoom();
+      zoom = map.getZoom(),
+      toZoom = zoomPrecision(zoom);
 
   return (window.location.hostname.match(/^www\.openstreetmap\.org/i) ?
           'http://openstreetmap.org/?' : '/?') +
         querystring.stringify({
-            lat: center.lat,
-            lon: center.lng,
-            zoom: zoom
+            lat: toZoom(center.lat),
+            lon: toZoom(center.lng),
+            zoom: zoom,
+            layers: map.getLayersCode()
         });
 }
 
-function minZoomAlert() {
-    alert(I18n.t("javascripts.site." + name + "_zoom_alert")); return false;
-}
-
 // Called to create a short code for the short link.
 function makeShortCode(map) {
     var zoom = map.getZoom(),
@@ -175,6 +178,12 @@ function makeShortCode(map) {
     return str;
 }
 
+// generate a cookie-safe string of map state
+function cookieContent(map) {
+  var center = map.getCenter().wrap();
+  return [center.lng, center.lat, map.getZoom(), map.getLayersCode()].join('|');
+}
+
 /*
  * Forms which have been cached by rails may have the wrong
  * authenticity token, so patch up any forms with the correct