Make sure the query location is always in view
authorTom Hughes <tom@compton.nu>
Sun, 16 Mar 2014 16:47:27 +0000 (16:47 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 16 Mar 2014 16:47:27 +0000 (16:47 +0000)
app/assets/javascripts/index/query.js

index 5ce9969274f41edbbfef81db065dbfa0d85eb39c..d9906407d11ead6a476d1187025d14c874640922 100644 (file)
@@ -256,17 +256,23 @@ OSM.Query = function(map) {
 
   page.pushstate = page.popstate = function(path) {
     OSM.loadSidebarContent(path, function () {
-      page.load(path);
+      page.load(path, true);
     });
   };
 
-  page.load = function(path) {
-    var params = querystring.parse(path.substring(path.indexOf('?') + 1));
+  page.load = function(path, noCentre) {
+    var params = querystring.parse(path.substring(path.indexOf('?') + 1)),
+      latlng = L.latLng(params.lat, params.lon);
+
+    if (!window.location.hash &&
+        (!noCentre || !map.getBounds().contains(latlng))) {
+      OSM.router.withoutMoveListener(function () {
+        map.setView(latlng, 15);
+      });
+    }
 
     queryOverpass(params.lat, params.lon);
     enableQueryMode();
-
-    return map.getState();
   };
 
   page.unload = function() {