]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/site/id.html.erb
Add a hash if one isn't already present
[rails.git] / app / views / site / id.html.erb
index c0682258d3f9845febaa331cb9d1994a25e1b2eb..1b4cdf1bbb778f3bd6a76d27d543ed452c8ca1d9 100644 (file)
@@ -31,7 +31,7 @@
         oauth_token_secret: "<%= token.secret %>"
       });
 
-    id.map().on('move.embed', function() {
+    id.map().on('move.embed', parent.$.throttle(250, function() {
       var extent = id.map().extent(),
           zoom = ~~id.map().zoom(),
           center = id.map().center();
         extent[0][0]],
         [extent[1][1],
         extent[1][0]]]);
-    });
+
+      // Manually resolve URL to avoid iframe JS context weirdness.
+      // http://bl.ocks.org/jfirebaugh/5439412
+      var hash = parent.OSM.formatHash({ lon: center[0], lat: center[1], zoom: zoom });
+      if (hash !== parent.location.hash) {
+        parent.location.replace(parent.location.href.replace(/(#.*|$)/, hash));
+      }
+    }));
 
     parent.$("body").on("click", "a.set_position", function (e) {
       e.preventDefault();