X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/7d32e50e0a6e491a38f55c6748f9ea0bb19038a1..24eaeb2653b231f52822c37433a258e08eae9eea:/app/assets/javascripts/index/directions/osrm.js
diff --git a/app/assets/javascripts/index/directions/osrm.js b/app/assets/javascripts/index/directions/osrm.js
index 05cb32f20..ab3bcff36 100644
--- a/app/assets/javascripts/index/directions/osrm.js
+++ b/app/assets/javascripts/index/directions/osrm.js
@@ -12,43 +12,49 @@ function OSRMEngine() {
getRoute: function (points, callback) {
var TURN_INSTRUCTIONS = [
"",
- I18n.t('javascripts.directions.instructions.continue_on'), // 1
- I18n.t('javascripts.directions.instructions.slight_right'), // 2
- I18n.t('javascripts.directions.instructions.turn_right'), // 3
- I18n.t('javascripts.directions.instructions.sharp_right'), // 4
- I18n.t('javascripts.directions.instructions.uturn'), // 5
- I18n.t('javascripts.directions.instructions.sharp_left'), // 6
- I18n.t('javascripts.directions.instructions.turn_left'), // 7
- I18n.t('javascripts.directions.instructions.slight_left'), // 8
- I18n.t('javascripts.directions.instructions.via_point'), // 9
- I18n.t('javascripts.directions.instructions.follow'), // 10
- I18n.t('javascripts.directions.instructions.roundabout'), // 11
- I18n.t('javascripts.directions.instructions.leave_roundabout'), // 12
- I18n.t('javascripts.directions.instructions.stay_roundabout'), // 13
- I18n.t('javascripts.directions.instructions.start'), // 14
- I18n.t('javascripts.directions.instructions.destination'), // 15
- I18n.t('javascripts.directions.instructions.against_oneway'), // 16
- I18n.t('javascripts.directions.instructions.end_oneway') // 17
+ 'javascripts.directions.instructions.continue', // 1
+ 'javascripts.directions.instructions.slight_right', // 2
+ 'javascripts.directions.instructions.turn_right', // 3
+ 'javascripts.directions.instructions.sharp_right', // 4
+ 'javascripts.directions.instructions.uturn', // 5
+ 'javascripts.directions.instructions.sharp_left', // 6
+ 'javascripts.directions.instructions.turn_left', // 7
+ 'javascripts.directions.instructions.slight_left', // 8
+ 'javascripts.directions.instructions.via_point', // 9
+ 'javascripts.directions.instructions.follow', // 10
+ 'javascripts.directions.instructions.roundabout', // 11
+ 'javascripts.directions.instructions.leave_roundabout', // 12
+ 'javascripts.directions.instructions.stay_roundabout', // 13
+ 'javascripts.directions.instructions.start', // 14
+ 'javascripts.directions.instructions.destination', // 15
+ 'javascripts.directions.instructions.against_oneway', // 16
+ '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 });
}
- $.ajax({
- url: url,
- dataType: 'json',
+ return $.ajax({
+ url: document.location.protocol + "//router.project-osrm.org/viaroute",
+ data: params,
+ dataType: "json",
success: function (data) {
- if (data.status == 207)
+ if (data.status === 207)
return callback(true);
previousPoints = points;
@@ -64,12 +70,11 @@ function OSRMEngine() {
var linesegend;
var instCodes = s[0].split('-');
var instText = "" + (i + 1) + ". ";
- instText += TURN_INSTRUCTIONS[instCodes[0]];
- if (instCodes[1]) {
- instText += "exit " + instCodes[1] + " ";
- }
- if (instCodes[0] != 15) {
- instText += s[1] ? "" + s[1] + "" : I18n.t('javascripts.directions.instructions.unnamed');
+ var name = s[1] ? "" + s[1] + "" : I18n.t('javascripts.directions.instructions.unnamed');
+ if (instCodes[0] === "11" && instCodes[1]) {
+ instText += I18n.t(TURN_INSTRUCTIONS[instCodes[0]] + '_with_exit', { exit: instCodes[1], name: name } );
+ } else {
+ instText += I18n.t(TURN_INSTRUCTIONS[instCodes[0]] + '_without_exit', { name: name });
}
if ((i + 1) < data.route_instructions.length) {
linesegend = data.route_instructions[i + 1][3] + 1;
@@ -91,4 +96,4 @@ function OSRMEngine() {
};
}
-OSM.Directions.addEngine(OSRMEngine(), true);
+OSM.Directions.addEngine(new OSRMEngine(), true);