]> git.openstreetmap.org Git - rails.git/commitdiff
Limit coordinate precision in drag listener
authorAnton Khorev <tony29@yandex.ru>
Mon, 12 Aug 2024 02:19:22 +0000 (05:19 +0300)
committerAnton Khorev <tony29@yandex.ru>
Tue, 20 Aug 2024 11:55:29 +0000 (14:55 +0300)
app/assets/javascripts/index/directions-endpoint.js
app/assets/javascripts/index/directions.js

index 9ae7ce84fff948bbf4a7303bfc07f794dc617e77..87bd112ca8fa97e74a734205d18239d5b34a4728 100644 (file)
@@ -31,7 +31,7 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ch
   };
 
   function markerDragListener(e) {
-    var latlng = e.target.getLatLng();
+    var latlng = convertLatLngToZoomPrecision(e.target.getLatLng());
 
     setLatLng(latlng);
     setInputValueFromLatLng(latlng);
@@ -93,9 +93,13 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ch
   }
 
   function setInputValueFromLatLng(latlng) {
+    input.val(latlng.lat + ", " + latlng.lng);
+  }
+
+  function convertLatLngToZoomPrecision(latlng) {
     var precision = OSM.zoomPrecision(map.getZoom());
 
-    input.val(latlng.lat.toFixed(precision) + ", " + latlng.lng.toFixed(precision));
+    return L.latLng(latlng.lat.toFixed(precision), latlng.lng.toFixed(precision));
   }
 
   return endpoint;
index 7e8c18fb8cdaafd6d0d0ace0542a8a780d5eadb3..391c1f9315c7fe945d822d49380f9578729e79c0 100644 (file)
@@ -287,7 +287,8 @@ OSM.Directions = function (map) {
       var ll = map.containerPointToLatLng(pt);
       var precision = OSM.zoomPrecision(map.getZoom());
       var value = ll.lat.toFixed(precision) + ", " + ll.lng.toFixed(precision);
-      endpoints[type === "from" ? 0 : 1].setValue(value, ll);
+      var llWithPrecision = L.latLng(ll.lat.toFixed(precision), ll.lng.toFixed(precision));
+      endpoints[type === "from" ? 0 : 1].setValue(value, llWithPrecision);
     });
 
     endpoints[0].enable();