X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/2cfc030bbac65d8cb687ee17e6fbf18ffa5ea2cc..HEAD:/app/assets/javascripts/index/directions/fossgis_osrm.js diff --git a/app/assets/javascripts/index/directions/fossgis_osrm.js b/app/assets/javascripts/index/directions/fossgis_osrm.js index bb968f2da..cd1731247 100644 --- a/app/assets/javascripts/index/directions/fossgis_osrm.js +++ b/app/assets/javascripts/index/directions/fossgis_osrm.js @@ -154,15 +154,15 @@ creditline: "OSRM (FOSSGIS)", draggable: true, - getRoute: function (points, callback) { - const data = [ - { name: "overview", value: "false" }, - { name: "geometries", value: "polyline" }, - { name: "steps", value: true } - ]; + getRoute: function (points, signal) { + const query = new URLSearchParams({ + overview: "false", + geometries: "polyline", + steps: true + }); if (cachedHints.length === points.length) { - data.push({ name: "hints", value: cachedHints.join(";") }); + query.set("hints", cachedHints.join(";")); } else { // invalidate cache cachedHints = []; @@ -170,22 +170,13 @@ const req_path = "routed-" + vehicleType + "/route/v1/driving/" + points.map(p => p.lng + "," + p.lat).join(";"); - return $.ajax({ - url: OSM.FOSSGIS_OSRM_URL + req_path, - data, - dataType: "json", - success: function (response) { - if (response.code !== "Ok") { - return callback(true); - } - + return fetch(OSM.FOSSGIS_OSRM_URL + req_path + "?" + query, { signal }) + .then(response => response.json()) + .then(response => { + if (response.code !== "Ok") throw new Error(); cachedHints = response.waypoints.map(wp => wp.hint); - callback(false, _processDirections(response.routes[0])); - }, - error: function () { - callback(true); - } - }); + return _processDirections(response.routes[0]); + }); } }; }