X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/97bd4579b0850eec450f77d09b11c1c4ad752faa..bcf5782fb5a3a916ea036ce78ecd2a1208ace87f:/app/assets/javascripts/index/directions/graphhopper.js diff --git a/app/assets/javascripts/index/directions/graphhopper.js b/app/assets/javascripts/index/directions/graphhopper.js index 191475873..729618f2d 100644 --- a/app/assets/javascripts/index/directions/graphhopper.js +++ b/app/assets/javascripts/index/directions/graphhopper.js @@ -51,33 +51,24 @@ creditline: "GraphHopper", draggable: false, - getRoute: function (points, callback) { + getRoute: function (points, signal) { // GraphHopper Directions API documentation // https://graphhopper.com/api/1/docs/routing/ - const data = { + const query = new URLSearchParams({ vehicle: vehicleType, locale: I18n.currentLocale(), key: "LijBPDQGfu7Iiq80w3HzwB4RUDJbMbhs6BU0dEnn", elevation: false, instructions: true, - turn_costs: vehicleType === "car", - point: points.map(p => p.lat + "," + p.lng) - }; - return $.ajax({ - url: OSM.GRAPHHOPPER_URL, - data, - traditional: true, - dataType: "json", - success: function ({ paths }) { - if (!paths || paths.length === 0) { - return callback(true); - } - callback(false, _processDirections(paths[0])); - }, - error: function () { - callback(true); - } + turn_costs: vehicleType === "car" }); + points.forEach(p => query.append("point", p.lat + "," + p.lng)); + return fetch(OSM.GRAPHHOPPER_URL + "?" + query, { signal }) + .then(response => response.json()) + .then(({ paths }) => { + if (!paths || paths.length === 0) throw new Error(); + return _processDirections(paths[0]); + }); } }; }