1 function MapzenEngine(id, costing) {
 
   7     14,  // kDestination = 4;
 
   8     14,  // kDestinationRight = 5;
 
   9     14,  // kDestinationLeft = 6;
 
  12     1,  // kSlightRight = 9;
 
  14     3,  // kSharpRight = 11;
 
  15     4,  // kUturnRight = 12;
 
  16     4,  // kUturnLeft = 13;
 
  17     7,  // kSharpLeft = 14;
 
  19     5,  // kSlightLeft = 16;
 
  20     0,  // kRampStraight = 17;
 
  21     24, // kRampRight = 18;
 
  22     25, // kRampLeft = 19;
 
  23     24, // kExitRight = 20;
 
  24     25, // kExitLeft = 21;
 
  25     0,  // kStayStraight = 22;
 
  26     1,  // kStayRight = 23;
 
  29     10, // kRoundaboutEnter = 26;
 
  30     11, // kRoundaboutExit = 27;
 
  31     17, // kFerryEnter = 28;
 
  37     creditline: "<a href='https://mapzen.com/projects/valhalla' target='_blank'>Mapzen</a>",
 
  40     getRoute: function (points, callback) {
 
  42         url: document.location.protocol + OSM.MAPZEN_VALHALLA_URL,
 
  44           api_key: OSM.MAPZEN_VALHALLA_KEY,
 
  45           json: JSON.stringify({
 
  46             locations: points.map(function (p) { return { lat: p.lat, lon: p.lng }; }),
 
  50               language: I18n.currentLocale()
 
  55         success: function (data) {
 
  58           if (trip.status === 0) {
 
  64             trip.legs.forEach(function (leg) {
 
  65               var legLine = L.PolylineUtil.decode(leg.shape, {
 
  69               line = line.concat(legLine);
 
  71               leg.maneuvers.forEach(function (manoeuvre) {
 
  72                 var point = legLine[manoeuvre.begin_shape_index];
 
  75                   { lat: point[0], lng: point[1] },
 
  76                   MZ_INSTR_MAP[manoeuvre.type],
 
  77                   manoeuvre.instruction,
 
  78                   manoeuvre.length * 1000,
 
  83               distance = distance + leg.summary.length;
 
  84               time = time + leg.summary.time;
 
  90               distance: distance * 1000,
 
 105 if (OSM.MAPZEN_VALHALLA_KEY) {
 
 106   OSM.Directions.addEngine(new MapzenEngine("mapzen_car", "auto"), true);
 
 107   OSM.Directions.addEngine(new MapzenEngine("mapzen_bicycle", "bicycle"), true);
 
 108   OSM.Directions.addEngine(new MapzenEngine("mapzen_foot", "pedestrian"), true);