]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index.js
Refine zooming and panning for note and data layers
[rails.git] / app / assets / javascripts / index.js
index d7a14c31209c98f26f32d7ae7cabb05969b231b7..a7522479e0f756227426981f3824c09c744a4a00 100644 (file)
@@ -250,14 +250,24 @@ $(document).ready(function () {
 
     page.pushstate = page.popstate = function(path, id) {
       OSM.loadSidebarContent(path, function() {
-        page.load(path, id);
+        addObject(type, id);
       });
     };
 
     page.load = function(path, id) {
-      map.addObject({type: type, id: parseInt(id)});
+      addObject(type, id, true);
     };
 
+    function addObject(type, id, center) {
+      var bounds = map.addObject({type: type, id: parseInt(id)}, function(bounds) {
+        if (!window.location.hash && bounds.isValid()) {
+          OSM.router.moveListenerOff();
+          map.once('moveend', OSM.router.moveListenerOn);
+          if (center || !map.getBounds().contains(bounds)) map.fitBounds(bounds);
+        }
+      });
+    }
+
     page.unload = function() {
       map.removeObject();
     };