X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/9d2f920feb9dce028b985e8d452538d3df7a1d9c..673b58f96f3acfd0281c62a2a7f080825b6fb28b:/app/assets/javascripts/index/directions.js?ds=inline diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index ee195af41..ce8ac9c1c 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -32,8 +32,6 @@ OSM.Directions = function (map) { function Endpoint(input, iconUrl) { var endpoint = {}; - endpoint.input = input; - endpoint.marker = L.marker([0, 0], { icon: L.icon({ iconUrl: iconUrl, @@ -62,11 +60,16 @@ OSM.Directions = function (map) { endpoint.setValue(value); }); - endpoint.setValue = function(value) { + endpoint.setValue = function(value, latlng) { endpoint.value = value; delete endpoint.latlng; input.val(value); - endpoint.getGeocode(); + + if (latlng) { + endpoint.setLatLng(latlng); + } else { + endpoint.getGeocode(); + } }; endpoint.getGeocode = function() { @@ -114,17 +117,14 @@ OSM.Directions = function (map) { } $(".directions_form .reverse_directions").on("click", function() { - var input_from = endpoints[0].input.val(); - var input_to = endpoints[1].input.val(); - var latlng_from = endpoints[0].latlng; - var latlng_to = endpoints[1].latlng; - - endpoints[0].setLatLng(latlng_to); - endpoints[1].setLatLng(latlng_from); - endpoints[0].input.val(input_to); - endpoints[1].input.val(input_from); + var from = endpoints[0].latlng, + to = endpoints[1].latlng; - getRoute(); + OSM.router.route("/directions?" + querystring.stringify({ + from: $("#route_to").val(), + to: $("#route_from").val(), + route: from.lat + "," + from.lng + ";" + to.lat + "," + to.lng + })); }); $(".directions_form .close").on("click", function(e) { @@ -364,22 +364,18 @@ OSM.Directions = function (map) { }); var params = querystring.parse(location.search.substring(1)), - route = (params.route || '').split(';'); + route = (params.route || '').split(';'), + from = route[0] && L.latLng(route[0].split(',')), + to = route[1] && L.latLng(route[1].split(',')); if (params.engine) { setEngine(params.engine); } - endpoints[0].setValue(params.from || ""); - endpoints[1].setValue(params.to || ""); - - var o = route[0] && L.latLng(route[0].split(',')), - d = route[1] && L.latLng(route[1].split(',')); - - if (o) endpoints[0].setLatLng(o); - if (d) endpoints[1].setLatLng(d); + endpoints[0].setValue(params.from || "", from); + endpoints[1].setValue(params.to || "", to); - map.setSidebarOverlaid(!o || !d); + map.setSidebarOverlaid(!from || !to); getRoute(); };