X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/87a7c0272d6eac05befda72ba773b9749086965e..5f7dd9d8b378ee532e29f6b49fc745cf9b949e5b:/app/assets/javascripts/index/directions.js diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index ff76f4008..4eb0e09f4 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -116,18 +116,14 @@ OSM.Directions = function (map) { // Cancel any route that is already in progress if (routeRequest) routeRequest.abort(); - var o = endpoints[0].latlng, - d = endpoints[1].latlng; + const points = endpoints.map(p => p.latlng); - if (!o || !d) return; + if (!points[0] || !points[1]) return; $("header").addClass("closed"); - var precision = OSM.zoomPrecision(map.getZoom()); - OSM.router.replace("/directions?" + Qs.stringify({ engine: chosenEngine.id, - route: o.lat.toFixed(precision) + "," + o.lng.toFixed(precision) + ";" + - d.lat.toFixed(precision) + "," + d.lng.toFixed(precision) + route: points.map(p => OSM.cropLocation(p, map.getZoom()).join()).join(";") })); // copy loading item to sidebar and display it. we copy it, rather than @@ -136,7 +132,7 @@ OSM.Directions = function (map) { $("#sidebar_content").html($(".directions_form .loader_copy").html()); map.setSidebarOverlaid(false); - routeRequest = chosenEngine.getRoute([o, d], function (err, route) { + routeRequest = chosenEngine.getRoute(points, function (err, route) { routeRequest = null; if (err) { @@ -285,11 +281,13 @@ OSM.Directions = function (map) { var pt = L.DomEvent.getMousePosition(oe, map.getContainer()); // co-ordinates of the mouse pointer at present pt.y += 20; 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); + const llWithPrecision = OSM.cropLocation(ll, map.getZoom()); + endpoints[type === "from" ? 0 : 1].setValue(llWithPrecision.join(", "), llWithPrecision); }); + endpoints[0].enable(); + endpoints[1].enable(); + var params = Qs.parse(location.search.substring(1)), route = (params.route || "").split(";"), from = route[0] && L.latLng(route[0].split(",")), @@ -318,11 +316,12 @@ OSM.Directions = function (map) { $(".directions_form").hide(); $("#map").off("dragend dragover drop"); + endpoints[0].disable(); + endpoints[1].disable(); + map .removeLayer(popup) - .removeLayer(polyline) - .removeLayer(endpoints[0].marker) - .removeLayer(endpoints[1].marker); + .removeLayer(polyline); }; return page;