]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/routing_engines/mapquest_bicycle.js
Add GraphHopper engine (thanks @karussell!)
[rails.git] / app / assets / javascripts / routing_engines / mapquest_bicycle.js
index 123f2700a2ffcb5c6137757694d9939e564e8016..2f7642de9e72bf625283e79712f26bc95d522d9a 100644 (file)
@@ -7,8 +7,29 @@
 
 OSM.RoutingEngines.list.push({
        name: 'Bicycle (MapQuest Open)',
 
 OSM.RoutingEngines.list.push({
        name: 'Bicycle (MapQuest Open)',
-       draggable: true,
+       draggable: false,
        _hints: {},
        _hints: {},
+       MQ_SPRITE_MAP: {
+               0: 1, // straight
+               1: 2, // slight right
+               2: 3, // right
+               3: 4, // sharp right
+               4: 5, // reverse
+               5: 6, // sharp left
+               6: 7, // left
+               7: 8, // slight left
+               8: 5, // right U-turn
+               9: 5, // left U-turn
+               10: 2, // right merge
+               11: 8, // left merge
+               12: 2, // right on-ramp
+               13: 8, // left on-ramp
+               14: 2, // right off-ramp
+               15: 8, // left off-ramp
+               16: 2, // right fork
+               17: 8, // left fork
+               18: 1  // straight fork
+       },
        getRoute: function(final,points) {
                var url="http://open.mapquestapi.com/directions/v2/route?key=Fmjtd%7Cluur290anu%2Crl%3Do5-908a0y";
                var from=points[0]; var to=points[points.length-1];
        getRoute: function(final,points) {
                var url="http://open.mapquestapi.com/directions/v2/route?key=Fmjtd%7Cluur290anu%2Crl%3Do5-908a0y";
                var from=points[0]; var to=points[points.length-1];
@@ -20,6 +41,8 @@ OSM.RoutingEngines.list.push({
                this.requestJSONP(url+"&callback=");
        },
        gotRoute: function(router,data) {
                this.requestJSONP(url+"&callback=");
        },
        gotRoute: function(router,data) {
+               // *** what if no route?
+               
                var poly=[];
                var shape=data.route.shape.shapePoints;
                for (var i=0; i<shape.length; i+=2) {
                var poly=[];
                var shape=data.route.shape.shapePoints;
                for (var i=0; i<shape.length; i+=2) {
@@ -29,7 +52,13 @@ OSM.RoutingEngines.list.push({
 
                // data.shape.maneuverIndexes links turns to polyline positions
                // data.legs[0].maneuvers is list of turns
 
                // data.shape.maneuverIndexes links turns to polyline positions
                // data.legs[0].maneuvers is list of turns
-               console.log(data);
-//             router.setItinerary(data.route_instructions);
+               var steps=[];
+               var mq=data.route.legs[0].maneuvers;
+               for (var i=0; i<mq.length; i++) {
+                       var s=mq[i];
+                       var d=(i==mq.length-1) ? 15: this.MQ_SPRITE_MAP[s.turnType];
+                       steps.push([L.latLng(s.startPoint.lat, s.startPoint.lng), d, s.narrative, s.distance*1000]);
+               }
+               router.setItinerary( { steps: steps });
        }
 });
        }
 });