Skip to content

Instantly share code, notes, and snippets.

@mping
Last active May 13, 2019 21:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mping/94fb9cf7ad336675804a817d4882d8df to your computer and use it in GitHub Desktop.
Save mping/94fb9cf7ad336675804a817d4882d8df to your computer and use it in GitHub Desktop.
geojson > svg through d3
const json = {
"routes": [{
"legs": [{
"summary": "Avenida Infante Dom Henrique, Autoestrada do Norte",
"weight": 11481.1,
"duration": 10976.2,
"steps": [{
"intersections": [{
"out": 0,
"entry": [true],
"bearings": [73],
"location": [-9.136778, 38.708199]
}],
"driving_side": "right",
"geometry": "gegkFzowv@AIE]O}@CICGAGGKCGEECEAA",
"mode": "driving",
"maneuver": {
"bearing_after": 73,
"bearing_before": 0,
"location": [-9.136778, 38.708199],
"modifier": "right",
"type": "depart"
},
"weight": 55.1,
"duration": 23.1,
"name": "Praça do Comércio",
"distance": 79
}, {
"intersections": [{
"out": 3,
"in": 2,
"entry": [false, false, false, true],
"bearings": [60, 165, 240, 345],
"location": [-9.135967, 38.708493]
}, {
"out": 3,
"in": 1,
"entry": [false, false, false, true],
"bearings": [75, 165, 255, 345],
"location": [-9.136177, 38.709023]
}],
"driving_side": "right",
"geometry": "aggkFxjwv@[H}@VOF_AVMD",
"mode": "driving",
"maneuver": {
"bearing_after": 341,
"bearing_before": 57,
"location": [-9.135967, 38.708493],
"modifier": "left",
"type": "turn"
},
"weight": 73.1,
"duration": 36.7,
"name": "Rua da Prata",
"distance": 107
}, {
"intersections": [{
"out": 0,
"in": 1,
"entry": [true, false, false, true],
"bearings": [75, 165, 255, 345],
"location": [-9.136327, 38.709413]
}],
"driving_side": "right",
"geometry": "ylgkF`mwv@ACAMa@eC?EAG",
"mode": "driving",
"maneuver": {
"bearing_after": 71,
"bearing_before": 343,
"location": [-9.136327, 38.709413],
"modifier": "right",
"type": "turn"
},
"weight": 48.8,
"duration": 24.8,
"name": "Rua de São Julião",
"distance": 75.1
}, {
"intersections": [{
"out": 1,
"in": 2,
"entry": [true, true, false, false],
"bearings": [75, 165, 255, 345],
"location": [-9.135501, 38.709614]
}, {
"out": 1,
"in": 3,
"entry": [false, true, true, false],
"bearings": [75, 165, 255, 345],
"location": [-9.135338, 38.709227]
}],
"driving_side": "right",
"geometry": "angkFzgwv@|@YLEbAYLEHAB?DA",
"mode": "driving",
"maneuver": {
"bearing_after": 160,
"bearing_before": 71,
"location": [-9.135501, 38.709614],
"modifier": "right",
"type": "turn"
},
"weight": 98.69999999999999,
"duration": 44.7,
"name": "Rua dos Fanqueiros",
"distance": 103.9
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [0, 90, 270],
"location": [-9.135164, 38.70872]
}, {
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [90, 270, 345],
"location": [-9.134633, 38.708726]
}],
"driving_side": "right",
"geometry": "ohgkFvewv@AiBAeE",
"mode": "driving",
"maneuver": {
"bearing_after": 88,
"bearing_before": 175,
"location": [-9.135164, 38.70872],
"modifier": "left",
"type": "end of road"
},
"weight": 37.3,
"duration": 36.5,
"name": "Rua da Alfândega",
"distance": 131.9
}, {
"intersections": [{
"out": 1,
"in": 2,
"entry": [true, true, false],
"bearings": [90, 135, 270],
"location": [-9.133644, 38.708735]
}],
"driving_side": "right",
"geometry": "shgkFf|vv@LQRELEb@K|@Uv@U\\I",
"mode": "driving",
"maneuver": {
"bearing_after": 133,
"bearing_before": 88,
"location": [-9.133644, 38.708735],
"modifier": "right",
"type": "turn"
},
"weight": 95.4,
"duration": 43.8,
"name": "Campo das Cebolas",
"distance": 136.5
}, {
"intersections": [{
"out": 0,
"in": 3,
"entry": [true, false, false, false],
"bearings": [60, 165, 225, 345],
"location": [-9.13316, 38.707581]
}, {
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [45, 225, 315],
"location": [-9.128586, 38.709809]
}, {
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [75, 225, 330],
"location": [-9.127098, 38.710864]
}, {
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [60, 240, 330],
"location": [-9.125266, 38.711668]
}, {
"lanes": [{
"valid": false,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["none"]
}],
"out": 1,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 240],
"location": [-9.124433, 38.712066]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false, true],
"bearings": [45, 135, 225, 315],
"location": [-9.121303, 38.714635]
}, {
"lanes": [{
"valid": false,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}],
"out": 0,
"in": 1,
"entry": [true, false, false, true],
"bearings": [30, 210, 285, 330],
"location": [-9.116233, 38.719465]
}, {
"lanes": [{
"valid": true,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [30, 210, 300],
"location": [-9.111535, 38.724886]
}, {
"lanes": [{
"valid": false,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}],
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [30, 210, 300],
"location": [-9.111473, 38.724954]
}, {
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [15, 195, 255],
"location": [-9.103572, 38.735944]
}, {
"out": 1,
"in": 2,
"entry": [true, true, false],
"bearings": [10, 19, 197],
"location": [-9.103081, 38.737302]
}, {
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [45, 210, 300],
"location": [-9.100221, 38.742002]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 60, 225],
"location": [-9.100068, 38.742152]
}, {
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 180, 210],
"location": [-9.099817, 38.742439]
}],
"driving_side": "right",
"geometry": "kagkFfyvv@KYcAyCqBgGe@sAgA}CiAaC[g@g@y@cA}AoAiBS]a@u@GMI_@Um@a@iA_BuEOc@IYu@iB[y@Wq@aAsA[]m@q@i@i@cE}EaAeAQSo@u@yHmIa@i@aBkBmDyDy@{@k@m@_A_AqBeBQQgCsBeEgDmEyDsC}B]YaG}Ey@q@g@e@IEKMc@_@_@[eEiDwAsAa@g@kGiJwC{CoC{BcCcBoG_EwCsAcAY_@OgBe@uKiBg@IGAQEMCo@Mg@QiCo@m@QyAe@{Ai@oB{@eIgEwBiAi@W_Aq@oAeAMMQQKKSSWQMKYUoAUYGsBg@M@GL",
"mode": "driving",
"maneuver": {
"bearing_after": 59,
"bearing_before": 163,
"location": [-9.13316, 38.707581],
"modifier": "left",
"type": "turn"
},
"weight": 658.1,
"duration": 539.9999999999999,
"name": "Avenida Infante Dom Henrique",
"distance": 5128
}, {
"intersections": [{
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [15, 135, 240],
"location": [-9.099436, 38.743793]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [75, 210, 285],
"location": [-9.099563, 38.743772]
}, {
"out": 3,
"in": 1,
"entry": [true, false, true, true],
"bearings": [15, 105, 195, 285],
"location": [-9.101248, 38.744258]
}, {
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 105, 285],
"location": [-9.10144, 38.744313]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103317, 38.744961]
}, {
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103388, 38.745014]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103417, 38.745036]
}, {
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103552, 38.745141]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103577, 38.745161]
}, {
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.10368, 38.745246]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103698, 38.74526]
}, {
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103805, 38.745351]
}, {
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [105, 135, 330],
"location": [-9.10403, 38.745567]
}, {
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [75, 165, 345],
"location": [-9.104669, 38.746797]
}],
"driving_side": "right",
"geometry": "ucnkFnfpv@ALDHET{AzHId@Qz@UjAk@vC_@`AMTILEDILIJCDQRABQTk@j@cAr@_A^qBj@aATyBd@aCRgCE_@Em@Ga@G[C",
"mode": "driving",
"maneuver": {
"bearing_after": 243,
"bearing_before": 319,
"location": [-9.099436, 38.743793],
"modifier": "slight left",
"type": "end of road"
},
"weight": 109.5,
"duration": 108.60000000000001,
"name": "Avenida Infante Dom Henrique",
"distance": 940.4
}, {
"intersections": [{
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [45, 195, 240],
"location": [-9.104908, 38.749774]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 90, 225],
"location": [-9.104836, 38.749846]
}, {
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [105, 180, 345],
"location": [-9.104796, 38.750021]
}],
"driving_side": "right",
"geometry": "aiokFthqv@OMIEKCK@I@",
"mode": "driving",
"destinations": "Norte, Sul, Ponte Vasco da Gama",
"maneuver": {
"exit": 2,
"bearing_after": 36,
"bearing_before": 8,
"location": [-9.104908, 38.749774],
"modifier": "slight right",
"type": "roundabout"
},
"weight": 6.9,
"duration": 5.1,
"name": "Avenida Infante Dom Henrique",
"distance": 36.2
}, {
"intersections": [{
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [30, 165, 330],
"location": [-9.104813, 38.750073]
}, {
"lanes": [{
"valid": false,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}],
"out": 0,
"in": 1,
"entry": [true, false, false, true],
"bearings": [15, 195, 285, 315],
"location": [-9.103993, 38.751691]
}],
"driving_side": "right",
"geometry": "}jokF`hqv@[WIGk@YGC{Ae@_@MwAe@UKOEkHmCmA_@",
"mode": "driving",
"destinations": "Norte, Sul, Ponte Vasco da Gama",
"maneuver": {
"exit": 2,
"bearing_after": 35,
"bearing_before": 344,
"location": [-9.104813, 38.750073],
"modifier": "right",
"type": "exit roundabout"
},
"weight": 49.8,
"duration": 37.3,
"name": "Avenida Infante Dom Henrique",
"distance": 427.1
}, {
"intersections": [{
"out": 0,
"in": 3,
"entry": [true, true, true, false],
"bearings": [0, 15, 90, 195],
"location": [-9.103085, 38.753659]
}, {
"classes": ["tunnel"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.103011, 38.755324]
}, {
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.103119, 38.75627]
}, {
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-9.103216, 38.757704]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 90, 180],
"location": [-9.103279, 38.758384]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 90, 180],
"location": [-9.103415, 38.759747]
}],
"driving_side": "right",
"geometry": "kapkFh}pv@w@Gq@IaAGcA?{AH}DToEPmA@gCJuCNgADs@DmBHw@D",
"mode": "driving",
"destinations": "Norte, Sul (Ponte Vasco da Gama), Estação Oriente, Parque das Nações",
"maneuver": {
"bearing_after": 5,
"bearing_before": 16,
"location": [-9.103085, 38.753659],
"modifier": "slight left",
"type": "fork"
},
"weight": 50.699999999999996,
"duration": 50.3,
"name": "Avenida Infante Dom Henrique",
"distance": 772.7
}, {
"intersections": [{
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 180, 345],
"location": [-9.103503, 38.760584]
}, {
"classes": ["tunnel"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.103774, 38.762703]
}, {
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.103819, 38.763229]
}, {
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [1, 176, 356],
"location": [-9.10401, 38.765175]
}],
"driving_side": "right",
"geometry": "slqkFz_qv@k@J{Jh@iBHeKd@iCJ{Or@kJh@eA@",
"mode": "driving",
"maneuver": {
"bearing_after": 348,
"bearing_before": 354,
"location": [-9.103503, 38.760584],
"modifier": "slight left",
"type": "fork"
},
"weight": 70.8,
"duration": 70.7,
"name": "Avenida Infante Dom Henrique",
"distance": 1133
}, {
"intersections": [{
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-9.104552, 38.770736]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [180, 345],
"location": [-9.104766, 38.773055]
}, {
"classes": ["tunnel"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [150, 165, 345],
"location": [-9.104903, 38.773497]
}],
"driving_side": "right",
"geometry": "clskFlfqv@oMj@wAX_Bn@_Bh@g@Fq@F",
"mode": "driving",
"destinations": "IC 17 CRIL, A1 Norte, A2 Sul, Ponte Vasco da Gama",
"maneuver": {
"bearing_after": 355,
"bearing_before": 357,
"location": [-9.104552, 38.770736],
"modifier": "slight left",
"type": "fork"
},
"weight": 31.4,
"duration": 31.2,
"name": "Avenida Infante Dom Henrique",
"distance": 474.1
}, {
"intersections": [{
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.105429, 38.774914]
}, {
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [7, 175, 183],
"location": [-9.105319, 38.778447]
}],
"driving_side": "right",
"geometry": "eftkF|kqv@mA?cAA}DCoEC}@Ci@A{@EeGe@cAE_@?_@?y@Do@FkAL",
"mode": "driving",
"maneuver": {
"bearing_after": 358,
"bearing_before": 352,
"location": [-9.105429, 38.774914],
"modifier": "straight",
"type": "new name"
},
"ref": "IC 2; A 30",
"weight": 43.3,
"duration": 37,
"name": "",
"distance": 715.4
}, {
"intersections": [{
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [15, 165, 345],
"location": [-9.105237, 38.781328]
}],
"driving_side": "right",
"geometry": "inukFvjqv@gAKUEYG]G[IWGUCO?U@YDQFSJQNEFOTQVa@x@Sb@MRQ\\MRMPIJQPWRm@Z[N",
"mode": "driving",
"destinations": "Norte, Oeste, Sul (Ponte Vasco da Gama), CRIL",
"maneuver": {
"bearing_after": 7,
"bearing_before": 351,
"location": [-9.105237, 38.781328],
"modifier": "slight right",
"type": "off ramp"
},
"weight": 27.8,
"duration": 27.8,
"name": "",
"distance": 413.1
}, {
"intersections": [{
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 150, 345],
"location": [-9.106827, 38.784448]
}],
"driving_side": "right",
"geometry": "yavkFttqv@WJm@R}@ZwAh@{CdA]RQLQRMTKZ",
"mode": "driving",
"destinations": "Norte, Oeste, CRIL",
"maneuver": {
"bearing_after": 338,
"bearing_before": 334,
"location": [-9.106827, 38.784448],
"modifier": "slight left",
"type": "fork"
},
"weight": 17.3,
"duration": 16.7,
"name": "",
"distance": 292.3
}, {
"intersections": [{
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [120, 285, 300],
"location": [-9.10821, 38.786793]
}],
"driving_side": "right",
"geometry": "mpvkFh}qv@Ir@SrDUvA_@pA",
"mode": "driving",
"destinations": "A 1: Norte, 2ª Circular",
"maneuver": {
"bearing_after": 278,
"bearing_before": 299,
"location": [-9.10821, 38.786793],
"modifier": "slight left",
"type": "fork"
},
"weight": 11,
"duration": 10.9,
"name": "",
"distance": 182.2
}, {
"distance": 437.2,
"name": "",
"ref": "A 12",
"maneuver": {
"bearing_after": 307,
"bearing_before": 296,
"location": [-9.110224, 38.78721],
"modifier": "straight",
"type": "new name"
},
"destinations": "A 1: Norte, 2ª Circular, Aeroporto",
"weight": 25.4,
"mode": "driving",
"geometry": "asvkFzirv@sBxD_@j@]f@QV]b@OTUXWXUPYPSHg@L}@Hq@Do@PSHSLQJKH",
"intersections": [{
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [117, 127, 309],
"location": [-9.110224, 38.78721]
}],
"duration": 25.3,
"driving_side": "right"
}, {
"intersections": [{
"classes": ["motorway"],
"lanes": [{
"valid": false,
"indications": ["slight left"]
}, {
"valid": true,
"indications": ["slight right"]
}],
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [150, 315, 330],
"location": [-9.112936, 38.790336]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-9.113302, 38.7921]
}],
"driving_side": "right",
"geometry": "sfwkFzzrv@y@l@YXYR[N[D[B[A_@E]Ia@Ma@Mq@[}BmAkAg@_@MYGYC",
"mode": "driving",
"destinations": "A 1: Norte, Alverca",
"maneuver": {
"bearing_after": 327,
"bearing_before": 327,
"location": [-9.112936, 38.790336],
"modifier": "slight right",
"type": "fork"
},
"weight": 29.2,
"duration": 22.4,
"name": "",
"distance": 415
}, {
"intersections": [{
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [30, 180, 210],
"location": [-9.112439, 38.793783]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-9.090652, 38.846263]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-9.086048, 38.852469]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [60, 75, 240],
"location": [-9.055561, 38.886803]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [45, 240],
"location": [-9.054472, 38.887422]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-9.049638, 38.892398]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-9.048652, 38.89386]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-9.047729, 38.895376]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-9.001176, 38.940308]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 225],
"location": [-8.980403, 38.971399]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.978356, 38.973852]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-8.966941, 39.004057]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-8.966716, 39.007142]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-8.966407, 39.011008]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-8.96605, 39.015465]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 180, 195],
"location": [-8.961199, 39.029568]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 225],
"location": [-8.910321, 39.121356]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [45, 210, 225],
"location": [-8.906286, 39.124126]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 225],
"location": [-8.890913, 39.138735]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [45, 210, 225],
"location": [-8.888371, 39.1407]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [60, 75, 240],
"location": [-8.790797, 39.20407]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [45, 225, 240],
"location": [-8.786892, 39.206253]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [26, 36, 205],
"location": [-8.735378, 39.257105]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.733015, 39.260356]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [44, 52, 221],
"location": [-8.728529, 39.264861]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [60, 225, 240],
"location": [-8.718232, 39.271132]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 150, 330],
"location": [-8.638055, 39.390131]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 150, 180],
"location": [-8.63927, 39.393943]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [150, 330, 345],
"location": [-8.630021, 39.475341]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [135, 150, 330],
"location": [-8.632738, 39.478685]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 225],
"location": [-8.656572, 39.553369]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [46, 225, 229],
"location": [-8.654586, 39.554784]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 315, 330],
"location": [-8.692923, 39.622216]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [135, 150, 330],
"location": [-8.696233, 39.626043]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 150, 330],
"location": [-8.709478, 39.711272]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [150, 154, 334],
"location": [-8.711423, 39.714393]
}, {
"classes": ["toll", "motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [106, 285, 291],
"location": [-8.737318, 39.739797]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [116, 120, 301],
"location": [-8.741692, 39.741085]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [13, 19, 191],
"location": [-8.679946, 39.937288]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [45, 210, 225],
"location": [-8.677138, 39.941754]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 51, 225],
"location": [-8.577967, 40.039962]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 210, 225],
"location": [-8.573983, 40.042941]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 210],
"location": [-8.496681, 40.130776]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-8.49589, 40.134734]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [15, 165, 345],
"location": [-8.487995, 40.199888]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-8.488873, 40.203724]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 195],
"location": [-8.482955, 40.271041]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-8.481081, 40.273926]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.479189, 40.276261]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [3, 179, 355],
"location": [-8.492602, 40.330074]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [150, 165, 345],
"location": [-8.493631, 40.334757]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-8.493465, 40.372507]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [9, 181, 187],
"location": [-8.49304, 40.376077]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 195],
"location": [-8.560397, 40.548628]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [174, 181, 355],
"location": [-8.559812, 40.552426]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-8.560302, 40.568421]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [165, 180, 345],
"location": [-8.56044, 40.571567]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 165, 345],
"location": [-8.522237, 40.692413]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 150, 180],
"location": [-8.52285, 40.695242]
}, {
"classes": ["toll", "motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [150, 330, 345],
"location": [-8.533993, 40.752499]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [148, 154, 334],
"location": [-8.536699, 40.756645]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [15, 165, 345],
"location": [-8.543644, 40.778839]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [135, 165, 345],
"location": [-8.544518, 40.781925]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 180, 345],
"location": [-8.567884, 40.925292]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [150, 165, 345],
"location": [-8.57003, 40.93133]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [7, 181, 359],
"location": [-8.582249, 41.006245]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [15, 195],
"location": [-8.58118, 41.017833]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 180, 195],
"location": [-8.580923, 41.018696]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [163, 170, 347],
"location": [-8.571305, 41.049141]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 165, 345],
"location": [-8.581529, 41.06675]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight", "right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 45, 195],
"location": [-8.580962, 41.072651]
}],
"driving_side": "right",
"geometry": "c|wkFvwrv@gAk@_@Q}DsByNuHeAi@qFsCwMaHuMaHuM}GqAm@oAk@aCcAkCcAiAc@wE_B{C_AmA]mA[sA]oAY}@SiB_@kB]wE{@kCi@mASok@sJyAWsJaBca@aHyr@{LmFqAeEwAmEkBqLmH_JiGkRgMmRoMeGeEeBgAuAw@uBiAgB{@sBw@uBu@uBq@mOwEuHgCcGyB}DaCsCcCsC_D}BoDaBoDwC{HkCiIqCiGeCuEkEqFwCuC}AiAmSmMqQcLyFyDyA}@eDuBwKoHkDsCcDcDoCgDcCuDuBeEyBaF{ByEoEaFaIaIy@y@mBoB_F}DiAy@cHeEy@a@uFuCiCuAwQsJaIgEeEmCeCqB}AoA{CiD{DiFeE_HiAkBgAoBoWgd@{Xsf@iCgE{@}AmJ_P_A}AkGeJ}KqOsLeOkD}DmDoC_DaBkCiAiEaBsLgFsCqAgC{A_CsBoCoCiIsJqC{CkDoC{DcCkUiN}@i@_CwAcAu@cCsBqAsAwCyDcHsJeBqB_AaA}AsA_BmAmDsBoEeBkFiAiF_@iFCcDAkE[}EcA_Bk@{Ao@sBoAqAeAwE}DsDeFiCoDg@w@iBqCqDoEcAeAgCqBwDsBcDmAyBe@{AWyGs@gBYgBa@eBg@aBk@sC{AeAs@eB{AcAeA}AwBuCqDyDyDmE{CaBaAgGiDsMcH{MqG}RyIk_@iNmOyEqNgDgLmBqLuAwE]}G]yBK}Ja@oGW{L_@kDKwDOmCIoBIwBGwEQqI[aDKgK_@qEQ}COuEa@gFw@gB_@cCm@kFeBwCoAgEmBoAi@iB{@}Aq@o@Wi@UeC{@e@O{Ae@cFiAgAUmAUiAS_BYwCg@aCe@{A]_EiAyEcByE_CkEgCmDaCkE{D}D_EmTwUkH{GqGcFoLuHaGyD{E_DcDeCmDiDsEiEyDwCoDmBmDuAmE}@{C_@{EUwIc@uEo@oDu@eNmDiIwBkDsAeEeCqDaD_DuDiDeEmCiCqCuB_FiCqEsAeB]c@GaCUkMq@{Jq@iG{@{GqAoFqAgI{BqGkBeEaAgE]mFAuDXsEt@mE~AcDfBcH~D_F|ByE`BgFlA{Fv@mKh@yJPuHGqGU}Fo@yFkBaEwBsEeEiDqEsCyFcBcFiBiJiBgJiC_H_EkI{CgHkCiI{BuI}AsEm@uAwA}CmAmB}IwLoAsBw@oAc@w@{BkEmD{GeD{EyAaB_EmEkHmIwGeJuF}IeDgFkDmE{A_BqFmFwAcAiHyEyDmCoDoCcCuB{B{BoBuB_@_@y@_AY[gEuFeBgCyA}BKOu@oA_DwEuB_CsBqBkCqB{H_FgG{DkFcEsGcHcEyFeEoHyDwIgDuJ{AgFsC_IwDkIgEmHsGoI}HiJkFuGmEcHuD}GyHgQgEyIiDkGaHsJ_JuKaEgFcGwJ}BwEk@mAkFuLuK}XsFgMwDeHcEoH}FgI{G_JqM_N{LmKgNmM{A{AoGgHmHyJmEuG{G}L{EaKqE_LkDeKoDeMu@aDQs@iA}EcHs]_EcQaEiOaBkFkDcKaAkCqCgHeDwHgDgHeBmDgAqBwB}DuC_FeEsGcJoMoLmNsEwE_D}CkF{EiJuHeKmHoLgHcLyFsLaFgXwJ{HiDgHqEaGsFgGsHyEgIqCoGmDcLyBiK}Ee\\mC_Ls@sB}AcEoAiCwBoDqAiBwBkCoBkBmB_B{CuBeG}C_IoDaMuFqGyC}DgBkEoB_Bs@eHeD{BiAyAu@iAm@wA}@iC_B_C}A_Ao@gAw@uAeAgCsBcA}@yCmCsDsDaBcBeBqBaDwDuCyDcAwAaD_FeBsCu@uAcEmHoAgCmC_GkBwEgBwEwAiEg@yAmAaE_AeDeCiJ}CaMuCiK_BeFeD_K_BeFo@sBc@}AiAkE}BaKsAuG{AsGgAwDaAyC}@sB_AyByBmDkBmC_CoCwDiDcE{CuCyAiDiAwBc@oCm@eR_D}G}AgC}@gA_@aGcCuAs@q@_@uC}AwDiCgDkC_DqCaDkD_FqFo@y@k@q@eDyDwFuF{DaDi@_@eF_DgFwCiF}CeFgDkG{EcEuDoFsFwMaP{@eAkCyC}BcCyFsFcFuE{D}CsE{Co@c@cJuFsJuFyDgCy\\}U}EsD}E}CsCaBaDwAcDiAcDw@iCe@{C]eUgBmEg@yEy@eDy@gFaBmDyAiEwBsFoDgDiCkDcDqCsCaKiMiEeGkIkLgG{H_I}IaFwFkCeDmBmCqCqEqFqJgCyDqBaCyBuB}C_CcDeBkE}AkDu@}D]uDG_Rz@eHL}IA}IDkGXgFh@sE`AuBh@aDfAsGbDuHbFySrQgF|DmC|A{BjA_Bv@s@ZqC`A}Ab@gFdAeD`@gAF}FPyECqE[yHeAiUgFyF_A_Gg@sFWqISiEYuC[oEw@kEgAyDsAgV}KgIyCsGaB{GoAyQwC}FoAcFyA}LuEoHeCmD_AwEcAoG{@cCS}CQyFCkDDiEToE`@{Dj@_GnAyOrEsJjCuH|AwFz@mF`@{EXyHRuFCsFSaF]sGy@wK_BkKiA}Ho@kG]aGe@gEa@iEg@gGm@aEMmC@qCJyBPoDj@wBb@sDbAgCbAkAh@_B~@gBdAu@f@gDlCwFbFsBnB{FhFmAbAuBbBoM~J}ClCy@|@kDrE{C|EsClHaF|PkDlIwErH}FnGwK~FeJfD_CjAuCpB_A~@{AtAkCjDaCdE}AzDeAtDcFpR}BpGaDlHeF`JwKnM}DvFgCzE{HxUoBnEmEtG{FrEkFxBqE`AeFRwEWqFqA_NkEyD{@}SaDgEcB_DwBiDcDeD}FwAsEsAoGKgAm@uGaBeLkC_IkF{HoGuEyFmB{Ga@uFb@gSnF_JlAsKNaL_A{KcCoIkD}HqEaKmJwCaEcDwEuBsDmAgB_CcD}C{CkBwAkBiAsBaAsBu@kCm@iC_@wCMwC?uDXmDp@iLxCsGhAsBRwBLmCFqINqIXoEb@gEv@oEjAgE~AgD`B_DlBoCpBgCzByDvDsDzDsDzD}DnDgE`DqErCo@^qKvFkK`GwKjH{K`HiHzDmHpDeKpEmKdE{GzCkDnBaBdA_BjA{D`DkDfDcDrDwU~YgLlL_G|EsRpOgHxH_GnI{H|L{@tAuBnCeBxBwA`BsDpDiCxBkBvAkBpAmC|AwE~BiCdAiC|@}HnBeIjAwH^sIFmJ@iFJkGZ_G`@gDDuFYcFmAuD}AiF}CaFiCcEoAcEm@kGMwEPqFTiGFuEYiEq@gEmAyD_BqEqCsGwE{FkE_HmEiIqFkEiDiGwEmIwEeAe@iBq@uAe@cBc@iK_CiHiBwLgD_HiAoGMmF`@mFlAuEnBwErCsEnDcHjFeJ~FiG|CkGfDuE`DaGfEuEvDsEnD{FnD}GlC}EtBmBfAqErDmC`DqB`DyBtEcDjHmDvHiDzFcGxHmFxEyFpDqIvDeEnBu@\\mGjDkHxDm@Z[NoFbCOHsMhFsAf@iHnB_IhBmNxCiFbBoFpCmExD_ErFeCbFuDnK_DnJcD`I{EhIsClDaHfH_GpFaErE}AhCgBjDgB`Fu@xCg@bCu@fEQlAu@fG[jBi@rCo@pCg@jBm@bBs@rBq@tAq@tAuAvB}AvBsArA_B~A_BhAcCvAcBx@oDnAoG|AgMdDaDdAsA`@qAZuB^wBPy@Du@@oB?_F_@yCs@qC_AmDcB{FuDyEwCiF}BwEgA{Iy@qKk@cRe@kJc@_Jm@eFo@gASyBe@{EsBaEmC_DwCoGgH{EqE{E{CmEgB}FuAcF_@}FBuHGgFSgEg@kFsAmEoBiE{CaD}CuDaF_G}JoFeIgDiDoE{CcE}ByDyBsE}CoFwDyC}BmCoByCaBmBy@}C}@kDs@sE_@_C?eERiIv@uGRsFGuDS_Es@kEgAmD_BwCiBwDgCuDoC}EkDaDgBgEuA{Ew@gDOeEDuEn@yDhAkBv@}ErCyGpEwAv@cDtAwCp@yEh@{EB}Dc@_E}@aGoB_GuBwFcBmHeByGoAaIiAsHk@wEq@kDwAkDkBaCeBoBkBeCuCaD}DeEqE_EuD_F}DwEoDoDaCkFgDmEeC_GiC}FgCyFkBcHsBeI_BwHiA_FaAwJoC}Bs@qDmA_CcAmCaAaCgA}DqB_DiBgDuBwE}Cq@g@sB{AkDuC{CoCqDsDeDoDeD_E{DeF}BuCk@k@aDaDkDiC_EwBoF_BmFq@kEIkEJeFh@eFp@kHx@cFXyEBwDK}Ee@iE_AuG_CmEyBuCeBwD_C_DyBoDyBuDkBwEcBqE_AeD[wAGoFC{EBsGR{CBwEQsDu@{C_AgDwAgCmAiE}BgFkCwEeBqFaBoEaAyDg@_DYgDOeCCgGLwLh@uGRmGE_DU_De@c@GGAiB_@iCw@uB{@mB}@cAk@wEiDgCiC_CiCcCyC_AqAoBoCaEiFkDyDiBeBoCqBwDuBoDqAuCu@oEs@{O}AyE_AaDgAwC{AmBoAy@m@cC{BiBuBgBcCmGaK}BcD{BiCmCgCeCkBqKwGwCuBwCoCaCwCqB{CgBsDyA_EoAgEiDgPoBeIyCsKcDoKs[ydAaG{QoBeFuCwFcCmDuDgEkEyDaMeI_DcCcCgCoBaC}BmDmHiNyBeDgCeDoDkDqCuBcDsB}IqEkCaBkBsAgC}BsJaK_CsBgEwCeC{AuCmAeEuAwGiBuCgAkCiAyCeBuBwAcCoByBuBaJgKuEkEgD{Bq@]sAk@iAi@wCaAeJcC_Bk@w@_@sBcA}CsBiB{AyB}BsI{KoFcGgEgEqG{FoH{FuHaFqHeEaJcEsGsC}F{CwFeDcDyBwGcFqC_CaCyBeDcD_DiDoC{CoBmCwAmBiA}Aw@iAsCeEyBmDqAsBqAmBiB}BQOuCqCcDcC_E}BoKuE}CcB}B_BsCeC}BcCaCcDmB}CeBiD}A_EeC}H_D{JuBwF_CyFcF{KqCmFkGiKcFmHaCqDkCeEmBeDyFgKcBmC}ByCiDmD_D_CuCcBcH}CaEgByCgBqCwBgCaC}EkFkCeC{DoCoDkBuE}AuE}@{E]yCAsCHuF`@qBHwBDwBIsBOgCg@{C}@oB_AaB_A_BcAuA}@uBmAcB{@qAo@{Ac@yAa@iB_@uASyAKyAEaBCiBBeBHeBJ}BNoBDiCCcFc@qCk@mC_AuCoAmCiBg@]oG_GmDaDiEsC_DsAmDmAmE_AqEc@uLi@}Ea@{E}@sFiBoFaCoGiEwCiC_@_@aA_A_EaFuCcEmD{EiC_DgBuB_CiCa@c@qBqBQQsDuDqCeDwB_Ds@iAgBgD{@qBq@{Ak@_Bi@gBk@oBs@cDa@oBc@uC[qCWaC[qEQ{CUwEUaD_@eDc@kCg@_Cs@iCw@_CcA_CcAoBy@{Aw@iAgBuBeCuBuAaAoBkAWOs@]aHsBi@IqAQ{BSkAAoDFmBD_@@{EGqD]cB_@qC_AgCoAaFsCkDgByEcBgEgAoEq@qG_@cGBwEXoFl@aDx@}DjAoEpAwCdA}FnAqC^iE^gCNoADwD@iBCuBOiDe@qEk@{EaAwEgAwGkAiGg@wG?eHh@sFhAeGrAyDz@iFf@qDDiGc@{E_AsEyAcE{AaHeC_Es@aFk@oFc@sGqAkFeC{DkCi@g@gAcAaG_FeF_CqDgAqDg@kDa@{DQuEEqD@gET_DVgAN}@PmCb@cCf@m@Ns@L_Cd@iCh@SByC`@kDd@yCPI@wCJ_DDgDCcFe@mGy@kEu@uGsAoIuAcFm@gDScEKaFGkHNmJVoHNoGFyF?{FAkFEaGOqIQoCG_FQaBA{CEeD?iFL}EZsHhAwAPaEf@mFhA_Fv@iBTgBLgBFwA@aBAyAEoAIgAKwBUoEi@wEm@qEo@kFWwEQeECmEJkC?uDGoAGqAMoBa@uAc@uAc@cAa@qAu@aBeA}AiAyBiBsEyCaF_CeGeB{Dk@aFYgDBmDT_Ff@{AJ}AFgD@kDUqDm@mBe@}@_@cCkAmAu@][eDsCiBuA{BgB}BeBmBuAyBmAi@[sBeAyAk@iBo@uD}@sEi@kFCoF^qHhBqE|ByDxCsClCaEfFiExE}EtDgE~BgH|CaHvBwDr@yFv@eEPuF?yH?cFH_FZcEn@iDt@aEjA_ExAkGzBqFdBcFjAwB\\uBVwEZoETmGLyFViD\\kCd@sEbA_FzA}FbB}EjAmDv@yEn@kD\\eEF_EPmEDuFJyE@wEVmBPw@HeDb@mDn@wEdA{FbBwEtAqD~@qFbAeEb@kEVc@@iA?sEAgEY{DYsAQmGu@uGe@gCKsFAiJDwDK{E]sEo@oE{@sFkAkGuA}E{@{Ek@uE[cFGaFHeFX}J`AoIx@}BNoJ`@iBBsBAaA?}DMuEUmBOgEa@uBWuCg@oGuA}F}AuIyCyG}BiF}AaHaB}HiAiHk@oIKsIRgE\\oEj@uNvCoMfCkNfAuLJyOp@cMzB_LxD}JrEaPjG{PdEqL~B}IpBuMzE_J`EeKhGyKxIoL|LaLvNk@t@eElFcJpLyJxKaKtHuJ`FiKfD{M~B_Nh@wPLmOd@iIr@iIhAiHvA_JvBoLxCiLfCgNfBcPr@qPUgNMeHNqGXqFh@oFt@qEz@oEdAkF~AcFhBkGlCwEfCaFxCcGfEwFjE{FfEqBlAuBhAqCjAqC~@{Bl@yBd@{BZaCT{Qp@kCPeD`@yCh@kD|@iDhAqDzAkDjByDdCqDxC_DzCsCfDoCtDyDvGgBvDyDxIsBvE_C~E_CjE}DlGcEtFiD~DyFnF_BvAyFdE{ClBaExBmEnBwFpByErAeIlBeH`BeHrB}FtBcGjC}C`B{CdBcHrEcGlEeExCsAx@oCrAaDfA_Dp@}DZiEB}EYoB]kBe@sJ}CkBk@qDq@gDg@yBOwBGkDCuDRsEf@mB^iCd@sM~AyBNwI`@sHFoCE}CCuCUiGi@aKiA{ASuAK_@EcBA{ACoDDeGZoCZ{EbAiAV{EdAiB\\cBRuCNoBBwDIqE]uB]kLsCeDo@kEo@uDWyE?}ETyG|@uFv@qF^qD@mESuEm@kEeAkEaBeDcBaDyBwCcCcDmDsEiGyDmFaF_G}DqDsEmD{CkBsDkB{FcCuAi@aFwBmE}B{ByA{DyCeByAsDyD{I_KoFsFgFwEeF}DaGgEwD_CiEeCyFsC}FgCwEeBoFgB_Bi@YKiEwByBuA{BeBeBeBoB{BqDqFcJkN}E}FaGiFaEsCsFyCuDyAoFmBcLmD_Cy@gDyAiC{A_EqCeBkAyBaBwDeCiCqAyCiAwBi@eCe@wCc@aBKqBCqC?aEBeBEsBK}B]wCo@sBu@sBcAwBuAeEgD_C_BsAu@eAg@eAa@}Ag@iCg@yASqCQuBCsCNuANkAReCn@}@XqGxCiEdBkLdFsEzBwEjB_D~@kDr@gEd@kDTsCD{BC}CKoCYiC]gFaA{Ce@mC[wCOgC?{CToCd@iCp@yB|@}@^_A`@eIjDuAh@iDnAcCz@cEfAmBb@yAZ}@Pa@HqBb@mDd@oD^eBNmFVmEJiG?mEMeIg@wKoAaFo@}Ek@{D_@mEWmEOuEAsOd@sN`AeNj@wKFqLUqQWqNNkJb@qL`AqIfAuLrB_MzCsMbEwIfDmF`C{LhGkLfHiEzCmCpB{LxIcJvF}BvAmHbEqK`Ga@T}IdFwKfGgQvJoEbCiE`C{DfBgCz@aARe@JyDb@aCFiB?aDMiIa@eHSkJCyCF_ADwBDmDPkCZ}Dl@cHnAgCp@aDv@qFhBiFxByFfCeH`DoGfCcGjBgGlAiHv@cIRcKUk\\qBe`@mCwGOwKFyKh@iIjAyHxAkJ~Bu]|McKbDsJ|BaHnAsJhAgLj@gMh@sRDaM^mI|@iHdB{OlFmGjAgG\\{DGqEi@kFsAcMeEcHsAiGSsFXuDj@yBn@mNvFmPjFeLnCaLhBsNpA}Or@}Rj@kL^aGb@sGtAwFfCeFdEqCfDqFvHoDvDkExCeFzBqI~AoIr@yJNsHWcIq@cIqAiJsAaJkAeJQyKXqSfB}Ip@iERgDHwIDcGE_GKsCIoCGaHOwGCsL\\uGj@]JYDmDf@gDl@cDt@mD~@sA^cKnD{LpFaHbDmHlCcEpAaEbAiInAoIr@aKJwCKiFk@qG}AwEuAoBc@qB[qBSqBKwLM}DWmEs@uBm@kBq@eE{BwDwCiCiCmC{BaC_B_CeAkEuAG?sB]aBQiBGeBA}BJwBVsB`@uBn@oBv@mBbAyAbAmA~@gDbDoAlAuAlA{AdAcBbAwHdDoDlBeF~DgFxEmExByF~AgJhAwB`@sBj@sBv@qBbAcFfDaD~CiDfFuElIkE|F_GfFqFjCyEjAyEVeGC{FeA{EgBiHqCqGgA_Jk@yCOsC]yGaAeIcAq@GkF]eDEcFDqBHsBJuHn@sHd@gBDaCG}C]eDg@qCy@i@Qc@MqC{@u@UuAc@kDo@mDs@oAUa@IiAUmCyA_DeCcBgBsBmCiB{CoCmEmBkC_CeCoHeGaCmB_Ai@eAo@aDsAwBo@uB_@{BUaDImCBcGb@iBBkBEkCQmB[yEyAwEyB}EgBgFcAaFQkFVwDn@yJtBmEn@yFL}CDsCVcBV{AX}Ah@iBv@aBbAm@Zu@h@_BxAuD`E}DjGaEhEmEbDgD|AgEdAsHjA_JlBsOlF_Bh@iFnB{DrAuAd@iBb@sATiFRaB?kDUsDk@kBe@eEwAmEcB",
"mode": "driving",
"maneuver": {
"bearing_after": 25,
"bearing_before": 5,
"location": [-9.112439, 38.793783],
"modifier": "slight left",
"type": "merge"
},
"ref": "A 1",
"weight": 8606.199999999997,
"duration": 8602.000000000002,
"name": "Autoestrada do Norte",
"distance": 290535
}, {
"intersections": [{
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 195],
"location": [-8.580459, 41.073682]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.577354, 41.077717]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [5, 179, 356],
"location": [-8.575316, 41.083207]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-8.575718, 41.086893]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-8.575707, 41.08843]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 180, 195],
"location": [-8.574438, 41.091607]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 60, 210],
"location": [-8.571976, 41.098632]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [19, 197, 200],
"location": [-8.566281, 41.104786]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 315, 330],
"location": [-8.578053, 41.135428]
}],
"driving_side": "right",
"geometry": "oeuyFzzjs@i@MWOoDyBqG_FkByAwD{CcBsA}DaCiAg@gEwAgB]oDa@wDCq@@S@mADqShAcADeB@iBG_@AaAKe@GsAU{CaA_E_BaA_@a@QeE{Am@S}E}A{Dq@aK{AwCk@}C_Au@c@{@g@{BiBmB}BgHyKiAwAmAoAoB{Ay@i@eDsAyCgAiBq@}@[o@SWI_@KwAWeAKmAIoA?oAFaAJ}@N[FwBr@q@Z_CtAqGzFiCxBqCfCuBhBqC`CuBhBo@h@q@d@kAj@iAd@m@PWHYFgAPuAJgBL_CL_CLq@Dw@HwCd@}RjEiGpAu@ReDz@aBj@iBv@qGlCqAh@k@Ri@LsAV]D[Bg@FcBJwCRyCRUBW@SBS@SDUBQBODQDUDUHUFQFQHMFOFSJULMHOJOJMJOJMLOLSPKL_@`@KLKNMPY`@U`@S`@cApBMTKRKPKNMRORKLKLMNKLKJOLOLQLQLOJQHOHQHUJUHUFIB",
"mode": "driving",
"maneuver": {
"bearing_after": 12,
"bearing_before": 19,
"location": [-8.580459, 41.073682],
"modifier": "slight left",
"type": "fork"
},
"ref": "IP 1; A 20",
"weight": 287.79999999999995,
"duration": 287.2,
"name": "",
"distance": 7769.9
}, {
"intersections": [{
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [165, 345],
"location": [-8.580551, 41.137753]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 150, 180],
"location": [-8.580703, 41.138688]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-8.580979, 41.145269]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [15, 195],
"location": [-8.580788, 41.146635]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [30, 210],
"location": [-8.580502, 41.147155]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [23, 209, 213],
"location": [-8.579148, 41.148683]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [6, 182, 355],
"location": [-8.578781, 41.149836]
}, {
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [180, 345],
"location": [-8.578815, 41.15013]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "slight right"]
}],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [120, 135, 315],
"location": [-8.580176, 41.152076]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 315, 330],
"location": [-8.580662, 41.152473]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-8.582997, 41.156772]
}],
"driving_side": "right",
"geometry": "}uazFl{js@KBMBIBSBOBQBU@SBw@?iA@}D@gU\\sITuB?iAGqA]s@Ys@_@_@[_FkEo@e@}@a@_AWg@Ia@C_@Ag@DQ@k@Hk@He@Nc@Rs@b@q@j@}BfCu@`AW\\uBlCo@p@aBxAsA|@y@`@}Aj@qAXmAPwAFoBEIAu@Ew@OsBc@qEsAcJiCyEuAaAM",
"mode": "driving",
"maneuver": {
"bearing_after": 344,
"bearing_before": 343,
"location": [-8.580551, 41.137753],
"modifier": "straight",
"type": "new name"
},
"ref": "IP1; A20",
"weight": 131.6,
"duration": 131.1,
"name": "",
"distance": 2894.4
}, {
"intersections": [{
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 195],
"location": [-8.58109, 41.162202]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [15, 180, 345],
"location": [-8.581058, 41.162607]
}, {
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [150, 165, 330],
"location": [-8.582343, 41.165323]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [120, 300, 315],
"location": [-8.586669, 41.166966]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [120, 300, 345],
"location": [-8.588505, 41.167963]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [105, 135, 315],
"location": [-8.589606, 41.168596]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 300, 315],
"location": [-8.593887, 41.171353]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [70, 82, 254],
"location": [-8.597097, 41.171784]
}],
"driving_side": "right",
"geometry": "wnfzFx~js@m@Cc@Ae@Fk@H_@JwAh@sIvD[P]T[Vy@`A_@n@[r@Sh@Qr@Mr@Gh@Eh@EpBAf@GvAOjA[vA}@xBy@dBmAnCkBxDS`@y@~Ai@fAaBzCkBdDmAtBwBpDm@dAc@dA[v@U|@M~@E^A`@AbA@`AD`ADz@H~@VlB^bDTjBR`CBp@BhA?n@A|@",
"mode": "driving",
"maneuver": {
"bearing_after": 2,
"bearing_before": 8,
"location": [-8.58109, 41.162202],
"modifier": "straight",
"type": "new name"
},
"ref": "IC 23; A 20",
"weight": 138.60000000000002,
"duration": 131.2,
"name": "",
"distance": 2177.9
}, {
"intersections": [{
"classes": ["motorway"],
"lanes": [{
"valid": false,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["right"]
}],
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [90, 270, 285],
"location": [-8.600832, 41.171263]
}],
"driving_side": "right",
"geometry": "kghzFdzns@YxAQ`AQt@Kd@Ip@KnAGjA",
"mode": "driving",
"destinations": "Porto, Paranhos, Hospital",
"maneuver": {
"bearing_after": 291,
"bearing_before": 271,
"location": [-8.600832, 41.171263],
"modifier": "slight right",
"type": "off ramp"
},
"weight": 13.1,
"duration": 12.9,
"name": "",
"distance": 199.7
}, {
"intersections": [{
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [105, 285, 300],
"location": [-8.603104, 41.171781]
}, {
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [120, 285, 330],
"location": [-8.604757, 41.172179]
}],
"driving_side": "right",
"geometry": "sjhzFjhos@MZSd@UXaAx@a@\\]\\Q\\G`@?XBTLXNNRFLBPCLGLOPOVw@DGFGJEHEDAF?D?F@",
"mode": "driving",
"destinations": "Porto",
"maneuver": {
"bearing_after": 302,
"bearing_before": 278,
"location": [-8.603104, 41.171781],
"modifier": "slight right",
"type": "fork"
},
"weight": 34.9,
"duration": 34.2,
"name": "",
"distance": 339.3
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [15, 210],
"location": [-8.604339, 41.171743]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true, false],
"bearings": [30, 75, 210, 300],
"location": [-8.604937, 41.170977]
}, {
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [0, 180, 315],
"location": [-8.606506, 41.168022]
}],
"driving_side": "right",
"geometry": "kjhzFbpos@fCfBNN~AjA|AhAf@^hAz@LHp@f@XHRBb@BlCBjA?pEDZ@",
"mode": "driving",
"maneuver": {
"bearing_after": 209,
"bearing_before": 192,
"location": [-8.604339, 41.171743],
"modifier": "straight",
"type": "new name"
},
"weight": 133.9,
"duration": 106.19999999999999,
"name": "Rua de Faria Guimarães",
"distance": 637
}, {
"intersections": [{
"out": 3,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 150, 180, 270],
"location": [-8.606551, 41.16645]
}],
"driving_side": "right",
"geometry": "iigzF|}os@AXEdA",
"mode": "driving",
"maneuver": {
"bearing_after": 275,
"bearing_before": 181,
"location": [-8.606551, 41.16645],
"modifier": "right",
"type": "turn"
},
"weight": 7.9,
"duration": 7.6,
"name": "Rua do Covelo",
"distance": 39.9
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [90, 270, 285],
"location": [-8.607025, 41.16649]
}],
"driving_side": "right",
"geometry": "qigzF|`ps@@H?J?NAXANBDD@jCJDBDB@HC~C",
"mode": "driving",
"maneuver": {
"bearing_after": 262,
"bearing_before": 275,
"location": [-8.607025, 41.16649],
"modifier": "slight left",
"type": "fork"
},
"weight": 71.4,
"duration": 39.3,
"name": "Rua Doutor Adriano de Paiva",
"distance": 197.8
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [90, 180, 270],
"location": [-8.608421, 41.165701]
}],
"driving_side": "right",
"geometry": "sdgzFrips@zFN",
"mode": "driving",
"maneuver": {
"bearing_after": 181,
"bearing_before": 271,
"location": [-8.608421, 41.165701],
"modifier": "left",
"type": "turn"
},
"weight": 42.2,
"duration": 42.1,
"name": "Rua Joaquim Kopke",
"distance": 140.2
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, true, true, false],
"bearings": [0, 90, 180, 270],
"location": [-8.608501, 41.164442]
}],
"driving_side": "right",
"geometry": "w|fzFbjps@L?X@N@JBlBl@BBz@VFBlCx@",
"mode": "driving",
"maneuver": {
"bearing_after": 180,
"bearing_before": 181,
"location": [-8.608501, 41.164442],
"modifier": "straight",
"type": "new name"
},
"weight": 77.4,
"duration": 65.1,
"name": "Rua Cantor Zeca Afonso",
"distance": 227.8
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [15, 105, 195, 285],
"location": [-8.609223, 41.162476]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true, false],
"bearings": [15, 105, 195, 285],
"location": [-8.609597, 41.161466]
}],
"driving_side": "right",
"geometry": "opfzFrnps@tDbARFTBpBp@dAN",
"mode": "driving",
"maneuver": {
"bearing_after": 195,
"bearing_before": 196,
"location": [-8.609223, 41.162476],
"modifier": "straight",
"type": "new name"
},
"weight": 73.19999999999999,
"duration": 60.7,
"name": "Rua de São Brás",
"distance": 234.8
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, false, true, true, true],
"bearings": [15, 105, 165, 225, 285],
"location": [-8.609951, 41.160441]
}, {
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [0, 180, 285],
"location": [-8.609944, 41.158732]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [0, 60, 180],
"location": [-8.609979, 41.15748]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true, false],
"bearings": [0, 75, 180, 255],
"location": [-8.609984, 41.157254]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 45, 180, 225],
"location": [-8.610008, 41.155675]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 90, 180, 270],
"location": [-8.610018, 41.155197]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [0, 165, 180],
"location": [-8.610043, 41.15433]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 90, 180, 270],
"location": [-8.610057, 41.15362]
}, {
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [0, 180, 270],
"location": [-8.610057, 41.153503]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [1, 174, 187],
"location": [-8.61004, 41.152263]
}],
"driving_side": "right",
"geometry": "wcfzFdsps@VEnHBL?xFF\\?N?xHD~A@lDBvA@Z?X@V?z@?HEpD@j@FP@RH",
"mode": "driving",
"maneuver": {
"bearing_after": 168,
"bearing_before": 188,
"location": [-8.609951, 41.160441],
"modifier": "straight",
"type": "turn"
},
"weight": 183,
"duration": 182.3,
"name": "Rua de Camões",
"distance": 957.7
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, false, true, false],
"bearings": [0, 120, 210, 315],
"location": [-8.610143, 41.151849]
}],
"driving_side": "right",
"geometry": "andzFjtps@~AhAr@f@\\VJFNBNAXA",
"mode": "driving",
"maneuver": {
"bearing_after": 209,
"bearing_before": 187,
"location": [-8.610143, 41.151849],
"modifier": "slight right",
"type": "new name"
},
"weight": 23.2,
"duration": 23,
"name": "Rua Heróis e Mártires de Angola",
"distance": 154.2
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [0, 180, 225],
"location": [-8.610867, 41.15061]
}, {
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [0, 180, 225],
"location": [-8.611213, 41.149423]
}],
"driving_side": "right",
"geometry": "ifdzF|xps@VCH?H@JBv@j@JFTLJBHBH?z@GXA",
"mode": "driving",
"maneuver": {
"bearing_after": 177,
"bearing_before": 174,
"location": [-8.610867, 41.15061],
"modifier": "straight",
"type": "new name"
},
"weight": 94.6,
"duration": 35.9,
"name": "Rua do Clube dos Fenianos",
"distance": 155.3
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 30, 105, 180],
"location": [-8.6112, 41.149287]
}],
"driving_side": "right",
"geometry": "a~czF~zps@@K@UDg@",
"mode": "driving",
"maneuver": {
"bearing_after": 98,
"bearing_before": 175,
"location": [-8.6112, 41.149287],
"modifier": "left",
"type": "turn"
},
"weight": 22.5,
"duration": 22.5,
"name": "Praça General Humberto Delgado",
"distance": 31.3
}, {
"intersections": [{
"in": 0,
"entry": [true],
"bearings": [279],
"location": [-8.610831, 41.149244]
}],
"driving_side": "right",
"geometry": "w}czFtxps@",
"mode": "driving",
"maneuver": {
"bearing_after": 0,
"bearing_before": 99,
"location": [-8.610831, 41.149244],
"modifier": "left",
"type": "arrive"
},
"weight": 0,
"duration": 0,
"name": "Praça General Humberto Delgado",
"distance": 0
}],
"distance": 318692.1
}],
"weight_name": "routability",
"weight": 11481.1,
"duration": 10976.2,
"distance": 318692.1
}, {
"legs": [{
"summary": "Autoestrada do Oeste, A 17",
"weight": 12713.5,
"duration": 12156.9,
"steps": [{
"intersections": [{
"out": 0,
"entry": [true],
"bearings": [73],
"location": [-9.136778, 38.708199]
}],
"driving_side": "right",
"geometry": "gegkFzowv@AIE]O}@CICGAGGKCGEECEAA",
"mode": "driving",
"maneuver": {
"bearing_after": 73,
"bearing_before": 0,
"location": [-9.136778, 38.708199],
"modifier": "right",
"type": "depart"
},
"weight": 55.1,
"duration": 23.1,
"name": "Praça do Comércio",
"distance": 79
}, {
"intersections": [{
"out": 3,
"in": 2,
"entry": [false, false, false, true],
"bearings": [60, 165, 240, 345],
"location": [-9.135967, 38.708493]
}, {
"out": 3,
"in": 1,
"entry": [false, false, false, true],
"bearings": [75, 165, 255, 345],
"location": [-9.136177, 38.709023]
}],
"driving_side": "right",
"geometry": "aggkFxjwv@[H}@VOF_AVMD",
"mode": "driving",
"maneuver": {
"bearing_after": 341,
"bearing_before": 57,
"location": [-9.135967, 38.708493],
"modifier": "left",
"type": "turn"
},
"weight": 73.1,
"duration": 36.7,
"name": "Rua da Prata",
"distance": 107
}, {
"intersections": [{
"out": 0,
"in": 1,
"entry": [true, false, false, true],
"bearings": [75, 165, 255, 345],
"location": [-9.136327, 38.709413]
}],
"driving_side": "right",
"geometry": "ylgkF`mwv@ACAMa@eC?EAG",
"mode": "driving",
"maneuver": {
"bearing_after": 71,
"bearing_before": 343,
"location": [-9.136327, 38.709413],
"modifier": "right",
"type": "turn"
},
"weight": 48.8,
"duration": 24.8,
"name": "Rua de São Julião",
"distance": 75.1
}, {
"intersections": [{
"out": 1,
"in": 2,
"entry": [true, true, false, false],
"bearings": [75, 165, 255, 345],
"location": [-9.135501, 38.709614]
}, {
"out": 1,
"in": 3,
"entry": [false, true, true, false],
"bearings": [75, 165, 255, 345],
"location": [-9.135338, 38.709227]
}],
"driving_side": "right",
"geometry": "angkFzgwv@|@YLEbAYLEHAB?DA",
"mode": "driving",
"maneuver": {
"bearing_after": 160,
"bearing_before": 71,
"location": [-9.135501, 38.709614],
"modifier": "right",
"type": "turn"
},
"weight": 98.69999999999999,
"duration": 44.7,
"name": "Rua dos Fanqueiros",
"distance": 103.9
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [0, 90, 270],
"location": [-9.135164, 38.70872]
}, {
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [90, 270, 345],
"location": [-9.134633, 38.708726]
}],
"driving_side": "right",
"geometry": "ohgkFvewv@AiBAeE",
"mode": "driving",
"maneuver": {
"bearing_after": 88,
"bearing_before": 175,
"location": [-9.135164, 38.70872],
"modifier": "left",
"type": "end of road"
},
"weight": 37.3,
"duration": 36.5,
"name": "Rua da Alfândega",
"distance": 131.9
}, {
"intersections": [{
"out": 1,
"in": 2,
"entry": [true, true, false],
"bearings": [90, 135, 270],
"location": [-9.133644, 38.708735]
}],
"driving_side": "right",
"geometry": "shgkFf|vv@LQRELEb@K|@Uv@U\\I",
"mode": "driving",
"maneuver": {
"bearing_after": 133,
"bearing_before": 88,
"location": [-9.133644, 38.708735],
"modifier": "right",
"type": "turn"
},
"weight": 95.4,
"duration": 43.8,
"name": "Campo das Cebolas",
"distance": 136.5
}, {
"intersections": [{
"out": 0,
"in": 3,
"entry": [true, false, false, false],
"bearings": [60, 165, 225, 345],
"location": [-9.13316, 38.707581]
}, {
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [45, 225, 315],
"location": [-9.128586, 38.709809]
}, {
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [75, 225, 330],
"location": [-9.127098, 38.710864]
}, {
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [60, 240, 330],
"location": [-9.125266, 38.711668]
}, {
"lanes": [{
"valid": false,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["none"]
}],
"out": 1,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 240],
"location": [-9.124433, 38.712066]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false, true],
"bearings": [45, 135, 225, 315],
"location": [-9.121303, 38.714635]
}, {
"lanes": [{
"valid": false,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}],
"out": 0,
"in": 1,
"entry": [true, false, false, true],
"bearings": [30, 210, 285, 330],
"location": [-9.116233, 38.719465]
}, {
"lanes": [{
"valid": true,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [30, 210, 300],
"location": [-9.111535, 38.724886]
}, {
"lanes": [{
"valid": false,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}],
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [30, 210, 300],
"location": [-9.111473, 38.724954]
}, {
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [15, 195, 255],
"location": [-9.103572, 38.735944]
}, {
"out": 1,
"in": 2,
"entry": [true, true, false],
"bearings": [10, 19, 197],
"location": [-9.103081, 38.737302]
}, {
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [45, 210, 300],
"location": [-9.100221, 38.742002]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 60, 225],
"location": [-9.100068, 38.742152]
}, {
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 180, 210],
"location": [-9.099817, 38.742439]
}],
"driving_side": "right",
"geometry": "kagkFfyvv@KYcAyCqBgGe@sAgA}CiAaC[g@g@y@cA}AoAiBS]a@u@GMI_@Um@a@iA_BuEOc@IYu@iB[y@Wq@aAsA[]m@q@i@i@cE}EaAeAQSo@u@yHmIa@i@aBkBmDyDy@{@k@m@_A_AqBeBQQgCsBeEgDmEyDsC}B]YaG}Ey@q@g@e@IEKMc@_@_@[eEiDwAsAa@g@kGiJwC{CoC{BcCcBoG_EwCsAcAY_@OgBe@uKiBg@IGAQEMCo@Mg@QiCo@m@QyAe@{Ai@oB{@eIgEwBiAi@W_Aq@oAeAMMQQKKSSWQMKYUoAUYGsBg@M@GL",
"mode": "driving",
"maneuver": {
"bearing_after": 59,
"bearing_before": 163,
"location": [-9.13316, 38.707581],
"modifier": "left",
"type": "turn"
},
"weight": 658.1,
"duration": 539.9999999999999,
"name": "Avenida Infante Dom Henrique",
"distance": 5128
}, {
"intersections": [{
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [15, 135, 240],
"location": [-9.099436, 38.743793]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [75, 210, 285],
"location": [-9.099563, 38.743772]
}, {
"out": 3,
"in": 1,
"entry": [true, false, true, true],
"bearings": [15, 105, 195, 285],
"location": [-9.101248, 38.744258]
}, {
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 105, 285],
"location": [-9.10144, 38.744313]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103317, 38.744961]
}, {
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103388, 38.745014]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103417, 38.745036]
}, {
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103552, 38.745141]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103577, 38.745161]
}, {
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.10368, 38.745246]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103698, 38.74526]
}, {
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.103805, 38.745351]
}, {
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [105, 135, 330],
"location": [-9.10403, 38.745567]
}, {
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [75, 165, 345],
"location": [-9.104669, 38.746797]
}],
"driving_side": "right",
"geometry": "ucnkFnfpv@ALDHET{AzHId@Qz@UjAk@vC_@`AMTILEDILIJCDQRABQTk@j@cAr@_A^qBj@aATyBd@aCRgCE_@Em@Ga@G[C",
"mode": "driving",
"maneuver": {
"bearing_after": 243,
"bearing_before": 319,
"location": [-9.099436, 38.743793],
"modifier": "slight left",
"type": "end of road"
},
"weight": 109.5,
"duration": 108.60000000000001,
"name": "Avenida Infante Dom Henrique",
"distance": 940.4
}, {
"intersections": [{
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [45, 195, 240],
"location": [-9.104908, 38.749774]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 90, 225],
"location": [-9.104836, 38.749846]
}, {
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [105, 180, 345],
"location": [-9.104796, 38.750021]
}],
"driving_side": "right",
"geometry": "aiokFthqv@OMIEKCK@I@",
"mode": "driving",
"destinations": "Norte, Sul, Ponte Vasco da Gama",
"maneuver": {
"exit": 2,
"bearing_after": 36,
"bearing_before": 8,
"location": [-9.104908, 38.749774],
"modifier": "slight right",
"type": "roundabout"
},
"weight": 6.9,
"duration": 5.1,
"name": "Avenida Infante Dom Henrique",
"distance": 36.2
}, {
"intersections": [{
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [30, 165, 330],
"location": [-9.104813, 38.750073]
}, {
"lanes": [{
"valid": false,
"indications": ["left"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}],
"out": 0,
"in": 1,
"entry": [true, false, false, true],
"bearings": [15, 195, 285, 315],
"location": [-9.103993, 38.751691]
}],
"driving_side": "right",
"geometry": "}jokF`hqv@[WIGk@YGC{Ae@_@MwAe@UKOEkHmCmA_@",
"mode": "driving",
"destinations": "Norte, Sul, Ponte Vasco da Gama",
"maneuver": {
"exit": 2,
"bearing_after": 35,
"bearing_before": 344,
"location": [-9.104813, 38.750073],
"modifier": "right",
"type": "exit roundabout"
},
"weight": 49.8,
"duration": 37.3,
"name": "Avenida Infante Dom Henrique",
"distance": 427.1
}, {
"intersections": [{
"out": 0,
"in": 3,
"entry": [true, true, true, false],
"bearings": [0, 15, 90, 195],
"location": [-9.103085, 38.753659]
}, {
"classes": ["tunnel"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.103011, 38.755324]
}, {
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.103119, 38.75627]
}, {
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-9.103216, 38.757704]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 90, 180],
"location": [-9.103279, 38.758384]
}, {
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 90, 180],
"location": [-9.103415, 38.759747]
}],
"driving_side": "right",
"geometry": "kapkFh}pv@w@Gq@IaAGcA?{AH}DToEPmA@gCJuCNgADs@DmBHw@D",
"mode": "driving",
"destinations": "Norte, Sul (Ponte Vasco da Gama), Estação Oriente, Parque das Nações",
"maneuver": {
"bearing_after": 5,
"bearing_before": 16,
"location": [-9.103085, 38.753659],
"modifier": "slight left",
"type": "fork"
},
"weight": 50.699999999999996,
"duration": 50.3,
"name": "Avenida Infante Dom Henrique",
"distance": 772.7
}, {
"intersections": [{
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 180, 345],
"location": [-9.103503, 38.760584]
}, {
"classes": ["tunnel"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.103774, 38.762703]
}, {
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.103819, 38.763229]
}, {
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [1, 176, 356],
"location": [-9.10401, 38.765175]
}],
"driving_side": "right",
"geometry": "slqkFz_qv@k@J{Jh@iBHeKd@iCJ{Or@kJh@eA@",
"mode": "driving",
"maneuver": {
"bearing_after": 348,
"bearing_before": 354,
"location": [-9.103503, 38.760584],
"modifier": "slight left",
"type": "fork"
},
"weight": 70.8,
"duration": 70.7,
"name": "Avenida Infante Dom Henrique",
"distance": 1133
}, {
"intersections": [{
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-9.104552, 38.770736]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [180, 345],
"location": [-9.104766, 38.773055]
}, {
"classes": ["tunnel"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [150, 165, 345],
"location": [-9.104903, 38.773497]
}],
"driving_side": "right",
"geometry": "clskFlfqv@oMj@wAX_Bn@_Bh@g@Fq@F",
"mode": "driving",
"destinations": "IC 17 CRIL, A1 Norte, A2 Sul, Ponte Vasco da Gama",
"maneuver": {
"bearing_after": 355,
"bearing_before": 357,
"location": [-9.104552, 38.770736],
"modifier": "slight left",
"type": "fork"
},
"weight": 31.4,
"duration": 31.2,
"name": "Avenida Infante Dom Henrique",
"distance": 474.1
}, {
"intersections": [{
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.105429, 38.774914]
}, {
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [7, 175, 183],
"location": [-9.105319, 38.778447]
}],
"driving_side": "right",
"geometry": "eftkF|kqv@mA?cAA}DCoEC}@Ci@A{@EeGe@cAE_@?_@?y@Do@FkAL",
"mode": "driving",
"maneuver": {
"bearing_after": 358,
"bearing_before": 352,
"location": [-9.105429, 38.774914],
"modifier": "straight",
"type": "new name"
},
"ref": "IC 2; A 30",
"weight": 43.3,
"duration": 37,
"name": "",
"distance": 715.4
}, {
"intersections": [{
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, true],
"bearings": [15, 165, 345],
"location": [-9.105237, 38.781328]
}],
"driving_side": "right",
"geometry": "inukFvjqv@gAKUEYG]G[IWGUCO?U@YDQFSJQNEFOTQVa@x@Sb@MRQ\\MRMPIJQPWRm@Z[N",
"mode": "driving",
"destinations": "Norte, Oeste, Sul (Ponte Vasco da Gama), CRIL",
"maneuver": {
"bearing_after": 7,
"bearing_before": 351,
"location": [-9.105237, 38.781328],
"modifier": "slight right",
"type": "off ramp"
},
"weight": 27.8,
"duration": 27.8,
"name": "",
"distance": 413.1
}, {
"intersections": [{
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 150, 345],
"location": [-9.106827, 38.784448]
}],
"driving_side": "right",
"geometry": "yavkFttqv@WJm@R}@ZwAh@{CdA]RQLQRMTKZ",
"mode": "driving",
"destinations": "Norte, Oeste, CRIL",
"maneuver": {
"bearing_after": 338,
"bearing_before": 334,
"location": [-9.106827, 38.784448],
"modifier": "slight left",
"type": "fork"
},
"weight": 16.7,
"duration": 16.7,
"name": "",
"distance": 292.3
}, {
"intersections": [{
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [120, 285, 300],
"location": [-9.10821, 38.786793]
}],
"driving_side": "right",
"geometry": "mpvkFh}qv@Wn@e@tC]fB",
"mode": "driving",
"destinations": "A 36: CRIL, Oeste",
"maneuver": {
"bearing_after": 300,
"bearing_before": 299,
"location": [-9.10821, 38.786793],
"modifier": "slight right",
"type": "fork"
},
"weight": 9.3,
"duration": 9.3,
"name": "",
"distance": 141
}, {
"distance": 1052,
"name": "",
"ref": "A 12",
"maneuver": {
"bearing_after": 291,
"bearing_before": 289,
"location": [-9.109721, 38.787251],
"modifier": "straight",
"type": "new name"
},
"destinations": "A 36: CRIL, Oeste",
"weight": 130,
"mode": "driving",
"geometry": "isvkFvfrv@[vAGTIRIRKTOXQZMROT}@tAQVSVOPKJKHMHMFOHSF{@VUHODOFQJOJOLONY^S^U`@[h@SZc@l@kAlAWV[Za@^QNMLMJOJUPULy@f@uBpAeBfAe@\\_AjASPURWT[ZWZQT",
"intersections": [{
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [102, 110, 292],
"location": [-9.109721, 38.787251]
}, {
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [135, 150, 315],
"location": [-9.113693, 38.790587]
}, {
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [135, 150, 330],
"location": [-9.116431, 38.793825]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [120, 135, 315],
"location": [-9.117008, 38.794416]
}],
"duration": 124.2,
"driving_side": "right"
}, {
"intersections": [{
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [135, 315],
"location": [-9.117115, 38.794509]
}],
"driving_side": "right",
"geometry": "u`xkF~tsv@c@l@OV_@l@OZQZWh@Qb@M`@M`@YdAOh@Oh@Kd@",
"mode": "driving",
"maneuver": {
"bearing_after": 313,
"bearing_before": 317,
"location": [-9.117115, 38.794509],
"modifier": "straight",
"type": "new name"
},
"ref": "A12; A36; IC17",
"weight": 11.7,
"duration": 11.7,
"name": "",
"distance": 266
}, {
"intersections": [{
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [120, 300],
"location": [-9.119669, 38.7958]
}],
"driving_side": "right",
"geometry": "whxkF|dtv@i@zBk@|B",
"mode": "driving",
"maneuver": {
"bearing_after": 292,
"bearing_before": 292,
"location": [-9.119669, 38.7958],
"modifier": "straight",
"type": "new name"
},
"ref": "A 12",
"weight": 4.9,
"duration": 4.9,
"name": "",
"distance": 118.4
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [120, 300],
"location": [-9.120917, 38.796233]
}, {
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [105, 285, 300],
"location": [-9.132341, 38.800942]
}, {
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [90, 105, 285],
"location": [-9.139143, 38.802839]
}, {
"classes": ["tunnel"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [105, 285],
"location": [-9.139345, 38.802884]
}, {
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["right"]
}],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [90, 270],
"location": [-9.145288, 38.803427]
}],
"driving_side": "right",
"geometry": "mkxkFvltv@Y|@Qf@[v@Ul@[t@S`@w@xAm@~@sFhHmAlBc@~@[t@Uv@Uv@YtAQfAc@`Di@jE_ClQMdACNm@pDk@vCm@zCyBvKcAfFYhB[~BGh@q@bGi@lJOtIAzE@n@",
"mode": "driving",
"maneuver": {
"bearing_after": 296,
"bearing_before": 293,
"location": [-9.120917, 38.796233],
"modifier": "straight",
"type": "new name"
},
"ref": "IC 17; A 36",
"weight": 109.80000000000001,
"duration": 103.5,
"name": "Circular Regional Interior de Lisboa (CRIL)",
"distance": 2332.7
}, {
"intersections": [{
"classes": ["motorway"],
"lanes": [{
"valid": false,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["right"]
}],
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [90, 270, 285],
"location": [-9.145527, 38.803422]
}],
"driving_side": "right",
"geometry": "kxykFpfyv@QtAOz@Yl@WX]Xg@Pk@BqAEiES_DGwAHwALmCp@aC`AuJ|E",
"mode": "driving",
"destinations": "A 8: Leiria, Loures",
"maneuver": {
"bearing_after": 284,
"bearing_before": 267,
"location": [-9.145527, 38.803422],
"modifier": "slight right",
"type": "off ramp"
},
"weight": 48,
"duration": 48,
"name": "",
"distance": 911.6
}, {
"intersections": [{
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [150, 330, 345],
"location": [-9.148499, 38.810743]
}, {
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [165, 180, 345],
"location": [-9.149813, 38.81381]
}],
"driving_side": "right",
"geometry": "cf{kFbyyv@aCfAqCnAyAl@{@R{@L_C\\]DoB\\yBt@qAh@sAx@i@ZcAv@]Z",
"mode": "driving",
"maneuver": {
"bearing_after": 336,
"bearing_before": 334,
"location": [-9.148499, 38.810743],
"modifier": "slight left",
"type": "fork"
},
"weight": 38.3,
"duration": 38,
"name": "",
"distance": 707.2
}, {
"intersections": [{
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [150, 315, 330],
"location": [-9.151318, 38.816657]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [120, 135, 315],
"location": [-9.152495, 38.81767]
}],
"driving_side": "right",
"geometry": "ck|kFvjzv@{@bAw@x@}@pAWZQZ_A~Aq@fASh@k@pB",
"mode": "driving",
"destinations": "A 8: Leiria, Loures",
"maneuver": {
"bearing_after": 317,
"bearing_before": 326,
"location": [-9.151318, 38.816657],
"modifier": "slight left",
"type": "fork"
},
"weight": 25,
"duration": 18.700000000000003,
"name": "",
"distance": 340.7
}, {
"intersections": [{
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [120, 135, 315],
"location": [-9.154255, 38.81865]
}, {
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [165, 330, 345],
"location": [-9.159926, 38.835875]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [105, 135, 315],
"location": [-9.164467, 38.839868]
}, {
"classes": ["toll", "motorway"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [150, 330],
"location": [-9.167943, 38.843325]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 315, 330],
"location": [-9.171493, 38.848319]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [99, 110, 292],
"location": [-9.179467, 38.852249]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [12, 21, 196],
"location": [-9.196706, 38.882814]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [5, 178, 184],
"location": [-9.195646, 38.888179]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 165, 345],
"location": [-9.204766, 38.904853]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [162, 166, 340],
"location": [-9.205751, 38.907984]
}, {
"classes": ["toll", "motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 315, 330],
"location": [-9.214413, 38.921456]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-9.21695, 38.925262]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [24, 27, 204],
"location": [-9.216858, 38.986695]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [165, 168, 348],
"location": [-9.215992, 38.99291]
}, {
"classes": ["toll", "motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [176, 356, 359],
"location": [-9.239594, 39.061089]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [45, 195, 210],
"location": [-9.238525, 39.064952]
}, {
"classes": ["toll", "motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [150, 315, 330],
"location": [-9.241111, 39.109213]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [119, 123, 301],
"location": [-9.24934, 39.113776]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-9.253394, 39.123492]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-9.252004, 39.125619]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [57, 67, 237],
"location": [-9.231034, 39.155031]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [60, 225, 240],
"location": [-9.223709, 39.158785]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 225],
"location": [-9.203255, 39.193516]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [45, 225, 240],
"location": [-9.200514, 39.195338]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-9.186607, 39.220913]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [5, 184, 359],
"location": [-9.16456, 39.255305]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-9.164676, 39.257141]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-9.159506, 39.287991]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [31, 203, 214],
"location": [-9.158357, 39.289371]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-9.174108, 39.334662]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 150, 180],
"location": [-9.174239, 39.335536]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-9.173362, 39.339207]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [60, 225, 240],
"location": [-9.168669, 39.342067]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [43, 48, 222],
"location": [-9.154101, 39.351232]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [53, 224, 232],
"location": [-9.1511, 39.353426]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false, true],
"bearings": [45, 105, 225, 315],
"location": [-9.141924, 39.36116]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [43, 50, 227],
"location": [-9.138541, 39.363814]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 180, 195],
"location": [-9.134845, 39.369395]
}, {
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [149, 323, 333],
"location": [-9.135204, 39.376368]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [120, 135, 315],
"location": [-9.138149, 39.378634]
}, {
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [143, 327, 337],
"location": [-9.148536, 39.38584]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [150, 165, 345],
"location": [-9.151489, 39.391112]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [11, 14, 189],
"location": [-9.155278, 39.402841]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [0, 180, 195],
"location": [-9.154278, 39.406963]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [25, 33, 207],
"location": [-9.1548, 39.415769]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [60, 225, 240],
"location": [-9.150449, 39.420734]
}, {
"classes": ["motorway"],
"out": 1,
"in": 3,
"entry": [true, true, true, false],
"bearings": [0, 45, 180, 225],
"location": [-9.130203, 39.436248]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-9.124887, 39.44153]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [30, 210],
"location": [-9.123308, 39.443791]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 195, 210],
"location": [-9.122311, 39.445439]
}, {
"classes": ["tunnel", "toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [15, 195],
"location": [-9.118087, 39.460326]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [30, 195],
"location": [-9.117522, 39.461786]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false, true],
"bearings": [15, 150, 195, 345],
"location": [-9.092086, 39.495854]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 195],
"location": [-9.090502, 39.502514]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 180, 195],
"location": [-9.090009, 39.505615]
}, {
"classes": ["tunnel", "toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [45, 225],
"location": [-9.054007, 39.551914]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [45, 225],
"location": [-9.052896, 39.552952]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [55, 63, 235],
"location": [-9.012485, 39.585856]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [45, 225, 240],
"location": [-9.007505, 39.588557]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [46, 48, 223],
"location": [-8.994503, 39.617744]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [47, 220, 226],
"location": [-8.988266, 39.622319]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-8.970774, 39.636729]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [15, 195, 210],
"location": [-8.967843, 39.641655]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [25, 31, 204],
"location": [-8.916844, 39.710292]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.915077, 39.713345]
}],
"driving_side": "right",
"geometry": "qw|kFb}zv@y@vAyBdD{A|BcBdB}ArAuAbAqAx@kB~@cAb@yAf@iCp@m@L]D{ATqCPiBBgBEcCM_BKmE[cDOuCGaCB_FNyCRgBPoB\\oCh@kGlCeEzCiChC_DhEyFxIs@`AoAbByBtC_FzEaBxAc@ZcChB}ChBmC|AwG`DyE`Dc@\\_BxAcA`Au@x@y@`AsCvDw@zAaAdB_BrDi@vAg@|Aq@`C_@tA{AfIs@zD[vAs@pCa@lAg@pAq@tA{@xAmBfCuAtAcAx@iAr@eAj@qBv@_Bb@gGlAyD`A{CnAyCdCqD`FuAzCeAvDq@dE_@|ESxFYzF_ApFqA`EyBdEyBfCoEhEmE~CmGrDoBhAaAd@eA^kFrAwERsESgDw@oD{A_Q{IaMcFcHyBgJaCsHuAmJoAqE]}DOc@CoLZoJd@qDb@wD`AiCrAaDxB}BhBqBvAoBbAwB|@wAn@uAp@iAn@mA|@mAfAo@n@{@z@sFxGqBvByBfBkBrAmCvAyB~@wBn@uAZeFz@}Dz@SFcDlAgBfAuCrBiHxF_GnD{DlBkEzAyLbDmEdBqEbCgE`D}FlG}B~B}FtEqA|@eAd@}@Zu@Ps@J{@FiD@sAC}F?cDLkDh@uCdA}FpCqFrB_Et@wCNqDSgDq@KCe@QgDiBwCqC_CkDoByD}G{OiCqEsCcD}DmC_EoAmEc@iEDkCb@yDfAoUzJeJrDgEnAuDb@}D?_Ea@_EeAgFqBaEqA_Dm@cDQeDJ_Er@}DvAaFbDiM~JcGjFuCjDeHbMaCrD_D~CgDrBiDdAwD\\}DMsDs@uDsAsL{FgAg@}PgIcSsJkEsBcCaAwAa@gCc@gBMyCA{CVkGdAaCb@{Db@eCFsBC}BQgB[yGwAyI{ByGeBgFqAmOwDsOuDeF{@{FOoCJsBTaCf@sBj@kChAeCvAyE~DkG`H_EnD{Av@kBr@cBXcBJgBCeBOcDm@iCm@iCm@sB[uBMwB?}BNsB`@sBp@mAl@kBlAcB`ByAhBaA~Ay@dBk@xA{@rCaD`Ms@`Cy@|BcAzBgAvBsClEqDlFcD~FqF~LyC|GeB`DoBvCoA~AuAzAgB`B}BdBgBdAiB~@qBx@uBl@cB`@gBZeCRiCLwB?}BGoCMgLy@{DMmDAcDN_DVwC`@aCf@{JlCwBf@}B^sBRwBJ_FRcGd@oAHmHZiCL_B@cBE{ASsA[aBo@iAs@aAs@WUy@}@aAsAiAqBmA{CsDyMkAsCqA{BkBqBgBoAwBcAkNaFaCk@wCa@}CIcDLyCb@mCt@gN`GeCt@wCd@y@B}AB{BOgDg@yCk@mGkAsC_@iDYwDJuDn@eC|@sBjAgBzAsArAyBvCyBhD_ApAcNnRsBdCkAfAuAjAiBbAeBr@sB`@yBXgCBiBEkVuAgAGiHc@kCGoCFiCXkB^wBx@eBbAyBlBwA|AgCnE{A~CaAzBgIpSkEpK}AfEwCbHgA`CwAnCmBdCmBpBaBbAmBv@iBb@iBRkBAaCUmBc@oBw@}Au@uIuEaDiBgGkDeAm@cM}GaCmAkCgAoDiA{Bc@cCYeZkB{Ow@wCYgCa@yCw@kCmA{BmAk_@oU{DcCcCoBgBuBu@qAyBiEi[mv@iJeUoIkSu@eBuAcDiC_FyCmFoCkEmBsCuBqCmCeDaCmCeDiDg~@}{@wC}BiBkAqCqAqBo@eB_@{BYaCKqC@aCPsC\\mb@|HaDd@cCPqC?oCQaCe@qBu@aCqAaCmByBeC{A{Bq@_AuGeLc@_A_FqIsBiDyA}BaB{BgBoBqBwBee@wc@{BkByBuAmC_AcCa@uD]kkAcHoVqAgDYsC_@sC{@_CkAoB{AkBqB{BcDoCuE}`@wo@yAaCyBsCwCeCsDiBgi@_WyCoAwEuAub@{KsCq@aEy@sEQcEDiDPeBFwADcKl@qMd@mCTq@DeFNcIf@kf@pHmCZaAFyD@eEa@oYwFiD}@{DmBsAgAoIyGwTgQmEgDqCsBaCqByB_BwB{@{Bi@mCMoCHiBXaCv@cCvA{BvBiBdCaCdEyB|C]d@_CdCiCxBsIdEeF~CgA`AoAxA{A~BgDfFgArAiAhAgCbBgA`@gAXyFz@mCh@gCz@qCfBqAfAmArAoCbEcDfF_FhHuBnBqAv@gCr@_BNeA@wBG{Fe@eDEuFZsSbCqDT{D?{AMuDk@sb@eH{Eu@_Ec@oBGoCF{AJoDXgBNiBDaBAyBUsA_@gAa@w@c@{AgAy@w@qAaB_BqCoCkG_EqJ_@{@sNs[oHmPiF}JkIyMYa@aBaCqHgJ{C{DoBkCuAcCuAkCm@oAu@wAmBeDoB{CkBiCqCaD}GyGsE}EoB_CgJ}Kc@g@sDyE}B}C{DcGeByBgB_CyBwBgCkB{C{AsC}@}IiBuDo@}Dq@aAQwBUwD[qDF_Dd@_Cv@gBdAqA~@kAjA_AbA_ArASZaA|A_AzAaBrCeIpNgAhB}B`E}BzDuFdKcBvCcBtCiBhCu@dA[^[ZgBlBYTcBpAaCzA_ChAsIdDcJnDgE|AkOdGaG|BiG`C}CfAuD`AyDf@_CJ_C@mBImBO_BS_@GePoCwC_@yAO}@Cy@?mBLaAJkDr@gEzAiDlAyBj@uBVqBDC?C?i@CgAEuAQuBg@qBy@aCwAeAi@qN{IQM}AgAoBgBw@cAk@s@_A_Bc@iA_@_AmB{EEMM]iBiFM[aEkKu@_B{AsCuAyBoDcFwEaFeDgDu@u@sEwEqGwGiDwDiMmOmAyAS_@MOW]]a@S[EE{@gAs@_AuE{F_ByBw@eAy@cAY_@Y]aAkAoBaCqC{CSSmCqCkAgAgBaB{BeBoAeAkA}@yByAiIaFiIgEqEiBgBs@iFuA_HgBICEAwBWE?e@GSCKAIAa@EkAMmCYuDm@kDi@uCc@eCa@MCoB[a@IoB]qB_@aBY}@Oe@IqAQmASm@GkAMs@G_AKo@I}AYeEwA}CoBuBcB_D_Da[s^iMsNmJaJwMqKuIgG_LyGk`Aye@qI{DuJwD{J_EuBw@u@UcAO{@S{@SmL_CuBW{Eg@{LuAyAMaGe@cE]mAOaGi@sGm@{Di@iDg@gDk@cCe@}Be@_GuAoIaC_H{BoJ_EeGuC}F{C{F}CcEgC}HuFyGkFcGoFoE}D_GaGqEgFkEoFgAsAqAaBqC_E{BgDoDqFmE_IaD}FeC}E}@sA}DaFkDcDqBwA}BkAmDwAwDwAiCiAiFsCmDkC_DoCsC}CiCwCuFeG}IoJuGgHoE}EcBsBmBkCqCkFeBeEsA_EsAkD_B_DsBsCiCgCcC}AkFwCuVeNsZwPmXoOmC_B_CeBcCeCuBaDqAqCqAiDqAwDmAgDqBgFsWol@_R{a@}AkDmIiRcG_NqEoKeAsB_DoFoDeF}CgDqDyCkDmCqDsByD}AcF_BoE}@uFk@qFYad@sAaY_A}Fs@sEgA{E{AkEoBcEeCsDwCiDeDwFmHs[}e@sGcKie@os@eIeLaFcGsFaGgFsEiF}DuByAk@]yG_E_D}AsNmG}EoB}IsDwMoF_[iMeNwFsMmFwKqEmDwA}CyAgIeEqEeCsEqCgEuCaFqD}EuD{FeF{EqEcFgFuFqG{GoIaIcLsLuRkGuIcBqBqByBqBqByBoBgCsBiCmBmD}B}CgBoCsA}EsBiGaC}HeDcD{A{MmIyGgFmFiFiG}GuGkHiGmGoHyF{GuDch@qVmPeIsAo@aLqFmB}@kOyHaEqBkEkC}AqAoAoAaDaEiCwEcA_C}@cCoB_HyBgIkJw]{CmKsC_IgE_I_FeHqD_EaA_Aw@q@k@g@gBwAsDgCkIgF",
"mode": "driving",
"maneuver": {
"bearing_after": 309,
"bearing_before": 295,
"location": [-9.154255, 38.81865],
"modifier": "slight left",
"type": "merge"
},
"ref": "A 8",
"weight": 4234.499999999999,
"duration": 4224.8,
"name": "Autoestrada do Oeste",
"distance": 121160.9
}, {
"distance": 91326.2,
"name": "",
"intersections": [{
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [26, 30, 208],
"location": [-8.889405, 39.732413]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.882599, 39.744291]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-8.840996, 39.81067]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [13, 188, 199],
"location": [-8.839245, 39.813746]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [25, 30, 205],
"location": [-8.830998, 39.849463]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.82955, 39.85172]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 210],
"location": [-8.808195, 39.892298]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 189, 198],
"location": [-8.806884, 39.895068]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 195],
"location": [-8.802742, 39.906278]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.800538, 39.910323]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 180, 345],
"location": [-8.769871, 39.941567]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-8.770208, 39.944352]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 315, 330],
"location": [-8.79401, 39.988]
}, {
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [150, 165, 345],
"location": [-8.796664, 39.991349]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-8.813021, 40.04032]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [18, 190, 196],
"location": [-8.812187, 40.044023]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [132, 310, 320],
"location": [-8.772957, 40.156529]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [135, 150, 315],
"location": [-8.776273, 40.159083]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 210],
"location": [-8.811847, 40.210847]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [39, 208, 216],
"location": [-8.809417, 40.213966]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 225],
"location": [-8.802672, 40.219124]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [47, 221, 229],
"location": [-8.799624, 40.221234]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [163, 341, 347],
"location": [-8.721085, 40.323565]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-8.722036, 40.32639]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 165, 345],
"location": [-8.707313, 40.409407]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [160, 167, 347],
"location": [-8.708655, 40.413467]
}],
"driving_side": "right",
"duration": 2667.4,
"ref": "A 17",
"maneuver": {
"bearing_after": 25,
"bearing_before": 28,
"location": [-8.889405, 39.732413],
"modifier": "slight left",
"type": "off ramp"
},
"destinations": "A 17: Aveiro, Leiria Norte, ",
"exits": "24A",
"weight": 2685.1999999999994,
"mode": "driving",
"geometry": "qfoqFxegu@wHiEiGkDkFiC_KoDgEwAuCeAcFwBgGwCiDwBeD{B{IoHqBoBoG{FoIyGsC_BkBaAeC}@_Cw@wEaAoGs@_HOoH?}BCaDQkEs@eGwAsEaBeFcCsCwBkFiDeCgB}GoEuFiCcFcBcD}@cDk@{Go@aIKwBLmJ?cH_@wD_@qDk@yEaAuEsA}HeDoGsDmEaDqC}Bgw@ku@kAiA}PmPiIwImHeIo^}_@cHmHsAsAUSeEqDYMsBuAsBgAyCsAq@[aBi@w@WwA[{FaA_HyAoMcD_KwCsOiFcNmEaEiAcF}@sGi@yGIsCJkDZwDp@_Dt@kLlDoGrA_CTkDLcC?mCOoCYaC_@aCo@cCy@_FyBiC_ByVeOgAk@[IuC{A_GkDQO_Am@oGmDaAk@yKsGcIkEiDwA_D_AyEgAkD]cEUoLFqUT_IAeDSaFk@yDs@iDeAsDwAcD_BuCiBqEkDmgAu~@{HaGcHsEsEyBeAe@}KcEeA]kLqC{IuBkXsGwDgAkDeAiHqC_AUmH}CkHmDmCuAun@{[cFyCuCyB{CyCsB}BsByCoBqDmBeE{AgEwAiFwCaMaAeDqAsDwA_DaBqCwBsC{B_CmCuBgKgGoBqAkBaBiBkBqBqCuBwDuFyKiBwCoBqCmBsBqCaCeBiA_CuAyB{@_D}@kCg@cD]eEEaAJ}ADiIl@aABaK|@eHh@mMdAeCXcCd@eD`AcAZmCpAgCbBuDdCwCtAgDbAuCl@yBZwIv@sGdAeFlAaEnAyGxCuDtBcFlDwHxG}FxE}D|BmDtAuCp@aC`@uCTeL\\}DZwF~@sCt@wDtAmD`BoDzBuB`BmC`CaClCuBnCsAvBuBpDaCfFkDlHyBrDaCfDeC|C]h@cBdBiEnDoEnCaC`AoEhBsDlA_JrAwK`@uODqCDiGv@}Dr@{G|BaJ|EyIxGoLtJwVnSeZlVaBhAoFxCoFlBiIfB{Hv@iHToQo@se@DmLC}BCoEA}I[m@@s@EyCWyBYyDm@sDaAcEqAeE_BsB_AiHqEiHoFcFaFgFiGoI_J_JoIcLiJ_MoIuHoFqHcGqIgJeIuKcEyG_E{HsEqK_EwKcIqSqM}VuRmZaHsIuGaImLaLqF{EuFeEiVkRkNqNwEeFcs@g~@wOsSqEyE}EoD}E{CeHiAyGe@{DXqDj@iFdBoE~BqEdDw@j@qA`Aq@d@iEbCqEpBqEt@iDRyFOiF}@}E{AyOgFiB_@cRcGyFgB{Fu@sFC_EZuDv@wDxAqDtBiBhB_i@bk@yC|C}A~A{DhEcFjGeFxHqExHaGhL_JnUwD~IkGpMeBdDcCbE}EdIg@|@}JpNy@hA]ZgGrHgBvBaJdJeD|CwBnBaFhFcDjD_DlD{BpCeHjJyBdD{FlJ{EbIgErIeCnFqFzLkDpHuDvHaGpKmC~DgCrD}FjHuEnF}ExEwFvE}GbFyFpDwLlGiGzBmFfBmF|AsDx@qCd@iGhAsHj@mCTaHTsGDkGKwH[gHq@cImA_GmAoHyBeHiDOGm@UcC{AyGaFgA}@}@}@MMgFsFqA_ByCiE{A_CuEqH_GuJ{@mAgIyMa@y@yH}L_E{GmFqIwD_GcE}FuBkCaCmCmCsCqDeDkDgC{DiCyDyBaEoBeGaCsFaBgIiBmKcBsMgBaI{AcD}@yCgAgCqAsCoBiB{AqBuBkCkD_BmC_BgDgA{Cy@cCw@cDy@kE}@iHsAsLi@wE}@sF}@yDwAoEcByDaBmCiA_BeAoAqBoBiBwAaBaAeB}@cEsAuCs@eEo@sEk@uMeB}NiBoMkBeGo@oHeAiEs@{E_AaKmCoFmB}BeAcEsBaFyCeFuD}CeCyCwCqCwCoB}BsEeGqKsOqCaEsDuE}CiDyBoBaEaDiEmCcFaCeH_CcIaBmNcCoD_AgCy@iD{AkBaAcDwBqBaBkCeCqB{B_DgEgGeJkBoCuf@mu@wBsCqCaDyCkCeD{BmEyBmE{AaE{@wEc@uEIiDHsD\\uEx@aFxAcCx@{DhAqCh@aBNoDRyC@yCEaAIeC[wCm@ug@qNcE_AkDg@}DUsCAgHR{DPsDDwDGqD]_Eu@mCw@_DoAyC}A_C_BqDaDoCaDyByCaCmEiBgEiCgHaCeH_BiEmAiCsC_FyBsC}B{BaBmAuBuA{BgAkBw@oCy@_Ca@yCYuCIgDHsCVwCf@eDbAuCnAaCrAgD|BoHjF_DlByBfAgCbAkCz@{A\\uDt@sK|AuE|@_EhAmDpA{CxA}CbBeMvHkCxAmD`B}ChAiDbA{Cn@qDf@yBNmCPgDDeDGuCOmCY}B_@uCm@gD_AeC}@gCgA}BmAqFkDwNoKiBoAgC{AcD_BuB{@_EqA{Bi@gDk@eGm@eACgDGqA@yA@cETuBTaB\\gFdA_KjCaB\\iGpA{C`@uCRkFLaBEkAGiBIyD]}Do@}D{@um@uNoD_AkNaDoFmAqAWuCs@iKmB_Dc@kDo@"
}, {
"intersections": [{
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [10, 17, 192],
"location": [-8.703223, 40.438538]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [10, 189, 193],
"location": [-8.70144, 40.445583]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 195],
"location": [-8.699691, 40.452671]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 195, 210],
"location": [-8.698736, 40.455167]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-8.676243, 40.499779]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [45, 195, 225],
"location": [-8.674515, 40.501883]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [42, 48, 223],
"location": [-8.669274, 40.506406]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [41, 219, 222],
"location": [-8.665448, 40.50964]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [30, 210],
"location": [-8.65673, 40.517688]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 225],
"location": [-8.634493, 40.536923]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [60, 225, 240],
"location": [-8.631757, 40.538376]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [15, 195],
"location": [-8.618195, 40.551932]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [15, 195],
"location": [-8.618058, 40.55235]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 195],
"location": [-8.612679, 40.569409]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.611447, 40.571747]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [30, 210],
"location": [-8.605477, 40.578978]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-8.603482, 40.581211]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [30, 210],
"location": [-8.600707, 40.584399]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [30, 210],
"location": [-8.599523, 40.585798]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [45, 210],
"location": [-8.59921, 40.586154]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [30, 210, 225],
"location": [-8.59903, 40.586332]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 315, 345],
"location": [-8.596002, 40.622121]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [151, 156, 332],
"location": [-8.598032, 40.624401]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 195],
"location": [-8.600745, 40.641112]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 45, 210],
"location": [-8.59891, 40.643955]
}],
"driving_side": "right",
"geometry": "{cyuFbzbt@wEo@wOeCgOeCgCg@_Gy@uDg@aHeAsHoAgCg@uF}@i@GgB]cCm@uCaAgAg@wBaAwDsB_Am@sAeAkA_AqBkB}@_AoBsBmDiEaDwDcDgD_Ay@wBeB}AeAuCgBkCqAoDuAeDaA}Co@{Cc@kCUuBKqDAgPRkCCqCKyCWaEo@yCs@iCy@sCiA{CyAcEkCu_@_X}CsBiFqCoD}AmFgByk@uNqC}@_DkAgEqBoDoBm@[qDeC{CiCg@k@mCoCwB}BqGkIqJ_MUWoRcV_GcHkOkRsJyLgCmC_DgCaDoBcDyAmCy@eJsBcDcAkCmAcDqByDgDsA_BcBaCeGuJi]{k@kSc]oEeI{FmLg@_AoEiKk@wAwEgLsJqUKUyBmF_BsDqBkDeCkDwCwCaCkBgDqBmDwAgD}@sYaGsA[cr@yNqH}A}ViFyHaBeKoCm@QqDqAgEsBk@]}BoAeCcBoAy@aG}EOMwTyQgCuB_BsAs@m@iHmGkIcHoAeAqC{BoAcAwGmFeA}@c@c@sC_CqCuBoA{@mC{AcDyAcCw@yBi@sCg@sCYwCMyGI_DKsBO}BY{Bc@yBk@wBu@uB_AsBgAqBoAaCkByBwBcBiB}AuByBeD_JuNkBsCaBuB}B}BoB_ByBmA}BaA_Cq@yBa@_CU{CG}CL{C`@wCv@yBz@qBhAaCbByBvBsBhCkBvCiCrEoL`T{EpIkClE{B`DW^kAvAy@v@kB|AsCnBi@VwHzEcHlEsMbI{BdAyBx@}Bl@}B`@_CTaCHiCCaCO}B[_Ce@yD_A_Ba@eIoB_KuCk@Qe@OmCyAyIsF}@c@gF}CkEgC",
"mode": "driving",
"maneuver": {
"bearing_after": 8,
"bearing_before": 11,
"location": [-8.703223, 40.438538],
"modifier": "slight left",
"type": "fork"
},
"ref": "A 17",
"weight": 821.5000000000001,
"duration": 820.3000000000002,
"name": "A 17 (Via Verde)",
"distance": 27013.6
}, {
"intersections": [{
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 180, 210],
"location": [-8.597259, 40.64645]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 195, 210],
"location": [-8.596127, 40.64835]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [8, 18, 190],
"location": [-8.592257, 40.658888]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [18, 190, 196],
"location": [-8.591155, 40.663328]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["none"]
}, {
"valid": true,
"indications": ["none"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 225],
"location": [-8.559719, 40.689421]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [75, 240, 255],
"location": [-8.556792, 40.690679]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [75, 90, 255],
"location": [-8.555978, 40.690885]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [102, 270, 275],
"location": [-8.551636, 40.691116]
}],
"driving_side": "right",
"geometry": "iwawFzcns@{H{D_Ae@}GqCeFoB}EyA{CaAcG}AyEiAgCi@uDq@aLcBmGs@oFu@gEs@mBe@cAWmEyAcDsAgBaAwByAeCuB_CaC}AoByAuBwAcCwAsCqAaDgBqFiAgEgB{H{CqO_AaEeAiD{@yBcAmBgBiCsB{BgFuE_IgHuD_DgB{AyHaHqBeB{BkBeSgQqFuEeHyGqBuBqCsDuA{BqA_CSYwAgDy@aCiAkEKy@i@aDWwBWyDK{C?_ELuETmCj@mEn@oDVkAd@iBhAuDbAoCpE_K",
"mode": "driving",
"maneuver": {
"bearing_after": 23,
"bearing_before": 25,
"location": [-8.597259, 40.64645],
"modifier": "slight right",
"type": "merge"
},
"ref": "A 25",
"weight": 261.1,
"duration": 260.6,
"name": "",
"distance": 7395.4
}, {
"distance": 1719.6,
"name": "",
"ref": "A 25",
"maneuver": {
"bearing_after": 123,
"bearing_before": 125,
"location": [-8.544561, 40.68848],
"modifier": "slight left",
"type": "fork"
},
"destinations": "A 25, A 25, A 1: Vilar Formoso, Viseu, Lisboa",
"weight": 68.69999999999999,
"mode": "driving",
"geometry": "_~iwFnzcs@x@qBbMoV~@_B|DcIzG_NpB_Fr@mC`@uBZ}CJmC?uCM}Ba@iDi@}Bw@}Bs@_B}@wA",
"intersections": [{
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [120, 135, 300],
"location": [-8.544561, 40.68848]
}, {
"classes": ["toll", "motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [135, 300, 315],
"location": [-8.539745, 40.685606]
}],
"duration": 62.5,
"driving_side": "right"
}, {
"distance": 1016.7,
"name": "",
"maneuver": {
"bearing_after": 59,
"bearing_before": 46,
"location": [-8.527399, 40.68334],
"modifier": "slight right",
"type": "off ramp"
},
"destinations": "A 1: Lisboa, Porto",
"exits": "7",
"intersections": [{
"classes": ["motorway"],
"lanes": [{
"valid": false,
"indications": ["none"]
}, {
"valid": false,
"indications": ["none"]
}, {
"valid": true,
"indications": ["slight right"]
}],
"out": 1,
"in": 2,
"entry": [true, true, false],
"bearings": [45, 60, 225],
"location": [-8.527399, 40.68334]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 165, 195],
"location": [-8.524981, 40.687816]
}, {
"classes": ["motorway"],
"out": 1,
"in": 6,
"entry": [true, true, true, true, true, true, false],
"bearings": [0, 6, 13, 20, 26, 31, 194],
"location": [-8.524833, 40.688269]
}, {
"classes": ["motorway"],
"out": 0,
"in": 6,
"entry": [true, true, false, false, false, false, false, false],
"bearings": [15, 87, 178, 184, 191, 198, 205, 211],
"location": [-8.524292, 40.689813]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 150, 195],
"location": [-8.524137, 40.690258]
}],
"duration": 72.5,
"driving_side": "right",
"weight": 73,
"mode": "driving",
"geometry": "{}hwFfo`s@M]qAoBe@cAU_Ay@}FOi@Wk@_@Ye@Ea@F]Ti@f@cB`Bs@j@e@Nm@@_BWeCk@{@Q]KkAIwA[mA[aAi@yA]iAY"
}, {
"intersections": [{
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 195],
"location": [-8.524006, 40.690632]
}],
"driving_side": "right",
"geometry": "mkjwF`z_s@kCq@YM[[Y]Oa@Ie@QaB_@gDQwAWw@W[YQ[C_@AYH]POTOVOTU`@Wb@c@v@U`@UXWVYV[Ti@Z_ATg@DSN",
"mode": "driving",
"maneuver": {
"bearing_after": 14,
"bearing_before": 14,
"location": [-8.524006, 40.690632],
"modifier": "slight left",
"type": "fork"
},
"weight": 59.3,
"duration": 51.3,
"name": "",
"distance": 746.3
}, {
"intersections": [{
"classes": ["toll", "motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [0, 150, 180],
"location": [-8.52285, 40.695242]
}, {
"classes": ["toll", "motorway"],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [150, 330, 345],
"location": [-8.533993, 40.752499]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [148, 154, 334],
"location": [-8.536699, 40.756645]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [15, 165, 345],
"location": [-8.543644, 40.778839]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [135, 165, 345],
"location": [-8.544518, 40.781925]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 180, 345],
"location": [-8.567884, 40.925292]
}, {
"classes": ["toll", "motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [150, 165, 345],
"location": [-8.57003, 40.93133]
}, {
"classes": ["toll", "motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [7, 181, 359],
"location": [-8.582249, 41.006245]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [15, 195],
"location": [-8.58118, 41.017833]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 180, 195],
"location": [-8.580923, 41.018696]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [163, 170, 347],
"location": [-8.571305, 41.049141]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [0, 165, 345],
"location": [-8.581529, 41.06675]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight", "right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 45, 195],
"location": [-8.580962, 41.072651]
}],
"driving_side": "right",
"geometry": "ghkwFxr_s@mFVmEJiG?mEMeIg@wKoAaFo@}Ek@{D_@mEWmEOuEAsOd@sN`AeNj@wKFqLUqQWqNNkJb@qL`AqIfAuLrB_MzCsMbEwIfDmF`C{LhGkLfHiEzCmCpB{LxIcJvF}BvAmHbEqK`Ga@T}IdFwKfGgQvJoEbCiE`C{DfBgCz@aARe@JyDb@aCFiB?aDMiIa@eHSkJCyCF_ADwBDmDPkCZ}Dl@cHnAgCp@aDv@qFhBiFxByFfCeH`DoGfCcGjBgGlAiHv@cIRcKUk\\qBe`@mCwGOwKFyKh@iIjAyHxAkJ~Bu]|McKbDsJ|BaHnAsJhAgLj@gMh@sRDaM^mI|@iHdB{OlFmGjAgG\\{DGqEi@kFsAcMeEcHsAiGSsFXuDj@yBn@mNvFmPjFeLnCaLhBsNpA}Or@}Rj@kL^aGb@sGtAwFfCeFdEqCfDqFvHoDvDkExCeFzBqI~AoIr@yJNsHWcIq@cIqAiJsAaJkAeJQyKXqSfB}Ip@iERgDHwIDcGE_GKsCIoCGaHOwGCsL\\uGj@]JYDmDf@gDl@cDt@mD~@sA^cKnD{LpFaHbDmHlCcEpAaEbAiInAoIr@aKJwCKiFk@qG}AwEuAoBc@qB[qBSqBKwLM}DWmEs@uBm@kBq@eE{BwDwCiCiCmC{BaC_B_CeAkEuAG?sB]aBQiBGeBA}BJwBVsB`@uBn@oBv@mBbAyAbAmA~@gDbDoAlAuAlA{AdAcBbAwHdDoDlBeF~DgFxEmExByF~AgJhAwB`@sBj@sBv@qBbAcFfDaD~CiDfFuElIkE|F_GfFqFjCyEjAyEVeGC{FeA{EgBiHqCqGgA_Jk@yCOsC]yGaAeIcAq@GkF]eDEcFDqBHsBJuHn@sHd@gBDaCG}C]eDg@qCy@i@Qc@MqC{@u@UuAc@kDo@mDs@oAUa@IiAUmCyA_DeCcBgBsBmCiB{CoCmEmBkC_CeCoHeGaCmB_Ai@eAo@aDsAwBo@uB_@{BUaDImCBcGb@iBBkBEkCQmB[yEyAwEyB}EgBgFcAaFQkFVwDn@yJtBmEn@yFL}CDsCVcBV{AX}Ah@iBv@aBbAm@Zu@h@_BxAuD`E}DjGaEhEmEbDgD|AgEdAsHjA_JlBsOlF_Bh@iFnB{DrAuAd@iBb@sATiFRaB?kDUsDk@kBe@eEwAmEcB",
"mode": "driving",
"maneuver": {
"bearing_after": 354,
"bearing_before": 327,
"location": [-8.52285, 40.695242],
"modifier": "slight left",
"type": "merge"
},
"ref": "A 1",
"weight": 1324.4999999999998,
"duration": 1323.6,
"name": "Autoestrada do Norte",
"distance": 44161.4
}, {
"intersections": [{
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [15, 30, 195],
"location": [-8.580459, 41.073682]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [30, 195, 210],
"location": [-8.577354, 41.077717]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [5, 179, 356],
"location": [-8.575316, 41.083207]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-8.575718, 41.086893]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [0, 15, 180],
"location": [-8.575707, 41.08843]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [15, 180, 195],
"location": [-8.574438, 41.091607]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}],
"out": 0,
"in": 2,
"entry": [true, true, false],
"bearings": [30, 60, 210],
"location": [-8.571976, 41.098632]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false, false],
"bearings": [19, 197, 200],
"location": [-8.566281, 41.104786]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 315, 330],
"location": [-8.578053, 41.135428]
}],
"driving_side": "right",
"geometry": "oeuyFzzjs@i@MWOoDyBqG_FkByAwD{CcBsA}DaCiAg@gEwAgB]oDa@wDCq@@S@mADqShAcADeB@iBG_@AaAKe@GsAU{CaA_E_BaA_@a@QeE{Am@S}E}A{Dq@aK{AwCk@}C_Au@c@{@g@{BiBmB}BgHyKiAwAmAoAoB{Ay@i@eDsAyCgAiBq@}@[o@SWI_@KwAWeAKmAIoA?oAFaAJ}@N[FwBr@q@Z_CtAqGzFiCxBqCfCuBhBqC`CuBhBo@h@q@d@kAj@iAd@m@PWHYFgAPuAJgBL_CL_CLq@Dw@HwCd@}RjEiGpAu@ReDz@aBj@iBv@qGlCqAh@k@Ri@LsAV]D[Bg@FcBJwCRyCRUBW@SBS@SDUBQBODQDUDUHUFQFQHMFOFSJULMHOJOJMJOJMLOLSPKL_@`@KLKNMPY`@U`@S`@cApBMTKRKPKNMRORKLKLMNKLKJOLOLQLQLOJQHOHQHUJUHUFIB",
"mode": "driving",
"maneuver": {
"bearing_after": 12,
"bearing_before": 19,
"location": [-8.580459, 41.073682],
"modifier": "slight left",
"type": "fork"
},
"ref": "IP 1; A 20",
"weight": 287.79999999999995,
"duration": 287.2,
"name": "",
"distance": 7769.9
}, {
"intersections": [{
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [165, 345],
"location": [-8.580551, 41.137753]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 150, 180],
"location": [-8.580703, 41.138688]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 180],
"location": [-8.580979, 41.145269]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [15, 195],
"location": [-8.580788, 41.146635]
}, {
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [30, 210],
"location": [-8.580502, 41.147155]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [23, 209, 213],
"location": [-8.579148, 41.148683]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [6, 182, 355],
"location": [-8.578781, 41.149836]
}, {
"classes": ["motorway"],
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [180, 345],
"location": [-8.578815, 41.15013]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight", "slight right"]
}],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [120, 135, 315],
"location": [-8.580176, 41.152076]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["slight right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 315, 330],
"location": [-8.580662, 41.152473]
}, {
"classes": ["motorway"],
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [0, 165, 180],
"location": [-8.582997, 41.156772]
}],
"driving_side": "right",
"geometry": "}uazFl{js@KBMBIBSBOBQBU@SBw@?iA@}D@gU\\sITuB?iAGqA]s@Ys@_@_@[_FkEo@e@}@a@_AWg@Ia@C_@Ag@DQ@k@Hk@He@Nc@Rs@b@q@j@}BfCu@`AW\\uBlCo@p@aBxAsA|@y@`@}Aj@qAXmAPwAFoBEIAu@Ew@OsBc@qEsAcJiCyEuAaAM",
"mode": "driving",
"maneuver": {
"bearing_after": 344,
"bearing_before": 343,
"location": [-8.580551, 41.137753],
"modifier": "straight",
"type": "new name"
},
"ref": "IP1; A20",
"weight": 131.6,
"duration": 131.1,
"name": "",
"distance": 2894.4
}, {
"intersections": [{
"classes": ["motorway"],
"out": 0,
"in": 1,
"entry": [true, false],
"bearings": [0, 195],
"location": [-8.58109, 41.162202]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [true, false, true],
"bearings": [15, 180, 345],
"location": [-8.581058, 41.162607]
}, {
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [150, 165, 330],
"location": [-8.582343, 41.165323]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [120, 300, 315],
"location": [-8.586669, 41.166966]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [120, 300, 345],
"location": [-8.588505, 41.167963]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [105, 135, 315],
"location": [-8.589606, 41.168596]
}, {
"classes": ["motorway"],
"lanes": [{
"valid": true,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["right"]
}],
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [135, 300, 315],
"location": [-8.593887, 41.171353]
}, {
"classes": ["motorway"],
"out": 2,
"in": 1,
"entry": [false, false, true],
"bearings": [70, 82, 254],
"location": [-8.597097, 41.171784]
}],
"driving_side": "right",
"geometry": "wnfzFx~js@m@Cc@Ae@Fk@H_@JwAh@sIvD[P]T[Vy@`A_@n@[r@Sh@Qr@Mr@Gh@Eh@EpBAf@GvAOjA[vA}@xBy@dBmAnCkBxDS`@y@~Ai@fAaBzCkBdDmAtBwBpDm@dAc@dA[v@U|@M~@E^A`@AbA@`AD`ADz@H~@VlB^bDTjBR`CBp@BhA?n@A|@",
"mode": "driving",
"maneuver": {
"bearing_after": 2,
"bearing_before": 8,
"location": [-8.58109, 41.162202],
"modifier": "straight",
"type": "new name"
},
"ref": "IC 23; A 20",
"weight": 138.60000000000002,
"duration": 131.2,
"name": "",
"distance": 2177.9
}, {
"intersections": [{
"classes": ["motorway"],
"lanes": [{
"valid": false,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight"]
}, {
"valid": false,
"indications": ["straight"]
}, {
"valid": true,
"indications": ["right"]
}],
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [90, 270, 285],
"location": [-8.600832, 41.171263]
}],
"driving_side": "right",
"geometry": "kghzFdzns@YxAQ`AQt@Kd@Ip@KnAGjA",
"mode": "driving",
"destinations": "Porto, Paranhos, Hospital",
"maneuver": {
"bearing_after": 291,
"bearing_before": 271,
"location": [-8.600832, 41.171263],
"modifier": "slight right",
"type": "off ramp"
},
"weight": 13.1,
"duration": 12.9,
"name": "",
"distance": 199.7
}, {
"intersections": [{
"classes": ["motorway"],
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [105, 285, 300],
"location": [-8.603104, 41.171781]
}, {
"out": 0,
"in": 2,
"entry": [true, false, false],
"bearings": [120, 285, 330],
"location": [-8.604757, 41.172179]
}],
"driving_side": "right",
"geometry": "sjhzFjhos@MZSd@UXaAx@a@\\]\\Q\\G`@?XBTLXNNRFLBPCLGLOPOVw@DGFGJEHEDAF?D?F@",
"mode": "driving",
"destinations": "Porto",
"maneuver": {
"bearing_after": 302,
"bearing_before": 278,
"location": [-8.603104, 41.171781],
"modifier": "slight right",
"type": "fork"
},
"weight": 34.9,
"duration": 34.2,
"name": "",
"distance": 339.3
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true],
"bearings": [15, 210],
"location": [-8.604339, 41.171743]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true, false],
"bearings": [30, 75, 210, 300],
"location": [-8.604937, 41.170977]
}, {
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [0, 180, 315],
"location": [-8.606506, 41.168022]
}],
"driving_side": "right",
"geometry": "kjhzFbpos@fCfBNN~AjA|AhAf@^hAz@LHp@f@XHRBb@BlCBjA?pEDZ@",
"mode": "driving",
"maneuver": {
"bearing_after": 209,
"bearing_before": 192,
"location": [-8.604339, 41.171743],
"modifier": "straight",
"type": "new name"
},
"weight": 133.9,
"duration": 106.19999999999999,
"name": "Rua de Faria Guimarães",
"distance": 637
}, {
"intersections": [{
"out": 3,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 150, 180, 270],
"location": [-8.606551, 41.16645]
}],
"driving_side": "right",
"geometry": "iigzF|}os@AXEdA",
"mode": "driving",
"maneuver": {
"bearing_after": 275,
"bearing_before": 181,
"location": [-8.606551, 41.16645],
"modifier": "right",
"type": "turn"
},
"weight": 7.9,
"duration": 7.6,
"name": "Rua do Covelo",
"distance": 39.9
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [90, 270, 285],
"location": [-8.607025, 41.16649]
}],
"driving_side": "right",
"geometry": "qigzF|`ps@@H?J?NAXANBDD@jCJDBDB@HC~C",
"mode": "driving",
"maneuver": {
"bearing_after": 262,
"bearing_before": 275,
"location": [-8.607025, 41.16649],
"modifier": "slight left",
"type": "fork"
},
"weight": 71.4,
"duration": 39.3,
"name": "Rua Doutor Adriano de Paiva",
"distance": 197.8
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [90, 180, 270],
"location": [-8.608421, 41.165701]
}],
"driving_side": "right",
"geometry": "sdgzFrips@zFN",
"mode": "driving",
"maneuver": {
"bearing_after": 181,
"bearing_before": 271,
"location": [-8.608421, 41.165701],
"modifier": "left",
"type": "turn"
},
"weight": 42.2,
"duration": 42.1,
"name": "Rua Joaquim Kopke",
"distance": 140.2
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, true, true, false],
"bearings": [0, 90, 180, 270],
"location": [-8.608501, 41.164442]
}],
"driving_side": "right",
"geometry": "w|fzFbjps@L?X@N@JBlBl@BBz@VFBlCx@",
"mode": "driving",
"maneuver": {
"bearing_after": 180,
"bearing_before": 181,
"location": [-8.608501, 41.164442],
"modifier": "straight",
"type": "new name"
},
"weight": 77.4,
"duration": 65.1,
"name": "Rua Cantor Zeca Afonso",
"distance": 227.8
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [15, 105, 195, 285],
"location": [-8.609223, 41.162476]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true, false],
"bearings": [15, 105, 195, 285],
"location": [-8.609597, 41.161466]
}],
"driving_side": "right",
"geometry": "opfzFrnps@tDbARFTBpBp@dAN",
"mode": "driving",
"maneuver": {
"bearing_after": 195,
"bearing_before": 196,
"location": [-8.609223, 41.162476],
"modifier": "straight",
"type": "new name"
},
"weight": 73.19999999999999,
"duration": 60.7,
"name": "Rua de São Brás",
"distance": 234.8
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, false, true, true, true],
"bearings": [15, 105, 165, 225, 285],
"location": [-8.609951, 41.160441]
}, {
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [0, 180, 285],
"location": [-8.609944, 41.158732]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [0, 60, 180],
"location": [-8.609979, 41.15748]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true, false],
"bearings": [0, 75, 180, 255],
"location": [-8.609984, 41.157254]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 45, 180, 225],
"location": [-8.610008, 41.155675]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 90, 180, 270],
"location": [-8.610018, 41.155197]
}, {
"out": 2,
"in": 0,
"entry": [false, true, true],
"bearings": [0, 165, 180],
"location": [-8.610043, 41.15433]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 90, 180, 270],
"location": [-8.610057, 41.15362]
}, {
"out": 1,
"in": 0,
"entry": [false, true, false],
"bearings": [0, 180, 270],
"location": [-8.610057, 41.153503]
}, {
"out": 2,
"in": 0,
"entry": [false, false, true],
"bearings": [1, 174, 187],
"location": [-8.61004, 41.152263]
}],
"driving_side": "right",
"geometry": "wcfzFdsps@VEnHBL?xFF\\?N?xHD~A@lDBvA@Z?X@V?z@?HEpD@j@FP@RH",
"mode": "driving",
"maneuver": {
"bearing_after": 168,
"bearing_before": 188,
"location": [-8.609951, 41.160441],
"modifier": "straight",
"type": "turn"
},
"weight": 183,
"duration": 182.3,
"name": "Rua de Camões",
"distance": 957.7
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, false, true, false],
"bearings": [0, 120, 210, 315],
"location": [-8.610143, 41.151849]
}],
"driving_side": "right",
"geometry": "andzFjtps@~AhAr@f@\\VJFNBNAXA",
"mode": "driving",
"maneuver": {
"bearing_after": 209,
"bearing_before": 187,
"location": [-8.610143, 41.151849],
"modifier": "slight right",
"type": "new name"
},
"weight": 23.2,
"duration": 23,
"name": "Rua Heróis e Mártires de Angola",
"distance": 154.2
}, {
"intersections": [{
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [0, 180, 225],
"location": [-8.610867, 41.15061]
}, {
"out": 1,
"in": 0,
"entry": [false, true, true],
"bearings": [0, 180, 225],
"location": [-8.611213, 41.149423]
}],
"driving_side": "right",
"geometry": "ifdzF|xps@VCH?H@JBv@j@JFTLJBHBH?z@GXA",
"mode": "driving",
"maneuver": {
"bearing_after": 177,
"bearing_before": 174,
"location": [-8.610867, 41.15061],
"modifier": "straight",
"type": "new name"
},
"weight": 94.6,
"duration": 35.9,
"name": "Rua do Clube dos Fenianos",
"distance": 155.3
}, {
"intersections": [{
"out": 2,
"in": 0,
"entry": [false, false, true, true],
"bearings": [0, 30, 105, 180],
"location": [-8.6112, 41.149287]
}],
"driving_side": "right",
"geometry": "a~czF~zps@@K@UDg@",
"mode": "driving",
"maneuver": {
"bearing_after": 98,
"bearing_before": 175,
"location": [-8.6112, 41.149287],
"modifier": "left",
"type": "turn"
},
"weight": 22.5,
"duration": 22.5,
"name": "Praça General Humberto Delgado",
"distance": 31.3
}, {
"intersections": [{
"in": 0,
"entry": [true],
"bearings": [279],
"location": [-8.610831, 41.149244]
}],
"driving_side": "right",
"geometry": "w}czFtxps@",
"mode": "driving",
"maneuver": {
"bearing_after": 0,
"bearing_before": 99,
"location": [-8.610831, 41.149244],
"modifier": "left",
"type": "arrive"
},
"weight": 0,
"duration": 0,
"name": "Praça General Humberto Delgado",
"distance": 0
}],
"distance": 327532.6
}],
"weight_name": "routability",
"weight": 12713.5,
"duration": 12156.9,
"distance": 327532.6
}],
"waypoints": [{
"hint": "I2cEhP___38FAAAAEgAAAOkAAABMAQAAegMZQI_djkCT1yVCszGVQgUAAAAJAAAAcQAAAHQAAABGpwAAdpV0_-ejTgIwlnT_J6JOAgQAjwQP8Zdx",
"distance": 52.295934687027824,
"name": "Praça do Comércio",
"location": [-9.136778, 38.708199]
}, {
"hint": "SO3chv___394AAAAVAAAAEQAAAAXAAAA_JSGQbJfiUF17BZBkpgVQXgAAAAqAAAARAAAAAwAAABGpwAA8Zt8_zzjcwIcnHz_C-RzAgEALwYP8Zdx",
"distance": 23.2701924192471,
"name": "Praça General Humberto Delgado",
"location": [-8.610831, 41.149244]
}],
"code": "Ok"
}
// fetch the following url to get a route between two points with the content as the json above
const url = 'https://router.project-osrm.org/route/v1/driving/-9.1365919,38.7077507;-8.6107884,41.1494512?overview=false&alternatives=true&steps=true&hints=;'
// choose a route from js and get the route points
const result =
// get the first route
[json.routes[0]]
.flatMap(
r => r.legs.flatMap(
l => l.steps.flatMap(
s => [s.maneuver.location].concat(s.intersections.map(i => i.location)
)
)
)
)
// do a line string
const geodata = {
type: "FeatureCollection",
features: [{
type: 'Feature',
geometry: {
"type": "LineString",
"coordinates": result
}
}]
}
var d3g = require('d3-geo')
var d3 = require('d3')
const D3Node = require('d3-node')
const d3n = new D3Node()
// set up proper size
var margin = {top: 20, right: 10, bottom: 20, left: 10};
var width = 500 - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;
//Create an SVG
var svg = d3n.createSVG(width, height)
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
//Map projection
var projection = d3g.geoMercator()
.scale(1)
.fitSize([width, height], geodata)
//Generate paths based on projection
var path = d3g.geoPath()
.projection(projection)
//Group for the map features
var features = svg.append("g")
.attr("class","features");
//Create a path for each map feature in the data
features.selectAll("path")
.data(geodata.features)
.enter()
.append("path")
.attr("d",path)
.attr("stroke", "red")
.attr("stroke-width", 2)
.attr("fill", "none");
var first = {name: 'porto', lnglat: result[0]},
last = {name: 'split', lnglat: result[result.length -1]}
// markers
svg.selectAll("circle")
.data([first, last]).enter()
.append("circle")
.attr("cx", function (d) { return projection(d.lnglat)[0]; })
.attr("cy", function (d) { return projection(d.lnglat)[1]; })
.attr("r", "4px")
.attr("fill", "red")
// labels
svg.selectAll("text")
.data([first, last])
.enter()
.append("text")
.text(function(d) {return d.name})
// TODO x/y delta should take into account route orientation (N-S, W-E, etc)
.attr("x", function(d) {return projection(d.lnglat)[0] + (d == first ? 5 : d.name.length *-10);})
.attr("y", function(d) {return projection(d.lnglat)[1] + (d == first ? 15 : 25);})
.attr("class","labels");
require('fs').writeFileSync('out.svg', d3n.svgString())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment