]> git.openstreetmap.org Git - nominatim-ui.git/commitdiff
Allow map to wrap-around, still longitude should be -180..+180
authormarc tobias <mtmail@gmx.net>
Sat, 30 Nov 2019 12:25:42 +0000 (13:25 +0100)
committermarc tobias <mtmail@gmx.net>
Sat, 30 Nov 2019 12:25:42 +0000 (13:25 +0100)
src/assets/js/base.js
src/assets/js/searchpage.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(',');
 }
 
index 3528f19c68ccd18269999fa2bfe577d740edcccf..44e7a7941068550b0179b8907d3df7aeea63160b 100755 (executable)
@@ -6,6 +6,10 @@
 
 function display_map_position(mouse_lat_lng){
 
+    if (mouse_lat_lng) {
+        mouse_lat_lng = map.wrapLatLng(mouse_lat_lng);
+    }
+
     html_mouse = "mouse position " + (mouse_lat_lng ? [mouse_lat_lng.lat.toFixed(5), mouse_lat_lng.lng.toFixed(5)].join(',') : '-');
     html_click = "last click: " + (last_click_latlng ? [last_click_latlng.lat.toFixed(5),last_click_latlng.lng.toFixed(5)].join(',') : '-');
 
@@ -20,9 +24,10 @@ function display_map_position(mouse_lat_lng){
 
     $('#map-position-inner').html([html_center,html_zoom,html_viewbox,html_click,html_mouse].join('<br/>'));
 
+    var center_lat_lng = map.wrapLatLng(map.getCenter());
     var reverse_params = {
-        // lat: map.getCenter().lat.toFixed(5),
-        // lon: map.getCenter().lng.toFixed(5),
+        lat: center_lat_lng.lat.toFixed(5),
+        lon: center_lat_lng.lng.toFixed(5)
         // zoom: 2,
         // format: 'html'
     }
@@ -46,7 +51,6 @@ function init_map_on_search_page(is_reverse_search, nominatim_results, request_l
 
 
     L.tileLayer(get_config_value('Map_Tile_URL'), {
-        noWrap: true, // otherwise we end up with click coordinates like latitude -728
         // moved to footer
         attribution: (get_config_value('Map_Tile_Attribution') || null ) //'&copy; <a href="https://osm.org/copyright">OpenStreetMap</a> contributors'
     }).addTo(map);
@@ -205,7 +209,7 @@ function init_map_on_search_page(is_reverse_search, nominatim_results, request_l
     if ( is_reverse_search ){
         map.on('click', function(e){
             $('form input[name=lat]').val( e.latlng.lat);
-            $('form input[name=lon]').val( e.latlng.lng);
+            $('form input[name=lon]').val( e.latlng.wrap().lng);
             $('form').submit();
         });