-function GraphHopperEngine(id, vehicleParam) {
+function GraphHopperEngine(id, vehicleType) {
var GH_INSTR_MAP = {
"-3": 6, // sharp left
"-2": 7, // left
getRoute: function (points, callback) {
// GraphHopper Directions API documentation
// https://github.com/graphhopper/directions-api/blob/master/docs-routing.md
- var url = document.location.protocol + "//graphhopper.com/api/1/route?" +
- vehicleParam +
- "&locale=" + I18n.currentLocale() +
- "&key=LijBPDQGfu7Iiq80w3HzwB4RUDJbMbhs6BU0dEnn" +
- "&type=jsonp" +
- "&elevation=false" +
- "&instructions=true";
-
- for (var i = 0; i < points.length; i++) {
- url += "&point=" + points[i].lat + ',' + points[i].lng;
- }
-
return $.ajax({
- url: url,
- dataType: 'jsonp',
+ url: document.location.protocol + "//graphhopper.com/api/1/route",
+ data: {
+ vehicle: vehicleType,
+ locale: I18n.currentLocale(),
+ key: "LijBPDQGfu7Iiq80w3HzwB4RUDJbMbhs6BU0dEnn",
+ type: "jsonp",
+ elevation: false,
+ instructions: true,
+ point: points.map(function (p) { return p.lat + "," + p.lng })
+ },
+ traditional: true,
+ dataType: "jsonp",
success: function (data) {
if (!data.paths || data.paths.length === 0)
return callback(true);
};
}
-OSM.Directions.addEngine(new GraphHopperEngine("graphhopper_bicycle", "vehicle=bike"), true);
-OSM.Directions.addEngine(new GraphHopperEngine("graphhopper_foot", "vehicle=foot"), true);
+OSM.Directions.addEngine(new GraphHopperEngine("graphhopper_bicycle", "bike"), true);
+OSM.Directions.addEngine(new GraphHopperEngine("graphhopper_foot", "foot"), true);
// http://open.mapquestapi.com/directions/
// https://github.com/apmon/openstreetmap-website/blob/21edc353a4558006f0ce23f5ec3930be6a7d4c8b/app/controllers/routing_controller.rb#L153
-function MapQuestEngine(id, vehicleParam) {
+function MapQuestEngine(id, routeType) {
var MQ_SPRITE_MAP = {
0: 1, // straight
1: 2, // slight right
draggable: false,
getRoute: function (points, callback) {
- var url = document.location.protocol + "//open.mapquestapi.com/directions/v2/route";
var from = points[0];
var to = points[points.length - 1];
- url += "?key=" + OSM.MAPQUEST_KEY;
- url += "&from=" + from.lat + ',' + from.lng;
- url += "&to=" + to.lat + ',' + to.lng;
- url += "&" + vehicleParam;
- //url+="&locale=" + I18n.currentLocale(); //Doesn't actually work. MapQuest requires full locale e.g. "de_DE", but I18n may only provides language, e.g. "de"
- url += "&manMaps=false";
- url += "&shapeFormat=raw&generalize=0&unit=k";
return $.ajax({
- url: url,
+ url: document.location.protocol + "//open.mapquestapi.com/directions/v2/route",
+ data: {
+ key: OSM.MAPQUEST_KEY,
+ from: from.lat + "," + from.lng,
+ to: to.lat + "," + to.lng,
+ routeType: routeType,
+ // locale: I18n.currentLocale(), //Doesn't actually work. MapQuest requires full locale e.g. "de_DE", but I18n may only provides language, e.g. "de"
+ manMaps: false,
+ shapeFormat: "raw",
+ generalize: 0,
+ unit: "k"
+ },
+ dataType: "json",
success: function (data) {
if (data.info.statuscode !== 0)
return callback(true);
}
if (OSM.MAPQUEST_KEY) {
- OSM.Directions.addEngine(new MapQuestEngine("mapquest_bicycle", "routeType=bicycle"), true);
- OSM.Directions.addEngine(new MapQuestEngine("mapquest_foot", "routeType=pedestrian"), true);
- OSM.Directions.addEngine(new MapQuestEngine("mapquest_car", "routeType=fastest"), true);
+ OSM.Directions.addEngine(new MapQuestEngine("mapquest_bicycle", "bicycle"), true);
+ OSM.Directions.addEngine(new MapQuestEngine("mapquest_foot", "pedestrian"), true);
+ OSM.Directions.addEngine(new MapQuestEngine("mapquest_car", "fastest"), true);
}
'javascripts.directions.instructions.end_oneway' // 17
];
- var url = document.location.protocol + "//router.project-osrm.org/viaroute?z=14&output=json&instructions=true";
+ var params = [
+ { name: "z", value: "14" },
+ { name: "output", value: "json" },
+ { name: "instructions", value: true }
+ ];
for (var i = 0; i < points.length; i++) {
- url += "&loc=" + points[i].lat + ',' + points[i].lng;
+ params.push({ name: "loc", value: points[i].lat + "," + points[i].lng });
+
if (hintData && previousPoints && previousPoints[i].equals(points[i])) {
- url += "&hint=" + hintData.locations[i];
+ params.push({ name: "hint", value: hintData.locations[i] });
}
}
if (hintData && hintData.checksum) {
- url += "&checksum=" + hintData.checksum;
+ params.push({ name: "checksum", value: hintData.checksum });
}
return $.ajax({
- url: url,
- dataType: 'json',
+ url: document.location.protocol + "//router.project-osrm.org/viaroute",
+ data: params,
+ dataType: "json",
success: function (data) {
if (data.status === 207)
return callback(true);