diff --git a/server/lib/routing.js b/server/lib/routing.js index b5ec17e5..de32fe97 100644 --- a/server/lib/routing.js +++ b/server/lib/routing.js @@ -1,10 +1,9 @@ -var request = require("request"); +var request = require("request-promise"); var utils = require("./utils"); var config = require("../config"); var Promise = require("promise"); -var ROUTING_URL = "http://open.mapquestapi.com/directions/v2/route"; -var API_KEY = "Fmjtd%7Cluur2qubl9%2C80%3Do5-9aangr"; +var ROUTING_URL = "https://router.project-osrm.org/route/v1"; // The OpenLayers resolution for zoom level 1 is 0.7031249999891753 // and for zoom level 20 0.0000013411044763239684 @@ -13,51 +12,41 @@ var API_KEY = "Fmjtd%7Cluur2qubl9%2C80%3Do5-9aangr"; // As we don’t need one route point per pixel, we raise the value a bit var RESOLUTION_20 = 0.0000013411044763239684 * 4; +var ROUTING_TYPES = { + fastest: "driving", + shortest: "driving", + bicycle: "cycling", + pedestrian: "walking" +}; + function calculateRouting(points, mode) { - return new Promise(function(resolve, reject) { - var json = { - locations : [ ], - options : { - unit : "k", - generalize : 0, - narrativeType : "none", - routeType : mode - } + var coords = [ ]; + for(var i=0; i 0)) - return reject(body.route.routeError.message || body.info.messages.join(" ")); - if(!body.route.shape || !body.route.shape.shapePoints) - return reject("Invalid response from routing server."); - - var ret = { - trackPoints : [ ], - distance : body.route.distance, - time : body.route.time - }; - for(var i=0; i