]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/routing_engines/osrm_car.js
Improve error-handling
[rails.git] / app / assets / javascripts / routing_engines / osrm_car.js
index 0fdb42889ce4d5e65ea4d37bc046857b00dc1b6d..8ff6ba482a3883cd5ea0d86643f4d0cdbe0894e1 100644 (file)
@@ -3,22 +3,22 @@
 // *** need to clear hints at some point
 
 OSM.RoutingEngines.list.push({
-       name: 'Car (OSRM)',
+       name: "javascripts.directions.engines.osrm_car",
+       creditline: 'Directions courtesy of <a href="http://project-osrm.org/" target="_blank">OSRM</a>',
        draggable: true,
        _hints: {},
-       getRoute: function(final,points) {
+       getRoute: function(isFinal,points) {
                var url="http://router.project-osrm.org/viaroute?z=14&output=json";
                for (var i=0; i<points.length; i++) {
                        var pair=points[i].join(',');
                        url+="&loc="+pair;
                        if (this._hints[pair]) url+= "&hint="+this._hints[pair];
                }
-               if (final) url+="&instructions=true";
+               if (isFinal) url+="&instructions=true";
                this.requestJSONP(url+"&jsonp=");
        },
        gotRoute: function(router,data) {
                if (data.status==207) {
-                       alert("Couldn't find route between those two places");
                        return false;
                }
                // Draw polyline
@@ -34,9 +34,10 @@ OSM.RoutingEngines.list.push({
                        var instText="<b>"+(i+1)+".</b> ";
                        instText+=TURN_INSTRUCTIONS[instCodes[0]];
                        if (instCodes[1]) { instText+="exit "+instCodes[1]+" "; }
-                       if (instCodes[0]!=15) { instText+=s[1] ? "<b>"+s[1]+"</b>" : "(unnamed)"; }
+                       if (instCodes[0]!=15) { instText+=s[1] ? "<b>"+s[1]+"</b>" : I18n.t('javascripts.directions.instructions.unnamed'); }
                        steps.push([line[s[3]], s[0].split('-')[0], instText, s[2]]);
                }
-               router.setItinerary({ steps: steps });
+               if (steps.length) router.setItinerary({ steps: steps });
+               return true;
        }
 });