X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/8f387236cee2e842f695b287ae8a85c365bddf9c..6f9dfc667bfd2d4ac0d14f061dc2e29b2bde7f19:/app/assets/javascripts/index/directions.js diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index 4eb0e09f4..681479e52 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -1,7 +1,6 @@ //= require ./directions-endpoint //= require_self //= require_tree ./directions -//= require qs/dist/qs OSM.Directions = function (map) { var routeRequest = null; // jqXHR object of an ongoing route request or null @@ -65,10 +64,9 @@ OSM.Directions = function (map) { if (coordTo) { routeTo = coordTo.lat + "," + coordTo.lng; } + endpoints[0].swapCachedReverseGeocodes(endpoints[1]); - OSM.router.route("/directions?" + Qs.stringify({ - from: $("#route_to").val(), - to: $("#route_from").val(), + OSM.router.route("/directions?" + new URLSearchParams({ route: routeTo + ";" + routeFrom })); }); @@ -121,7 +119,7 @@ OSM.Directions = function (map) { if (!points[0] || !points[1]) return; $("header").addClass("closed"); - OSM.router.replace("/directions?" + Qs.stringify({ + OSM.router.replace("/directions?" + new URLSearchParams({ engine: chosenEngine.id, route: points.map(p => OSM.cropLocation(p, map.getZoom()).join()).join(";") })); @@ -229,6 +227,7 @@ OSM.Directions = function (map) { directionsCloseButton.on("click", function () { map.removeLayer(polyline); $("#sidebar_content").html(""); + popup.close(); map.setSidebarOverlaid(true); // TODO: collapse width of sidebar back to previous }); @@ -282,29 +281,27 @@ OSM.Directions = function (map) { pt.y += 20; var ll = map.containerPointToLatLng(pt); const llWithPrecision = OSM.cropLocation(ll, map.getZoom()); - endpoints[type === "from" ? 0 : 1].setValue(llWithPrecision.join(", "), llWithPrecision); + endpoints[type === "from" ? 0 : 1].setValue(llWithPrecision.join(", ")); }); 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(",")), - to = route[1] && L.latLng(route[1].split(",")); + const params = new URLSearchParams(location.search), + route = (params.get("route") || "").split(";"); - if (params.engine) { - var engineIndex = findEngine(params.engine); + if (params.has("engine")) { + var engineIndex = findEngine(params.get("engine")); if (engineIndex >= 0) { setEngine(engineIndex); } } - endpoints[0].setValue(params.from || "", from); - endpoints[1].setValue(params.to || "", to); + endpoints[0].setValue(params.get("from") || route[0] || ""); + endpoints[1].setValue(params.get("to") || route[1] || ""); - map.setSidebarOverlaid(!from || !to); + map.setSidebarOverlaid(!endpoints[0].latlng || !endpoints[1].latlng); }; page.load = function () {