]> git.openstreetmap.org Git - nominatim-ui.git/blobdiff - src/assets/js/base.js
Allow map to wrap-around, still longitude should be -180..+180
[nominatim-ui.git] / src / assets / js / base.js
index 48f8feb4839b23fe7b9a8f657b0e8f7f591e6b33..5754e3dcd916340a9b871c838d7e61eb52b58d1f 100644 (file)
@@ -31,12 +31,22 @@ function map_link_to_osm(){
 }
 
 function map_viewbox_as_string() {
-    // since .toBBoxString() doesn't round numbers
+    var bounds = map.getBounds();
+    var west = bounds.getWest();
+    var east = bounds.getEast();
+
+    if ((east - west) >= 360) { // covers more than whole planet
+        west = map.getCenter().lng-179.999;
+        east = map.getCenter().lng+179.999;
+    }
+    east = L.latLng(77, east).wrap().lng;
+    west = L.latLng(77, west).wrap().lng;
+
     return [
-        map.getBounds().getSouthWest().lng.toFixed(5), // left
-        map.getBounds().getNorthEast().lat.toFixed(5), // top
-        map.getBounds().getNorthEast().lng.toFixed(5), // right
-        map.getBounds().getSouthWest().lat.toFixed(5)  // bottom
+        west.toFixed(5), // left
+        bounds.getNorth().toFixed(5), // top
+        east.toFixed(5), // right
+        bounds.getSouth().toFixed(5) // bottom
     ].join(',');
 }