Closed Brammos closed 2 years ago
The data in the route provided above is unusual. Each step in the leg will usually have one or more intersections with each intersection having a geometry_index
. The value could be null but if it isn't the values should be in ascending order. In the route provided there are several intersections with a geometry_index
of 0 which I've never seen before. Looking at the very last intersection which is the arrival it also has a geometry_index
of 0 which is incorrect since the destination isn't at the last intersection of the route.
@Brammos may I ask how this route was generated? Based on the code you provided it doesn't appear to have been generated by the navigation SDK given that you're manually creating RouteOptions
. Any insight you can provide would be helpful.
Here is a comparison between the route provided above and a route generated by the navigation SDK using the same coordinates above. This is the arrival element in the route JSON. Notice the value for the geometry_index
.
{
"distance": 0.0,
"duration": 0.0,
"geometry": "kisqbB_eabI",
"name": "Cantonlaan",
"mode": "driving",
"maneuver": {
"location": [
5.29315,
52.20983
],
"bearing_before": 246.0,
"bearing_after": 0.0,
"instruction": "Bestemming bereikt",
"type": "arrive"
},
"driving_side": "right",
"weight": 0.0,
"intersections": [
{
"location": [
5.29315,
52.20983
],
"bearings": [
246
],
"entry": [
true
],
"in": 0,
"geometry_index": 0
}
{
"distance": 0.0,
"duration": 0.0,
"duration_typical": 0.0,
"speedLimitUnit": "km/h",
"speedLimitSign": "vienna",
"geometry": "ydmgbBwl~pI??",
"name": "",
"ref": "A12; E 35",
"mode": "driving",
"maneuver": {
"location": [
5.5375,
52.042845
],
"bearing_before": 93.0,
"bearing_after": 0.0,
"instruction": "You have arrived at your destination.",
"type": "arrive"
},
"voiceInstructions": [],
"bannerInstructions": [],
"driving_side": "right",
"weight": 0.0,
"intersections": [
{
"location": [
5.5375,
52.042845
],
"bearings": [
273
],
"entry": [
true
],
"in": 0,
"geometry_index": 220,
"admin_index": 0
}
]
}
@cafesilencio So we actually use our own output to generate a route. The output is as following:
{"routeIndex":"0","distance":9639.716,"duration":807.88585,"geometry":"gcbrbBmnrzHe@i_@Si_@bYvK`ZfAbQKbQKfDGhBcXzD}^bEy^bEy^jBaPdEsg@|Dge@~Dee@dBc_@n@o_@n@m_@\\sg@\\sg@?mDFeE_@e^]c^]e^e@ic@}Aac@eDgb@mEiKeOo]u@oC~CaJyG}KmE~HyVM{Vr@yVd@{VX}TVeTcDtJg`@tJg`@tJg`@tJg`@vHc[xHa[vH{[`HuSjHkYdHqYhHoY~Hy[xGaZzG_ZxKqe@jLce@jLae@jLce@jLae@lLae@hLce@jLce@hLce@`Lke@|Kme@vKue@tJof@~DPbFwKgD{OtDuT~DoTnJga@bKs`@hLa_@rLw^dO_b@hCaIhGeRjGeRfLw]~J}^vH_a@zGua@pEcWxE{VpBmIvGiXzGeXtLsf@vLsf@nIiU`Ik\\bIk\\jGu]|Kid@rKsd@rKqd@tL}e@rL_f@tL}e@~Kke@~Kie@dLge@fLce@nKye@|Jif@dHch@bBqLdHqh@hHoh@nG_i@hG_i@jGai@jG_i@lG_i@rG{h@tG{h@rG{h@|Fgi@vGyh@tG{h@rG{h@jGai@hG_i@pE{i@hE}i@zEwi@zEwi@lDqf@nDqf@lDsf@dDsf@lC}f@hC}f@r@iJhCuh@lB}h@bB_i@`B_i@`B_i@`B_i@lC}j@`Dwj@lDuj@bDuj@xC{j@xCyj@~Cyj@|Cyj@~Cwj@|Cyj@pCeh@lCgh@dCih@tAoh@Zyh@\\{h@?yh@G{h@p@qe@j@se@Dse@Due@?aHGyf@?yf@U{f@e@wf@kAsf@_A}g@}@}g@_A}g@}@}g@_A}g@}@}g@}@}g@_A}g@}@}g@cA{j@cA}j@eA{j@cA}j@cA{j@cA}j@cA{j@aA}j@cA}j@aA{j@cA}j@iA{j@eA{j@eA{j@}@}]cCa_@gFo]cHe\\eEoLiPu\\uQeZgPob@qP_b@{Ly[}Lw[{Ly[{Ly[kPyb@iPyb@kP{b@iPyb@cNm^eNm^cNm^cNm^uDyJgHcQ{GqQuJ{WuJ}WkFeN_O{`@eEuK_ImSmLoZmLqZgLwZiLuZoIa^qAmb@mAob@rAgOoT{[yU{VePWePW?mQ?mU`SoZyGuOsB}DrJoc@","weight":692.98753,"weight_name":"routability","legs":[{"distance":9639.716,"duration":807.88585,"summary":"","steps":[{"distance":241.675,"duration":38.61228,"geometry":"gcbrbBmnrzHe@i_@Si_@bYvK`ZfAbQKbQKfDG","name":"Neuweg","mode":"driving","maneuver":{"location":[5.17094,52.21741],"bearing_before":0,"bearing_after":87,"instruction":"Blijf op Violenstraat","type":"depart"},"voiceInstructions":[{"distanceAlongGeometry":200,"announcement":"Over 200 meter, linksaf naar Gijsbrecht van Amstelstraat","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 200 meter, linksaf naar Gijsbrecht van Amstelstraat</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":80,"announcement":"linksaf naar Gijsbrecht van Amstelstraat","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">linksaf naar Gijsbrecht van Amstelstraat</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":241.675,"primary":{"text":"Gijsbrecht van Amstelstraat","components":[{"text":"Gijsbrecht van Amstelstraat","type":"text"}],"type":"turn","modifier":"left"},"sub":{"text":"Utrechtseweg","components":[{"text":"Utrechtseweg","type":"text"}],"type":"roundabout","modifier":"right","degrees":248}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.17094,52.21741],"bearings":[87],"entry":[true],"out":0}]},{"distance":786.848,"duration":76.83,"geometry":"kf_rbBaatzHhBcXzD}^bEy^bEy^jBaPdEsg@|Dge@~Dee@dBc_@n@o_@n@m_@\\sg@\\sg@?mDFeE_@e^]c^]e^e@ic@}Aac@eDgb@mEiKeOo]u@oC","name":"Gijsbrecht van Amstelstraat","mode":"driving","maneuver":{"location":[5.17175,52.21593],"bearing_before":178,"bearing_after":102,"instruction":"Linksaf naar Gijsbrecht van Amstelstraat","type":"turn","modifier":"left"},"voiceInstructions":[{"distanceAlongGeometry":400,"announcement":"Over 400 meter, Neem afslag 3 naar Utrechtseweg op de rotonde ","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 400 meter, Neem afslag 3 naar Utrechtseweg op de rotonde </prosody></amazon:effect></speak>"},{"distanceAlongGeometry":80,"announcement":"Neem afslag 3 naar Utrechtseweg op de rotonde ","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Neem afslag 3 naar Utrechtseweg op de rotonde </prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":786.848,"primary":{"text":"Utrechtseweg","components":[{"text":"Utrechtseweg","type":"text"}],"type":"roundabout","modifier":"right","degrees":248},"sub":{"text":"Soestdijkerstraatweg","components":[{"text":"Soestdijkerstraatweg","type":"text"}],"type":"turn","modifier":"sharp right"}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.17175,52.21593],"bearings":[102,176,275,358],"entry":[true,true,true,false],"in":1,"out":2},{"location":[5.17368,52.21558],"bearings":[108,187,287],"entry":[true,true,true],"in":0,"out":1},{"location":[5.17395,52.21553],"bearings":[104,288,359],"entry":[true,true,true],"in":1,"out":0},{"location":[5.1746,52.21543],"bearings":[10,104,186,284],"entry":[true,true,true,true],"in":0,"out":2},{"location":[5.17582,52.21524],"bearings":[7,99,175,284],"entry":[true,true,true,true],"in":0,"out":2},{"location":[5.17738,52.21514],"bearings":[8,92,183,274],"entry":[true,true,true,true],"in":3,"out":1},{"location":[5.17868,52.21511],"bearings":[90,180,272],"entry":[true,true,true],"in":2,"out":0},{"location":[5.17876,52.21511],"bearings":[94,270,359],"entry":[true,true,true],"in":1,"out":0},{"location":[5.18036,52.21515],"bearings":[87,190,267,358],"entry":[true,true,true,true],"in":1,"out":0},{"location":[5.18208,52.2153],"bearings":[50,182,257],"entry":[true,true,true],"in":2,"out":0}]},{"distance":304.716,"duration":75.425,"geometry":"sw~qbBgvi{H~CaJyG}KmE~HyVM{Vr@yVd@{VX}TVeTcD","name":"Utrechtseweg","mode":"driving","maneuver":{"location":[5.18284,52.21569],"bearing_before":58,"bearing_after":126,"instruction":"Neem afslag 3 naar Utrechtseweg op de rotonde ","type":"roundabout","modifier":"right","exit":3},"voiceInstructions":[{"distanceAlongGeometry":200,"announcement":"Over 200 meter, ga rechtsaf naar Soestdijkerstraatweg","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 200 meter, ga rechtsaf naar Soestdijkerstraatweg</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":80,"announcement":"ga rechtsaf naar Soestdijkerstraatweg","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">ga rechtsaf naar Soestdijkerstraatweg</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":304.716,"primary":{"text":"Soestdijkerstraatweg","components":[{"text":"Soestdijkerstraatweg","type":"text"}],"type":"turn","modifier":"sharp right"},"sub":{"text":"N415","components":[{"text":"N415","type":"text"}],"type":"roundabout","modifier":"right","degrees":247}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.18284,52.21569],"bearings":[40,126,238],"entry":[false,true,true],"in":2,"out":1},{"location":[5.18301,52.21561],"bearings":[42,187,306],"entry":[true,true,false],"in":2,"out":0},{"location":[5.18322,52.21575],"bearings":[90,222,316],"entry":[true,false,true],"in":1,"out":2},{"location":[5.18306,52.21585],"bearings":[1,136,220],"entry":[true,false,true],"in":2,"out":1},{"location":[5.18301,52.21738],"bearings":[179,262,359],"entry":[true,true,true],"in":0,"out":2}]},{"distance":1128.96,"duration":109.159,"geometry":"klcrbBmej{HtJg`@tJg`@tJg`@tJg`@vHc[xHa[vH{[`HuSjHkYdHqYhHoY~Hy[xGaZzG_ZxKqe@jLce@jLae@jLce@jLae@lLae@hLce@jLce@hLce@`Lke@|Kme@vKue@tJof@","name":"Soestdijkerstraatweg","mode":"driving","maneuver":{"location":[5.18308,52.21807],"bearing_before":8,"bearing_after":120,"instruction":"Ga rechtsaf naar Soestdijkerstraatweg","type":"turn","modifier":"sharp right"},"voiceInstructions":[{"distanceAlongGeometry":1000,"announcement":"Over 1 kilometer Neem afslag 2 naar Soestdijkerstraatweg op de rotonde ","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 1 kilometer Neem afslag 2 naar Soestdijkerstraatweg op de rotonde </prosody></amazon:effect></speak>"},{"distanceAlongGeometry":400,"announcement":"Over 400 meter, Neem afslag 2 naar Soestdijkerstraatweg op de rotonde ","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 400 meter, Neem afslag 2 naar Soestdijkerstraatweg op de rotonde </prosody></amazon:effect></speak>"},{"distanceAlongGeometry":80,"announcement":"Neem afslag 2 naar Soestdijkerstraatweg op de rotonde ","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Neem afslag 2 naar Soestdijkerstraatweg op de rotonde </prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":1128.96,"primary":{"text":"N415","components":[{"text":"N415","type":"text"}],"type":"roundabout","modifier":"right","degrees":247},"sub":{"text":"Stationsweg","components":[{"text":"Stationsweg","type":"text"}],"type":"continue"}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.18308,52.21807],"bearings":[45,120,188,321],"entry":[true,true,true,true],"in":2,"out":3},{"location":[5.18521,52.21732],"bearings":[119,207,300],"entry":[true,true,true],"in":2,"out":0},{"location":[5.18611,52.21701],"bearings":[119,210,300],"entry":[true,true,true],"in":2,"out":0},{"location":[5.18657,52.21685],"bearings":[18,126,299],"entry":[true,true,true],"in":2,"out":1},{"location":[5.1869,52.21671],"bearings":[120,214,306],"entry":[true,true,true],"in":0,"out":1},{"location":[5.18863,52.2161],"bearings":[118,159,300],"entry":[true,true,true],"in":0,"out":1},{"location":[5.1895,52.21582],"bearings":[44,118,185,298],"entry":[true,true,true,true],"in":2,"out":0}]},{"distance":5577.487,"duration":315.071,"geometry":"ouyqbB{hf|H~DPbFwKgD{OtDuT~DoTnJga@bKs`@hLa_@rLw^dO_b@hCaIhGeRjGeRfLw]~J}^vH_a@zGua@pEcWxE{VpBmIvGiXzGeXtLsf@vLsf@nIiU`Ik\\bIk\\jGu]|Kid@rKsd@rKqd@tL}e@rL_f@tL}e@~Kke@~Kie@dLge@fLce@nKye@|Jif@dHch@bBqLdHqh@hHoh@nG_i@hG_i@jGai@jG_i@lG_i@rG{h@tG{h@rG{h@|Fgi@vGyh@tG{h@rG{h@jGai@hG_i@pE{i@hE}i@zEwi@zEwi@lDqf@nDqf@lDsf@dDsf@lC}f@hC}f@r@iJhCuh@lB}h@bB_i@`B_i@`B_i@`B_i@lC}j@`Dwj@lDuj@bDuj@xC{j@xCyj@~Cyj@|Cyj@~Cwj@|Cyj@pCeh@lCgh@dCih@tAoh@Zyh@\\{h@?yh@G{h@p@qe@j@se@Dse@Due@?aHGyf@?yf@U{f@e@wf@kAsf@_A}g@}@}g@_A}g@}@}g@_A}g@}@}g@}@}g@_A}g@}@}g@cA{j@cA}j@eA{j@cA}j@cA{j@cA}j@cA{j@aA}j@cA}j@aA{j@cA}j@iA{j@eA{j@eA{j@}@}]cCa_@gFo]cHe\\eEoL","name":"N415","mode":"driving","maneuver":{"location":[5.19747,52.2131],"bearing_before":116,"bearing_after":183,"instruction":"Neem afslag 2 naar Soestdijkerstraatweg op de rotonde ","type":"roundabout","modifier":"right","exit":2},"voiceInstructions":[{"distanceAlongGeometry":5000,"announcement":"Ga rechtdoor 5 kilometer","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Ga rechtdoor 5 kilometer</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":2000,"announcement":"Over 2 kilometer blijf op Luitenant Generaal van Heutszlaan","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 2 kilometer blijf op Luitenant Generaal van Heutszlaan</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":1000,"announcement":"Over 1 kilometer blijf op Luitenant Generaal van Heutszlaan","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 1 kilometer blijf op Luitenant Generaal van Heutszlaan</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":400,"announcement":"Over 400 meter, blijf op Luitenant Generaal van Heutszlaan","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 400 meter, blijf op Luitenant Generaal van Heutszlaan</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":80,"announcement":"blijf op Luitenant Generaal van Heutszlaan","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">blijf op Luitenant Generaal van Heutszlaan</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":5577.487,"primary":{"text":"Stationsweg","components":[{"text":"Stationsweg","type":"text"}],"type":"continue"},"sub":{"text":"Oranjestraat","components":[{"text":"Oranjestraat","type":"text"}],"type":"turn","modifier":"left"}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.19747,52.2131],"bearings":[51,183,296],"entry":[false,true,true],"in":2,"out":1},{"location":[5.19746,52.213],"bearings":[3,132,214],"entry":[false,true,true],"in":1,"out":2},{"location":[5.19767,52.21289],"bearings":[63,216,312],"entry":[true,false,false],"in":2,"out":0},{"location":[5.19794,52.21297],"bearings":[113,243,356],"entry":[true,false,true],"in":2,"out":1},{"location":[5.19971,52.21241],"bearings":[26,124,205,300],"entry":[true,true,true,true],"in":3,"out":1},{"location":[5.20129,52.21172],"bearings":[38,125,307],"entry":[true,true,true],"in":2,"out":1},{"location":[5.20145,52.21165],"bearings":[125,213,305],"entry":[true,true,true],"in":0,"out":1},{"location":[5.20207,52.21138],"bearings":[36,125,305],"entry":[true,true,true],"in":2,"out":1},{"location":[5.20417,52.21068],"bearings":[114,208,293],"entry":[true,true,true],"in":1,"out":2},{"location":[5.20494,52.21046],"bearings":[38,119,295],"entry":[true,true,true],"in":2,"out":1},{"location":[5.20511,52.21041],"bearings":[119,262,299],"entry":[true,true,true],"in":2,"out":0},{"location":[5.20897,52.20906],"bearings":[119,294,304],"entry":[true,false,true],"in":2,"out":1},{"location":[5.21077,52.20845],"bearings":[31,120,208,299],"entry":[true,true,true,true],"in":2,"out":1},{"location":[5.21721,52.20637],"bearings":[110,204,291],"entry":[true,true,true],"in":0,"out":1},{"location":[5.2345,52.20326],"bearings":[16,103,192,280],"entry":[false,true,true,false],"in":1,"out":3},{"location":[5.23468,52.20324],"bearings":[13,100,200,283],"entry":[true,true,false,false],"in":3,"out":1},{"location":[5.2387,52.20291],"bearings":[99,277,281],"entry":[true,false,true],"in":1,"out":0},{"location":[5.2535,52.20179],"bearings":[0,90,188,270],"entry":[false,true,true,false],"in":0,"out":3},{"location":[5.25365,52.20179],"bearings":[1,89,207,270],"entry":[true,true,false,false],"in":3,"out":1},{"location":[5.25683,52.20186],"bearings":[85,264,270],"entry":[true,false,true],"in":1,"out":0},{"location":[5.26273,52.20214],"bearings":[85,176,266],"entry":[true,true,true],"in":2,"out":0},{"location":[5.27306,52.20266],"bearings":[78,264,345],"entry":[true,false,true],"in":1,"out":0},{"location":[5.27452,52.20298],"bearings":[53,154,243,337],"entry":[true,true,false,false],"in":2,"out":0}]},{"distance":1264.073,"duration":138.31,"geometry":"scfqbBef}`IiPu\\uQeZgPob@qP_b@{Ly[}Lw[{Ly[{Ly[kPyb@iPyb@kP{b@iPyb@cNm^eNm^cNm^cNm^uDyJgHcQ{GqQuJ{WuJ}WkFeN_O{`@eEuK_ImSmLoZmLqZgLwZiLuZoIa^qAmb@mAob@rAgO","name":"Stationsweg","mode":"driving","maneuver":{"location":[5.27474,52.20308],"bearing_before":53,"bearing_after":46,"instruction":"Blijf op Luitenant Generaal van Heutszlaan","type":"continue"},"voiceInstructions":[{"distanceAlongGeometry":1000,"announcement":"Over 1 kilometer linksaf naar Stationsweg","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 1 kilometer linksaf naar Stationsweg</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":400,"announcement":"Over 400 meter, linksaf naar Stationsweg","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 400 meter, linksaf naar Stationsweg</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":80,"announcement":"linksaf naar Stationsweg","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">linksaf naar Stationsweg</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":1264.073,"primary":{"text":"Oranjestraat","components":[{"text":"Oranjestraat","type":"text"}],"type":"turn","modifier":"left"},"sub":{"text":"Oranjepark","components":[{"text":"Oranjepark","type":"text"}],"type":"turn","modifier":"right"}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.27474,52.20308],"bearings":[46,156,233,333],"entry":[true,false,false,true],"in":0,"out":2},{"location":[5.27565,52.20366],"bearings":[52,222,233,327],"entry":[true,false,true,true],"in":0,"out":2},{"location":[5.27678,52.20422],"bearings":[52,231,322],"entry":[true,true,true],"in":1,"out":0},{"location":[5.27862,52.2051],"bearings":[52,232,334],"entry":[true,true,true],"in":2,"out":1},{"location":[5.28091,52.20621],"bearings":[52,232,332],"entry":[true,true,true],"in":1,"out":0},{"location":[5.28293,52.20718],"bearings":[52,232,311],"entry":[true,true,true],"in":1,"out":0},{"location":[5.28311,52.20727],"bearings":[50,137,232],"entry":[true,true,true],"in":2,"out":0},{"location":[5.28474,52.20806],"bearings":[52,232,318],"entry":[true,true,true],"in":1,"out":0},{"location":[5.28528,52.20831],"bearings":[51,168,232,346],"entry":[true,true,true,true],"in":2,"out":0},{"location":[5.28581,52.20857],"bearings":[51,98,231],"entry":[true,true,true],"in":2,"out":0},{"location":[5.28758,52.20943],"bearings":[61,232,304],"entry":[true,true,true],"in":0,"out":2}]},{"distance":205.19,"duration":32.906,"geometry":"_}rqbBa_zaIoT{[yU{VePWePW?mQ?mU","name":"Oranjestraat","mode":"driving","maneuver":{"location":[5.28947,52.20963],"bearing_before":105,"bearing_after":39,"instruction":"Linksaf naar Stationsweg","type":"turn","modifier":"left"},"voiceInstructions":[{"distanceAlongGeometry":200,"announcement":"Over 200 meter, rechtsaf naar Oranjepark, daarna linksaf naar Stationsweg","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Over 200 meter, rechtsaf naar Oranjepark, daarna linksaf naar Stationsweg</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":80,"announcement":"rechtsaf naar Oranjepark, daarna linksaf naar Stationsweg","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">rechtsaf naar Oranjepark, daarna linksaf naar Stationsweg</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":205.19,"primary":{"text":"Oranjepark","components":[{"text":"Oranjepark","type":"text"}],"type":"turn","modifier":"right"},"sub":{"text":"Stationsweg","components":[{"text":"Stationsweg","type":"text"}],"type":"turn","modifier":"left"}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.28947,52.20963],"bearings":[39,158,285],"entry":[true,true,true],"in":2,"out":0},{"location":[5.29032,52.21034],"bearings":[2,213,276],"entry":[true,true,true],"in":0,"out":2}]},{"distance":48.038,"duration":8.932,"geometry":"ukuqbBe~|aI`SoZ","name":"Oranjepark","mode":"driving","maneuver":{"location":[5.291,52.21089],"bearing_before":90,"bearing_after":140,"instruction":"Rechtsaf naar Oranjepark","type":"turn","modifier":"right"},"voiceInstructions":[{"distanceAlongGeometry":48,"announcement":"linksaf naar Stationsweg, daarna rechtsaf naar Nijverheidstraat","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">linksaf naar Stationsweg, daarna rechtsaf naar Nijverheidstraat</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":48.038,"primary":{"text":"Stationsweg","components":[{"text":"Stationsweg","type":"text"}],"type":"turn","modifier":"left"},"sub":{"text":"Nijverheidstraat","components":[{"text":"Nijverheidstraat","type":"text"}],"type":"turn","modifier":"right"}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.291,52.21089],"bearings":[140,270,316],"entry":[true,true,true],"in":2,"out":1}]},{"distance":33.559,"duration":5.684,"geometry":"swtqbBuy}aIyGuOsB}D","name":"Stationsweg","mode":"driving","maneuver":{"location":[5.29144,52.21057],"bearing_before":140,"bearing_after":49,"instruction":"Linksaf naar Stationsweg","type":"turn","modifier":"left"},"voiceInstructions":[{"distanceAlongGeometry":33.6,"announcement":"rechtsaf naar Nijverheidstraat, daarna bestemming bereikt","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">rechtsaf naar Nijverheidstraat, daarna bestemming bereikt</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":33.559,"primary":{"text":"Nijverheidstraat","components":[{"text":"Nijverheidstraat","type":"text"}],"type":"turn","modifier":"right"},"sub":{"text":"Nijverheidstraat","components":[{"text":"Nijverheidstraat","type":"text"}],"type":"arrive"}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.29144,52.21057],"bearings":[49,249,320],"entry":[true,true,true],"in":1,"out":2},{"location":[5.2917,52.21071],"bearings":[45,229,325],"entry":[true,true,true],"in":1,"out":0}]},{"distance":49.17,"duration":6.95657,"geometry":"aduqbBip~aIrJoc@","name":"Nijverheidstraat","mode":"driving","maneuver":{"location":[5.2918,52.21077],"bearing_before":45,"bearing_after":117,"instruction":"Rechtsaf naar Nijverheidstraat","type":"turn","modifier":"right"},"voiceInstructions":[{"distanceAlongGeometry":25,"announcement":"bestemming bereikt","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">bestemming bereikt</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":49.17,"primary":{"text":"Nijverheidstraat","components":[{"text":"Nijverheidstraat","type":"text"}],"type":"arrive"}}],"driving_side":"right","weight":0,"intersections":[{"location":[5.2918,52.21077],"bearings":[41,117,225],"entry":[true,true,true],"in":2,"out":1}]},{"distance":0,"duration":0,"geometry":"mxtqbByt_bI","name":"Nijverheidstraat","mode":"driving","maneuver":{"location":[5.29238,52.21058],"bearing_before":117,"bearing_after":0,"instruction":"Bestemming bereikt","type":"arrive"},"driving_side":"right","weight":0,"intersections":[{"location":[5.29238,52.21058],"bearings":[117],"entry":[true],"in":0}]}]}]}
But we are actually getting the error:
We are stuck on this issue because the maneuverApi keeps giving us an exception. So could you please help us out getting further on this. What needs to be changed to make this output work? Because if we use the json from your requestRoute function the json works without an exception and the maneuverApi actually got a maneuver.
Working json:
{"routeIndex":"0","distance":10768.994,"duration":778.778,"duration_typical":789.943,"geometry":"}dbrbBeltzH??A}Ab[vLfJz@vLSh]SzDCdDGh@uFbAmPdD{[|KuaAhBaPNiBvDid@vJmkAdBo\\bBqbAx@gpA?mDFeEw@i{@c@e`@K_ZuCuz@cC}SoEiKeOo]u@oCh@a@d@o@\\u@T}@PkAFoAvBXzj@xGjUtCryA~Qb]hEjDj@~`@rGjc@hIfOrCdEbAGpBJnB\\dBl@tAx@|@bA`@fABfA_@|@_Ap@yA^kBHuBEcBU}Aa@sAm@aAu@o@XeJl@aQpGs|ApJceCtB_i@jMqvCnEicAzDk`A|J{cC`BsKxAcFjBiDtCcDzf@n@h[Vld@bAxLtAjL|AdNtD~KdBzEXbFBrFa@bFeAnDmAvD}AbEgCjE_ErC_DrCuD`FgJxGyOfHcTbOcb@pIaTdXql@lWmg@hBqD~@aCb@gCRqC@{DOoCYiBi@kBmQi]wKgOcNwOaNqOoMePuI}LwJ}N_LeRwNsY_Nc[kQmd@aIiKk]}gAkJm\\{j@awBsa@a`BkPwj@eF_QaQwh@eUsm@yNq^kOq]sPu^aKyRmRo]}Uoa@wXoc@qm@ox@}`@ad@i`@_`@mi@if@aU}Qir@ai@i]uWe^aYqb@c]sa@e]sdA_z@mlAw~@ai@{a@uQsNa`@wXyWqSyTsQeRmPsf@wc@}b@yb@uToVwS_WuVq\\mIuLwK{O{P_XyNkWeXmf@eNeYsO{[wPka@sSwh@mTkm@sTkr@gN}f@aLwa@cQio@qRmlAaFyZuDoZyC{W{Cm_@uAkV}@qWc@yVMsVIq[Pw[hD{p@bBcp@jC_s@zA}WhBuTzBoStEq[vByL~DcRxD}OhGcTxHkVjH_XxXmn@~^_`A|Tmm@jLi]fL_`@~W}~@dTe{@nMiWnPwj@pIsWbFuJ`HcIxFaElHwBdHYdHv@vJfEhKpHxKjIxOxIhP~ElLvBjNjAbo@eAbESzGc@\\`N~@xx@~@fv@`BfYbCnY~B~PpB|PxAvS|AhVVbM`IzsGhK`kIlFfeEBzR}Bhn@YpP@jOd@x_@~@vXHzOz@bj@f@bcAnArl@z@v~@oU^sIR}T~@{FTaFLw~@jCq@mn@mBahBEeE{@kt@qAgz@","weight":898.419,"weight_name":"auto","legs":[{"distance":10768.994,"duration":778.778,"duration_typical":789.943,"summary":"A27, Zandheuvelweg","admins":[{"iso_3166_1":"NL","iso_3166_1_alpha3":"NLD"},{"iso_3166_1":"NL","iso_3166_1_alpha3":"NLD"}],"steps":[{"distance":3,"duration":0.778,"duration_typical":0.778,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"}dbrbBeltzH??A}A","name":"Violenstraat","mode":"driving","maneuver":{"location":[5.171923,52.217439],"bearing_before":0,"bearing_after":88,"instruction":"Drive east on Violenstraat.","type":"depart"},"voiceInstructions":[{"distanceAlongGeometry":3,"announcement":"Drive east on Violenstraat. Then Turn right onto Neuweg.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Drive east on <say-as interpret-as=\"address\">Violenstraat</say-as>. Then Turn right onto <say-as interpret-as=\"address\">Neuweg</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":3,"primary":{"text":"Neuweg","components":[{"text":"Neuweg","type":"text"}],"type":"turn","modifier":"right"}}],"driving_side":"right","weight":4.206,"intersections":[{"location":[5.171923,52.217439],"bearings":[88],"entry":[true],"out":0,"geometry_index":0,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"street"}},{"location":[5.171923,52.217439],"bearings":[21,88,197,268],"entry":[false,true,false,false],"in":3,"out":1,"geometry_index":1,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"street"}}]},{"distance":170,"duration":27.308,"duration_typical":27.308,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"_ebrbBcotzHb[vLfJz@vLSh]SzDCdDG","name":"Neuweg","mode":"driving","maneuver":{"location":[5.17197,52.21744],"bearing_before":88,"bearing_after":197,"instruction":"Turn right onto Neuweg.","type":"turn","modifier":"right"},"voiceInstructions":[{"distanceAlongGeometry":153.333,"announcement":"In 600 feet, Turn left onto Gijsbrecht van Amstelstraat.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In 600 feet, Turn left onto <say-as interpret-as=\"address\">Gijsbrecht van Amstelstraat</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":66.667,"announcement":"Turn left.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Turn left.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":170,"primary":{"text":"Gijsbrecht van Amstelstraat","components":[{"text":"Gijsbrecht van Amstelstraat","type":"text"}],"type":"turn","modifier":"left"}}],"driving_side":"right","weight":38.063,"intersections":[{"location":[5.17197,52.21744],"bearings":[23,106,197,268],"entry":[false,false,true,false],"in":3,"out":2,"geometry_index":2,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.17173,52.21659],"bearings":[83,179,267,358],"entry":[false,true,false,false],"in":3,"out":1,"geometry_index":5,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.171742,52.216011],"bearings":[107,178,267,359],"entry":[false,true,false,false],"in":3,"out":1,"geometry_index":7,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}}]},{"distance":787,"duration":92.225,"duration_typical":84.949,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"of_rbBcatzHh@uFbAmPdD{[|KuaAhBaPNiBvDid@vJmkAdBo\\bBqbAx@gpA?mDFeEw@i{@c@e`@K_ZuCuz@cC}SoEiKeOo]u@oC","name":"Gijsbrecht van Amstelstraat","mode":"driving","maneuver":{"location":[5.171746,52.215928],"bearing_before":178,"bearing_after":106,"instruction":"Turn left onto Gijsbrecht van Amstelstraat.","type":"turn","modifier":"left"},"voiceInstructions":[{"distanceAlongGeometry":770.333,"announcement":"Continue for a half mile.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Continue for a half mile.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":402.336,"announcement":"In a quarter mile, Enter the roundabout and take the 1st exit onto Utrechtseweg.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In a quarter mile, Enter the roundabout and take the 1st exit onto <say-as interpret-as=\"address\">Utrechtseweg</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":88.889,"announcement":"Enter the roundabout and take the 1st exit onto Utrechtseweg.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Enter the roundabout and take the 1st exit onto <say-as interpret-as=\"address\">Utrechtseweg</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":787,"primary":{"text":"Utrechtseweg","components":[{"text":"Utrechtseweg","type":"text"}],"type":"roundabout","modifier":"right","degrees":47,"driving_side":"right"}}],"driving_side":"right","weight":129.333,"intersections":[{"location":[5.171746,52.215928],"bearings":[106,176,282,358],"entry":[true,true,true,false],"in":3,"out":0,"geometry_index":8,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.171869,52.215907],"bearings":[101,182,286,356],"entry":[true,false,false,false],"in":2,"out":0,"geometry_index":9,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.172148,52.215873],"bearings":[106,252,281,307],"entry":[true,false,false,false],"in":2,"out":0,"geometry_index":10,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.173677,52.215583],"bearings":[108,183,288],"entry":[true,true,false],"in":2,"out":0,"geometry_index":12,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.17395,52.21553],"bearings":[104,288,359],"entry":[true,false,true],"in":1,"out":0,"geometry_index":13,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.174003,52.215522],"bearings":[104,177,284],"entry":[true,true,false],"in":2,"out":0,"geometry_index":14,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.1746,52.21543],"bearings":[8,104,186,284],"entry":[true,true,true,false],"in":3,"out":1,"geometry_index":15,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.175823,52.215242],"bearings":[7,100,175,284],"entry":[true,true,true,false],"in":3,"out":1,"geometry_index":16,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.177376,52.215141],"bearings":[8,92,183,274],"entry":[true,true,true,false],"in":3,"out":1,"geometry_index":18,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.178676,52.215112],"bearings":[90,180,272],"entry":[true,true,false],"in":2,"out":0,"geometry_index":19,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.178763,52.215112],"bearings":[94,270,359],"entry":[true,false,true],"in":1,"out":0,"geometry_index":20,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.178862,52.215108],"bearings":[87,182,274],"entry":[true,false,false],"in":2,"out":0,"geometry_index":21,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.180358,52.215154],"bearings":[0,89,190,267],"entry":[true,true,true,false],"in":3,"out":1,"geometry_index":23,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.181745,52.215235],"bearings":[72,87,263],"entry":[true,false,false],"in":2,"out":0,"geometry_index":25,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.18208,52.215301],"bearings":[49,182,252],"entry":[true,true,false],"in":2,"out":0,"geometry_index":26,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.182277,52.215405],"bearings":[25,49,229],"entry":[false,true,false],"in":2,"out":1,"geometry_index":27,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}},{"location":[5.182765,52.215664],"bearings":[59,151,229,351],"entry":[true,false,false,false],"in":2,"out":0,"geometry_index":28,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"tertiary"}}]},{"distance":16,"duration":4.141,"duration_typical":4.141,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"uw~qbBivi{Hh@a@d@o@\\u@T}@PkAFoA","name":"Utrechtseweg","mode":"driving","maneuver":{"location":[5.182837,52.215691],"bearing_before":59,"bearing_after":126,"instruction":"Enter the roundabout and take the 1st exit onto Utrechtseweg.","type":"roundabout","modifier":"right","exit":1},"voiceInstructions":[{"distanceAlongGeometry":16,"announcement":"Exit the roundabout onto Utrechtseweg.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Exit the roundabout onto <say-as interpret-as=\"address\">Utrechtseweg</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":16,"primary":{"text":"Utrechtseweg","components":[{"text":"Utrechtseweg","type":"text"}],"type":"roundabout","modifier":"right","degrees":47,"driving_side":"right"}}],"driving_side":"right","weight":10.96,"intersections":[{"location":[5.182837,52.215691],"bearings":[24,126,239],"entry":[false,true,false],"in":2,"out":1,"geometry_index":29,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"roundabout"}}]},{"distance":520,"duration":58.549,"duration_typical":57.72,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"wr~qbBkaj{HvBXzj@xGjUtCryA~Qb]hEjDj@~`@rGjc@hIfOrCdEbA","name":"Utrechtseweg","mode":"driving","maneuver":{"location":[5.183014,52.215612],"bearing_before":126,"bearing_after":188,"instruction":"Exit the roundabout onto Utrechtseweg.","type":"exit roundabout","modifier":"right"},"voiceInstructions":[{"distanceAlongGeometry":503.333,"announcement":"In a quarter mile, Enter the roundabout and take the 3rd exit onto Diependaalselaan.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In a quarter mile, Enter the roundabout and take the 3rd exit onto <say-as interpret-as=\"address\">Diependaalselaan</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":116.667,"announcement":"Enter the roundabout and take the 3rd exit onto Diependaalselaan, RING.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Enter the roundabout and take the 3rd exit onto <say-as interpret-as=\"address\">Diependaalselaan</say-as>, <say-as interpret-as=\"address\">RING</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":520,"primary":{"text":"Diependaalselaan / RING","components":[{"text":"Diependaalselaan","type":"text"},{"text":"/","type":"delimiter"},{"text":"RING","type":"icon","mapbox_shield":{"base_url":"https://api.mapbox.com/styles/v1","name":"default","text_color":"black","display_ref":"RING"}}],"type":"roundabout","modifier":"right","degrees":272,"driving_side":"right"}}],"driving_side":"right","weight":73.269,"intersections":[{"location":[5.183014,52.215612],"bearings":[48,188,306],"entry":[true,true,false],"in":2,"out":1,"geometry_index":35,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.183001,52.215552],"bearings":[8,86,187,282],"entry":[false,false,true,false],"in":0,"out":2,"geometry_index":36,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.182481,52.213042],"bearings":[7,187,275],"entry":[false,true,true],"in":0,"out":1,"geometry_index":39,"is_urban":true,"admin_index":0,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.182358,52.212474],"bearings":[8,189,272],"entry":[false,true,true],"in":0,"out":1,"geometry_index":41,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.182055,52.211348],"bearings":[10,97,190],"entry":[false,true,true],"in":0,"out":2,"geometry_index":43,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.181981,52.211088],"bearings":[10,104,192,282],"entry":[false,false,true,false],"in":0,"out":2,"geometry_index":44,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"secondary"}}]},{"distance":65,"duration":20.077,"duration_typical":20.735,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"yquqbBu~g{HGpBJnB\\dBl@tAx@|@bA`@fABfA_@|@_Ap@yA^kBHuBEcBU}Aa@sAm@aAu@o@","name":"Diependaalselaan","ref":"RING","mode":"driving","maneuver":{"location":[5.181947,52.210989],"bearing_before":192,"bearing_after":241,"instruction":"Enter the roundabout and take the 3rd exit onto Diependaalselaan/RING.","type":"roundabout","modifier":"right","exit":3},"voiceInstructions":[{"distanceAlongGeometry":48.333,"announcement":"Exit the roundabout onto Diependaalselaan, RING.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Exit the roundabout onto <say-as interpret-as=\"address\">Diependaalselaan</say-as>, <say-as interpret-as=\"address\">RING</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":65,"primary":{"text":"Diependaalselaan / RING","components":[{"text":"Diependaalselaan","type":"text"},{"text":"/","type":"delimiter"},{"text":"RING","type":"icon","mapbox_shield":{"base_url":"https://api.mapbox.com/styles/v1","name":"default","text_color":"black","display_ref":"RING"}}],"type":"roundabout","modifier":"right","degrees":272,"driving_side":"right"}}],"driving_side":"right","weight":18.96,"intersections":[{"location":[5.181947,52.210989],"bearings":[12,134,241],"entry":[false,false,true],"in":0,"out":2,"geometry_index":45,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"roundabout"}},{"location":[5.181692,52.210886],"bearings":[52,147,275],"entry":[false,true,true],"in":0,"out":1,"geometry_index":51,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"roundabout"}},{"location":[5.181896,52.210737],"bearings":[56,184,313],"entry":[true,true,false],"in":2,"out":0,"geometry_index":57,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"roundabout"}}]},{"distance":790,"duration":66.766,"duration_typical":74.402,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"cguqbBwgh{HXeJl@aQpGs|ApJceCtB_i@jMqvCnEicAzDk`A|J{cC","name":"Diependaalselaan","ref":"RING","mode":"driving","maneuver":{"location":[5.182092,52.210818],"bearing_before":56,"bearing_after":97,"instruction":"Exit the roundabout onto Diependaalselaan/RING.","type":"exit roundabout","modifier":"slight right"},"voiceInstructions":[{"distanceAlongGeometry":773.333,"announcement":"Continue for a half mile.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Continue for a half mile.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":402.336,"announcement":"In a quarter mile, Turn right toward A27.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In a quarter mile, Turn right toward <say-as interpret-as=\"address\">A27</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":83.333,"announcement":"Turn right toward A27, Amsterdam.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Turn right toward <say-as interpret-as=\"address\">A27</say-as>, <say-as interpret-as=\"address\">Amsterdam</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":790,"primary":{"text":"Exit 33","components":[{"text":"Exit","type":"exit"},{"text":"33","type":"exit-number"}],"type":"turn","modifier":"right"}},{"distanceAlongGeometry":402.336,"primary":{"text":"Exit 33","components":[{"text":"Exit","type":"exit"},{"text":"33","type":"exit-number"}],"type":"turn","modifier":"right"},"sub":{"text":"","components":[{"text":"","type":"lane","directions":["straight"],"active":false},{"text":"","type":"lane","directions":["straight"],"active":false},{"text":"","type":"lane","directions":["right"],"active":true,"active_direction":"right"},{"text":"","type":"lane","directions":["right"],"active":true,"active_direction":"right"}]}}],"driving_side":"right","weight":65.816,"intersections":[{"location":[5.182092,52.210818],"bearings":[4,97,236],"entry":[true,true,false],"in":2,"out":1,"geometry_index":62,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.182271,52.210805],"bearings":[6,97,206,277],"entry":[false,true,false,false],"in":3,"out":1,"geometry_index":63,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.186204,52.21046],"bearings":[98,278],"classes":["tunnel"],"entry":[true,false],"in":1,"out":0,"geometry_index":66,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.186876,52.210401],"bearings":[99,278],"entry":[true,false],"in":1,"out":0,"geometry_index":67,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.189301,52.210171],"bearings":[99,279],"entry":[true,false],"in":1,"out":0,"geometry_index":68,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.190394,52.210067],"bearings":[35,98,279,344],"entry":[true,true,false,false],"in":2,"out":1,"lanes":[{"valid":false,"active":false,"indications":["left"]},{"valid":true,"active":false,"valid_indication":"straight","indications":["straight"]},{"valid":true,"active":true,"valid_indication":"straight","indications":["straight"]}],"geometry_index":69,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.19144,52.209973],"bearings":[98,278],"entry":[true,false],"in":1,"out":0,"geometry_index":70,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}}]},{"distance":595,"duration":39.411,"duration_typical":41.612,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"kfsqbB{t~{H`BsKxAcFjBiDtCcDzf@n@h[Vld@bAxLtAjL|AdNtD~KdBzEXbFBrFa@bFeAnDmAvD}AbEgCjE_ErC_DrCuD`FgJxGyOfHcTbOcb@pIaT","name":"Oostereind","destinations":"A27: Amsterdam, Utrecht","mode":"driving","maneuver":{"location":[5.193566,52.209782],"bearing_before":98,"bearing_after":181,"instruction":"Turn right toward A27/Amsterdam/Utrecht.","type":"turn","modifier":"right"},"voiceInstructions":[{"distanceAlongGeometry":563.667,"announcement":"In a quarter mile, Continue toward A27.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In a quarter mile, Continue toward <say-as interpret-as=\"address\">A27</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":175.556,"announcement":"Continue toward A27, Amsterdam. Then Turn left to take the ramp toward Amersfoort.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Continue toward <say-as interpret-as=\"address\">A27</say-as>, <say-as interpret-as=\"address\">Amsterdam</say-as>. Then Turn left to take the ramp toward <say-as interpret-as=\"address\">Amersfoort</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":595,"primary":{"text":"Exit 33","components":[{"text":"Exit","type":"exit"},{"text":"33","type":"exit-number"}],"type":"turn","modifier":"straight"},"sub":{"text":"","components":[{"text":"","type":"lane","directions":["straight"],"active":true,"active_direction":"straight"},{"text":"","type":"lane","directions":["straight"],"active":false},{"text":"","type":"lane","directions":["right"],"active":false}]}}],"driving_side":"right","weight":42.06,"intersections":[{"location":[5.193566,52.209782],"bearings":[99,115,278],"entry":[true,true,false],"in":2,"out":1,"lanes":[{"valid":false,"active":false,"indications":["straight"]},{"valid":false,"active":false,"indications":["straight"]},{"valid":true,"active":true,"valid_indication":"right","indications":["right"]},{"valid":true,"active":true,"valid_indication":"right","indications":["right"]}],"geometry_index":71,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary_link"}},{"location":[5.194049,52.209559],"bearings":[6,181,319],"entry":[false,true,false],"in":2,"out":1,"geometry_index":75,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.194025,52.208921],"bearings":[1,181],"entry":[false,true],"in":0,"out":1,"geometry_index":76,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.194013,52.208468],"bearings":[1,182],"entry":[false,true],"in":0,"out":1,"geometry_index":77,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}}],"exits":"33"},{"distance":153,"duration":20.179,"duration_typical":24.611,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"{ejqbBefc|HdXql@lWmg@hBqD~@aCb@gCRqC","name":"Oostereind","destinations":"A27: Amsterdam, Utrecht","mode":"driving","maneuver":{"location":[5.195891,52.205166],"bearing_before":129,"bearing_after":132,"instruction":"Continue toward A27/Amsterdam/Utrecht.","type":"new name","modifier":"straight"},"voiceInstructions":[{"distanceAlongGeometry":126.333,"announcement":"Turn left to take the ramp toward Amersfoort.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Turn left to take the ramp toward <say-as interpret-as=\"address\">Amersfoort</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":153,"primary":{"text":"Amersfoort","components":[{"text":"Amersfoort","type":"text"}],"type":"turn","modifier":"left"},"sub":{"text":"","components":[{"text":"","type":"lane","directions":["left"],"active":true,"active_direction":"left"},{"text":"","type":"lane","directions":["left"],"active":true,"active_direction":"left"}]}}],"driving_side":"right","weight":19.161,"intersections":[{"location":[5.195891,52.205166],"bearings":[132,151,309],"entry":[true,true,false],"in":2,"out":0,"lanes":[{"valid":true,"active":true,"valid_indication":"straight","indications":["straight"]},{"valid":true,"active":false,"valid_indication":"straight","indications":["straight"]},{"valid":false,"active":false,"indications":["right"]}],"geometry_index":97,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.19662,52.204763],"bearings":[135,312],"entry":[true,false],"in":1,"out":0,"lanes":[{"valid":true,"active":true,"valid_indication":"left","indications":["left"]},{"valid":true,"active":true,"valid_indication":"left","indications":["left"]}],"geometry_index":98,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}},{"location":[5.197267,52.204372],"bearings":[125,315],"entry":[true,false],"in":1,"out":0,"lanes":[{"valid":true,"active":true,"valid_indication":"left","indications":["left"]},{"valid":true,"active":true,"valid_indication":"left","indications":["left"]}],"geometry_index":99,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary"}}],"exits":"33"},{"distance":3700.999,"duration":144.639,"duration_typical":145.444,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"emhqbBsnf|H@{DOoCYiBi@kBmQi]wKgOcNwOaNqOoMePuI}LwJ}N_LeRwNsY_Nc[kQmd@aIiKk]}gAkJm\\{j@awBsa@a`BkPwj@eF_QaQwh@eUsm@yNq^kOq]sPu^aKyRmRo]}Uoa@wXoc@qm@ox@}`@ad@i`@_`@mi@if@aU}Qir@ai@i]uWe^aYqb@c]sa@e]sdA_z@mlAw~@ai@{a@uQsNa`@wXyWqSyTsQeRmPsf@wc@}b@yb@uToVwS_WuVq\\mIuLwK{O{P_XyNkWeXmf@eNeYsO{[wPka@sSwh@mTkm@sTkr@gN}f@aLwa@cQio@","name":"","ref":"A27","destinations":"Amersfoort","mode":"driving","maneuver":{"location":[5.197562,52.204259],"bearing_before":120,"bearing_after":74,"instruction":"Turn left to take the ramp toward Amersfoort.","type":"turn","modifier":"left"},"voiceInstructions":[{"distanceAlongGeometry":3657.666,"announcement":"Continue for 2 miles.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Continue for 2 miles.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":1609.344,"announcement":"In 1 mile, Keep right to take A1.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In 1 mile, Keep right to take <say-as interpret-as=\"address\">A1</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":804.672,"announcement":"In a half mile, Keep right to take A1.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In a half mile, Keep right to take <say-as interpret-as=\"address\">A1</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":188.889,"announcement":"Keep right to take A1 toward Amersfoort.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Keep right to take <say-as interpret-as=\"address\">A1</say-as> toward <say-as interpret-as=\"address\">Amersfoort</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":3700.999,"primary":{"text":"A1","components":[{"text":"A1","type":"icon"}],"type":"fork","modifier":"right"},"secondary":{"text":"Amersfoort","components":[{"text":"Amersfoort","type":"text"}],"type":"fork","modifier":"right"}},{"distanceAlongGeometry":1609.344,"primary":{"text":"A1","components":[{"text":"A1","type":"icon"}],"type":"fork","modifier":"right"},"secondary":{"text":"Amersfoort","components":[{"text":"Amersfoort","type":"text"}],"type":"fork","modifier":"right"},"sub":{"text":"","components":[{"text":"","type":"lane","directions":["straight"],"active":false},{"text":"","type":"lane","directions":["straight"],"active":false},{"text":"","type":"lane","directions":["slight right"],"active":false},{"text":"","type":"lane","directions":["slight right"],"active":true,"active_direction":"slight right"}]}}],"driving_side":"right","weight":157.297,"intersections":[{"location":[5.197562,52.204259],"bearings":[74,194,300,329],"entry":[true,false,false,true],"in":2,"out":0,"lanes":[{"valid":true,"active":true,"valid_indication":"left","indications":["left"]},{"valid":true,"active":true,"valid_indication":"left","indications":["left"]}],"geometry_index":103,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary_link"}},{"location":[5.19832,52.204595],"bearings":[38,225],"entry":[true,false],"in":1,"out":0,"geometry_index":108,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary_link"}},{"location":[5.199388,52.205514],"bearings":[39,216],"entry":[true,false],"in":1,"out":0,"geometry_index":112,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"primary_link"}},{"location":[5.201845,52.207028],"bearings":[56,217,235],"classes":["motorway"],"entry":[true,false,false],"in":1,"out":0,"geometry_index":119,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.203012,52.207514],"bearings":[58,236],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":120,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.203483,52.207696],"bearings":[59,238],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":121,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.205404,52.208398],"bearings":[60,239],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":122,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.207657,52.20923],"bearings":[57,237],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":124,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.208613,52.209634],"bearings":[52,235],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":126,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.211177,52.210979],"bearings":[44,215,225],"classes":["motorway"],"entry":[true,false,false],"in":2,"out":0,"geometry_index":131,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.215471,52.214569],"bearings":[28,210],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":138,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.215774,52.214922],"bearings":[27,208],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":139,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.216447,52.215743],"bearings":[27,207],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":140,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.216842,52.216228],"bearings":[27,207],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":141,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.217259,52.216727],"bearings":[27,207],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":142,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.220188,52.220203],"bearings":[27,207],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":146,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.220746,52.220876],"bearings":[27,207],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":147,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.222035,52.22245],"bearings":[29,196,208],"classes":["motorway"],"entry":[true,false,false],"in":2,"out":0,"geometry_index":151,"is_urban":false,"admin_index":0,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.224927,52.225191],"bearings":[39,219],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":158,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.225987,52.225934],"bearings":[44,223],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":161,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.228717,52.22746],"bearings":[53,231],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"lanes":[{"valid":false,"active":false,"indications":["straight"]},{"valid":false,"active":false,"indications":["straight"]},{"valid":true,"active":true,"valid_indication":"slight right","indications":["slight right"]}],"geometry_index":166,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.23092,52.228393],"bearings":[58,238],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"lanes":[{"valid":false,"active":false,"indications":["straight"]},{"valid":false,"active":false,"indications":["straight"]},{"valid":true,"active":false,"valid_indication":"slight right","indications":["slight right"]},{"valid":true,"active":true,"valid_indication":"slight right","indications":["slight right"]}],"geometry_index":169,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"motorway"}},{"location":[5.231476,52.228602],"bearings":[59,238],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"lanes":[{"valid":false,"active":false,"indications":["straight"]},{"valid":false,"active":false,"indications":["straight"]},{"valid":true,"active":false,"valid_indication":"slight right","indications":["slight right"]},{"valid":true,"active":true,"valid_indication":"slight right","indications":["slight right"]}],"geometry_index":170,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"motorway"}}]},{"distance":388,"duration":14.413,"duration_typical":15.362,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"wpxrbBqfj~HqRmlAaFyZuDoZyC{W{Cm_@uAkV}@qWc@yVMsVIq[Pw[","name":"","ref":"A27","destinations":"A1: Amersfoort, Hilversum-Noord, Amsterdam","mode":"driving","maneuver":{"location":[5.232249,52.228892],"bearing_before":59,"bearing_after":68,"instruction":"Keep right to take A1 toward Amersfoort.","type":"fork","modifier":"slight right"},"voiceInstructions":[{"distanceAlongGeometry":354.667,"announcement":"In a quarter mile, Keep right to take A1.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In a quarter mile, Keep right to take <say-as interpret-as=\"address\">A1</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":188.889,"announcement":"Keep right to take A1 toward Amersfoort.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Keep right to take <say-as interpret-as=\"address\">A1</say-as> toward <say-as interpret-as=\"address\">Amersfoort</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":388,"primary":{"text":"A1","components":[{"text":"A1","type":"icon"}],"type":"fork","modifier":"right"},"secondary":{"text":"Amersfoort","components":[{"text":"Amersfoort","type":"text"}],"type":"fork","modifier":"right"},"sub":{"text":"","components":[{"text":"","type":"lane","directions":["straight"],"active":false},{"text":"","type":"lane","directions":["slight right"],"active":true,"active_direction":"slight right"}]}}],"driving_side":"right","weight":14.04,"intersections":[{"location":[5.232249,52.228892],"bearings":[59,68,239],"classes":["motorway"],"entry":[true,true,false],"in":2,"out":1,"lanes":[{"valid":false,"active":false,"indications":["straight"]},{"valid":false,"active":false,"indications":["straight"]},{"valid":true,"active":false,"valid_indication":"slight right","indications":["slight right"]},{"valid":true,"active":true,"valid_indication":"slight right","indications":["slight right"]}],"geometry_index":171,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"motorway_link"}},{"location":[5.23529,52.229564],"bearings":[79,256],"classes":["motorway"],"entry":[true,false],"in":1,"out":0,"geometry_index":176,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"motorway_link"}}]},{"distance":893,"duration":33.501,"duration_typical":34.594,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"u`zrbBi}t~HhD{p@bBcp@jC_s@zA}WhBuTzBoStEq[vByL~DcRxD}OhGcTxHkVjH_XxXmn@~^_`A|Tmm@jLi]fL_`@~W}~@dTe{@","name":"","ref":"A1","destinations":"A1: Amersfoort","mode":"driving","maneuver":{"location":[5.237733,52.229659],"bearing_before":92,"bearing_after":100,"instruction":"Keep right to take A1 toward Amersfoort.","type":"fork","modifier":"slight right"},"voiceInstructions":[{"distanceAlongGeometry":859.666,"announcement":"In a half mile, Keep right to take exit 10.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In a half mile, Keep right to take exit <say-as interpret-as=\"address\">10</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":244.444,"announcement":"Keep right to take exit 10 onto N221 toward Soest, Baarn-Noord.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Keep right to take exit <say-as interpret-as=\"address\">10</say-as> onto <say-as interpret-as=\"address\">N221</say-as> toward <say-as interpret-as=\"address\">Soest</say-as>, <say-as interpret-as=\"address\">Baarn-Noord</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":893,"primary":{"text":"Exit 10 N221","components":[{"text":"Exit","type":"exit"},{"text":"10","type":"exit-number"},{"text":"N221","type":"icon","mapbox_shield":{"base_url":"https://api.mapbox.com/styles/v1","name":"rectangle-yellow","text_color":"black","display_ref":"N221"}}],"type":"fork","modifier":"right"},"secondary":{"text":"Soest / Baarn-Noord","components":[{"text":"Soest","type":"text"},{"text":"/","type":"text"},{"text":"Baarn-Noord","type":"text"}],"type":"fork","modifier":"right"},"sub":{"text":"","components":[{"text":"","type":"lane","directions":["straight"],"active":false},{"text":"","type":"lane","directions":["straight"],"active":false},{"text":"","type":"lane","directions":["slight right"],"active":true,"active_direction":"slight right"},{"text":"","type":"lane","directions":["slight right"],"active":true,"active_direction":"slight right"}]}}],"driving_side":"right","weight":33.388,"intersections":[{"location":[5.237733,52.229659],"bearings":[92,100,272],"classes":["motorway"],"entry":[true,true,false],"in":2,"out":1,"lanes":[{"valid":false,"active":false,"indications":["straight"]},{"valid":true,"active":true,"valid_indication":"slight right","indications":["slight right"]}],"geometry_index":182,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"motorway_link"}},{"location":[5.24359,52.228497],"bearings":[132,301,314],"classes":["motorway"],"entry":[true,false,false],"in":1,"out":0,"geometry_index":195,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"motorway_link"}}]},{"distance":530,"duration":47.796,"duration_typical":49.292,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"o_srbBuek_InMiWnPwj@pIsWbFuJ`HcIxFaElHwBdHYdHv@vJfEhKpHxKjIxOxIhP~ElLvBjNjAbo@eAbESzGc@","name":"","destinations":"N221: Soest, Baarn-Noord","mode":"driving","maneuver":{"location":[5.249131,52.226056],"bearing_before":120,"bearing_after":134,"instruction":"Keep right to take exit 10 onto N221 toward Soest/Baarn-Noord.","type":"fork","modifier":"slight right"},"voiceInstructions":[{"distanceAlongGeometry":496.667,"announcement":"In a quarter mile, Turn right onto Zandheuvelweg.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In a quarter mile, Turn right onto <say-as interpret-as=\"address\">Zandheuvelweg</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":77.778,"announcement":"Turn right onto Zandheuvelweg.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Turn right onto <say-as interpret-as=\"address\">Zandheuvelweg</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":530,"primary":{"text":"Zandheuvelweg","components":[{"text":"Zandheuvelweg","type":"text"}],"type":"turn","modifier":"right"},"sub":{"text":"","components":[{"text":"","type":"lane","directions":["left"],"active":false},{"text":"","type":"lane","directions":["left"],"active":false},{"text":"","type":"lane","directions":["right"],"active":true,"active_direction":"right"}]}}],"driving_side":"right","weight":46.564,"intersections":[{"location":[5.249131,52.226056],"bearings":[120,134,300],"entry":[true,true,false],"in":2,"out":1,"lanes":[{"valid":false,"active":false,"indications":["straight"]},{"valid":false,"active":false,"indications":["straight"]},{"valid":true,"active":true,"valid_indication":"slight right","indications":["slight right"]},{"valid":true,"active":true,"valid_indication":"slight right","indications":["slight right"]}],"geometry_index":202,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"primary_link"}},{"location":[5.250303,52.222949],"bearings":[5,178],"entry":[false,true],"in":0,"out":1,"geometry_index":218,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"primary_link"}},{"location":[5.250348,52.222081],"bearings":[87,176,267,357],"entry":[false,true,false,false],"in":3,"out":1,"lanes":[{"valid":false,"active":false,"indications":["left"]},{"valid":false,"active":false,"indications":["left"]},{"valid":true,"active":true,"valid_indication":"right","indications":["right"]}],"geometry_index":220,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"primary_link"}}],"exits":"10"},{"distance":1622,"duration":96.235,"duration_typical":96.235,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"e~jrbB{rm_I\\`N~@xx@~@fv@`BfYbCnY~B~PpB|PxAvS|AhVVbM`IzsGhK`kIlFfeEBzR}Bhn@YpP@jOd@x_@~@vXHzOz@bj@f@bcAnArl@z@v~@","name":"Zandheuvelweg","mode":"driving","maneuver":{"location":[5.250366,52.221939],"bearing_before":176,"bearing_after":264,"instruction":"Turn right onto Zandheuvelweg.","type":"turn","modifier":"right"},"voiceInstructions":[{"distanceAlongGeometry":1595.333,"announcement":"In 1 mile, Turn right onto Eemeroordlaan.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In 1 mile, Turn right onto <say-as interpret-as=\"address\">Eemeroordlaan</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":804.672,"announcement":"In a half mile, Turn right onto Eemeroordlaan.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In a half mile, Turn right onto <say-as interpret-as=\"address\">Eemeroordlaan</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":124.444,"announcement":"Turn right onto Eemeroordlaan.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Turn right onto <say-as interpret-as=\"address\">Eemeroordlaan</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":1622,"primary":{"text":"Eemeroordlaan","components":[{"text":"Eemeroordlaan","type":"text"}],"type":"turn","modifier":"right"}}],"driving_side":"right","weight":116.346,"intersections":[{"location":[5.250366,52.221939],"bearings":[87,177,264,356],"entry":[false,true,true,false],"in":3,"out":2,"lanes":[{"valid":false,"active":false,"indications":["left"]},{"valid":false,"active":false,"indications":["left"]},{"valid":true,"active":true,"valid_indication":"right","indications":["right"]}],"geometry_index":221,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.250125,52.221924],"bearings":[84,177,267,358],"entry":[false,false,true,false],"in":0,"out":2,"geometry_index":222,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.2492,52.221892],"bearings":[1,87,179,267],"entry":[true,false,true,true],"in":1,"out":3,"geometry_index":223,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.246192,52.221532],"bearings":[78,87,265],"entry":[false,true,true],"in":0,"out":2,"geometry_index":230,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.241536,52.221359],"bearings":[13,87,186,267],"entry":[true,false,true,true],"in":1,"out":3,"geometry_index":232,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"secondary"}},{"location":[5.236223,52.221162],"bearings":[1,87,175,266],"entry":[true,false,true,true],"in":1,"out":3,"geometry_index":233,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"secondary"}}]},{"distance":239,"duration":49.774,"duration_typical":49.774,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"w_irbBok_~HoU^sIR}T~@{FTaFLw~@jC","name":"Eemeroordlaan","mode":"driving","maneuver":{"location":[5.226696,52.22094],"bearing_before":267,"bearing_after":358,"instruction":"Turn right onto Eemeroordlaan.","type":"turn","modifier":"right"},"voiceInstructions":[{"distanceAlongGeometry":225.667,"announcement":"In 800 feet, Turn right onto IJssellaan.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In 800 feet, Turn right onto <say-as interpret-as=\"address\">IJssellaan</say-as>.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":62.222,"announcement":"Turn right onto IJssellaan.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Turn right onto <say-as interpret-as=\"address\">IJssellaan</say-as>.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":239,"primary":{"text":"IJssellaan","components":[{"text":"IJssellaan","type":"text"}],"type":"turn","modifier":"right"}}],"driving_side":"right","weight":59.891,"intersections":[{"location":[5.226696,52.22094],"bearings":[87,175,266,358],"entry":[false,true,true,true],"in":0,"out":3,"geometry_index":245,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}},{"location":[5.22668,52.2213],"bearings":[87,178,358],"entry":[true,false,true],"in":1,"out":2,"geometry_index":246,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}},{"location":[5.22667,52.22147],"bearings":[86,178,357],"entry":[true,false,true],"in":1,"out":2,"geometry_index":247,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}},{"location":[5.226638,52.221821],"bearings":[177,266,357],"entry":[false,false,true],"in":0,"out":2,"geometry_index":248,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}},{"location":[5.226627,52.221947],"bearings":[177,266,358],"entry":[false,true,true],"in":0,"out":2,"geometry_index":249,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}},{"location":[5.22662,52.22206],"bearings":[89,178,358],"entry":[true,false,true],"in":1,"out":2,"geometry_index":250,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}}]},{"distance":297,"duration":62.985,"duration_typical":62.985,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"oemrbBkb_~Hq@mn@mBahBEeE{@kt@qAgz@","name":"IJssellaan","mode":"driving","maneuver":{"location":[5.22655,52.22308],"bearing_before":358,"bearing_after":87,"instruction":"Turn right onto IJssellaan.","type":"end of road","modifier":"right"},"voiceInstructions":[{"distanceAlongGeometry":283.667,"announcement":"In 1,000 feet, You will arrive at your destination.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">In 1,000 feet, You will arrive at your destination.</prosody></amazon:effect></speak>"},{"distanceAlongGeometry":48.611,"announcement":"You have arrived at your destination.","ssmlAnnouncement":"<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">You have arrived at your destination.</prosody></amazon:effect></speak>"}],"bannerInstructions":[{"distanceAlongGeometry":297,"primary":{"text":"You will arrive at your destination","components":[{"text":"You will arrive at your destination","type":"text"}],"type":"arrive","modifier":"straight"}},{"distanceAlongGeometry":48.611,"primary":{"text":"You have arrived at your destination","components":[{"text":"You have arrived at your destination","type":"text"}],"type":"arrive","modifier":"straight"}}],"driving_side":"right","weight":69.065,"intersections":[{"location":[5.22655,52.22308],"bearings":[87,178,265],"entry":[true,false,true],"in":1,"out":0,"geometry_index":251,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}},{"location":[5.227309,52.223105],"bearings":[87,267,358],"entry":[true,false,false],"in":1,"out":0,"geometry_index":252,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}},{"location":[5.229089,52.223163],"bearings":[87,166,267,358],"entry":[true,true,false,true],"in":2,"out":0,"geometry_index":254,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}},{"location":[5.229943,52.223193],"bearings":[86,267,358],"entry":[true,false,false],"in":1,"out":0,"geometry_index":255,"is_urban":false,"admin_index":1,"mapbox_streets_v8":{"class":"street"}}]},{"distance":0,"duration":0,"duration_typical":0,"speedLimitUnit":"km/h","speedLimitSign":"vienna","geometry":"comrbBuqg~H??","name":"IJssellaan","mode":"driving","maneuver":{"location":[5.230891,52.223234],"bearing_before":86,"bearing_after":0,"instruction":"You have arrived at your destination.","type":"arrive"},"voiceInstructions":[],"bannerInstructions":[],"driving_side":"right","weight":0,"intersections":[{"location":[5.230891,52.223234],"bearings":[266],"entry":[true],"in":0,"geometry_index":256,"admin_index":1}]}],"annotation":{"distance":[0,3.2,52.3,20.1,24.5,54,10.5,9.2,8.7,19.4,32.8,76.3,19.5,3.7,42,86,32.7,73.9,88.7,5.9,6.8,65.9,36.3,29.5,65.7,24,17.7,44,5.8,2.6,2.7,2.5,2.4,2.8,2.8,6.7,78.7,40.2,162.7,54.1,9.7,61.3,65.8,29.4,11.3,3.9,3.9,3.9,3.9,3.9,4,4,4.2,4.1,4.1,4.1,4.1,3.4,3.4,3.4,3.4,3.4,12.3,19.9,103.3,147.8,46.3,167.4,75.5,72.1,146.6,14.8,9.2,8.4,10,71,50.4,66.7,24.8,24,27.8,23.4,12.3,12.7,13.6,12.9,10.2,10.7,11.9,13.1,9.9,10.3,17.6,24.1,28.3,47.9,29.7,67,62,8.5,5.7,5.1,5.1,6.4,5,3.9,4.4,46.6,28.8,32.6,32.4,31.9,24.4,27.2,31.2,40.4,40.7,52.4,22.4,96.3,38,152.6,122.6,56.9,23.4,55.8,64.4,44.5,44.3,46.7,30.5,48,55.6,60.7,104,72.7,69.4,86.9,44.4,102.3,60.3,62.4,71.4,69.9,139.7,154.5,84,37.4,65.2,49.6,43.8,39.1,81.2,75,46.4,45.3,53.1,23.8,29.2,41.9,38.7,62.2,39.3,43.2,49.1,58.5,63.4,68,51.3,44.5,61.8,91.4,32.8,31.7,28.5,36.4,25.9,27,26.1,25.8,31.2,31.4,55.2,53.9,57.3,27.7,24.4,23.4,33.4,16.5,23.4,21.2,27.4,30.9,32,69.2,91,64,40.8,43,82.8,75.7,37,57,32.8,18,19.6,15.4,17.3,16.4,16.5,22,24.3,25.5,32.2,31.8,24.3,27.5,85.7,10.9,15.9,16.5,63.2,60.4,29.2,29.8,20.9,20.6,23.2,26,15.5,302.6,363,216.7,21.7,52.1,19.2,17.9,35.9,28.3,18.4,47.2,74.4,50,69.6,40.1,18.9,39.1,14,12.6,113.6,51.8,114.8,6.8,58.3,64.8],"duration":[0,0.824,5.537,2.133,2.594,9.256,1.794,1.585,1.12,2.494,4.222,9.815,2.009,0.372,4.199,7.938,2.737,6.19,8.406,0.562,0.812,10.782,5.935,3.121,6.953,2.541,2.06,5.114,1.382,0.587,0.602,0.559,0.55,0.625,0.622,0.622,7.268,3.709,15.022,4.426,0.793,9.592,10.293,4.599,1.763,0.671,0.665,0.661,0.667,0.662,0.678,0.802,0.831,0.817,0.829,0.818,0.812,0.493,0.494,0.495,0.491,0.493,0.868,1.403,7.293,10.435,2.925,9.415,4.244,9.272,18.845,2.052,1.281,1.156,1.391,5.015,2.976,3.938,1.462,1.419,1.638,1.382,0.725,0.749,0.804,0.762,0.599,0.633,0.7,0.774,0.583,0.609,1.037,1.425,1.672,2.827,1.753,5.48,8.927,2.032,1.365,1.213,1.225,0.379,0.295,0.23,0.258,2.751,1.701,1.921,1.909,1.884,1.438,1.606,1.843,2.384,2.402,3.09,1.322,3.536,1.395,5.493,4.413,2.048,0.82,1.95,2.23,1.54,1.534,1.617,1.055,1.662,1.923,2.103,3.6,2.518,2.403,3.009,1.567,3.61,2.13,2.14,2.622,2.568,5.133,5.675,3.087,1.402,2.447,1.859,1.644,1.467,3.044,2.812,1.739,1.699,1.992,0.894,1.096,1.572,1.453,2.331,1.475,1.621,1.839,2.194,2.377,2.55,1.925,1.601,2.318,3.392,1.219,1.175,1.056,1.352,0.963,1.003,0.967,0.957,1.157,1.165,2.138,2.086,2.217,1.072,0.944,0.906,1.291,0.638,0.907,0.82,1.06,1.197,1.238,2.517,3.308,2.327,1.482,1.565,3.009,2.754,2.116,3.258,1.874,1.028,1.118,0.88,0.989,0.936,0.941,1.258,1.388,1.456,1.839,1.815,1.387,1.572,18.159,2.315,3.358,1.383,5.29,3.397,1.64,1.678,1.175,1.157,1.304,1.461,0.807,15.79,18.668,13.452,1.346,3.234,1.193,1.109,2.226,1.758,1.143,2.928,4.616,3.102,4.323,7.596,4.261,5.87,2.107,2.832,22.729,10.367,22.959,1.352,12.353,13.724],"speed":[0,3.9,9.4,9.4,9.4,5.8,5.8,5.8,7.8,7.8,7.8,7.8,9.7,10,10,10.8,11.9,11.9,10.6,10.6,8.3,6.1,6.1,9.4,9.4,9.4,8.6,8.6,4.2,4.4,4.4,4.4,4.4,4.4,4.4,10.8,10.8,10.8,10.8,12.2,12.2,6.4,6.4,6.4,6.4,5.8,5.8,5.8,5.8,5.8,5.8,5,5,5,5,5,5,6.9,6.9,6.9,6.9,6.9,14.2,14.2,14.2,14.2,15.8,17.8,17.8,7.8,7.8,7.2,7.2,7.2,7.2,14.2,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,12.2,6.9,4.2,4.2,4.2,4.2,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,16.9,27.2,27.2,27.8,27.8,27.8,28.6,28.6,28.9,28.9,28.9,28.9,28.9,28.9,28.9,28.9,28.9,28.9,28.9,28.9,28.3,28.3,28.3,29.2,27.2,27.2,27.2,27.2,27.2,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,26.7,27.8,26.7,26.9,26.9,26.9,26.9,26.9,26.9,26.9,26.9,26.9,26.9,26.9,25.8,25.8,25.8,25.8,25.8,25.8,25.8,25.8,25.8,25.8,25.8,25.8,25.8,27.5,27.5,27.5,27.5,27.5,27.5,27.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,17.5,4.7,4.7,4.7,11.9,11.9,17.8,17.8,17.8,17.8,17.8,17.8,17.8,19.2,19.2,19.4,16.1,16.1,16.1,16.1,16.1,16.1,16.1,16.1,16.1,16.1,16.1,16.1,5.3,4.4,6.7,6.7,4.4,5,5,5,5,4.7,4.7],"maxspeed":[{"unknown":true},{"unknown":true},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"unknown":true},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"unknown":true},{"unknown":true},{"unknown":true},{"unknown":true},{"speed":50,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":130,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":100,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":50,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"speed":80,"unit":"km/h"},{"unknown":true},{"unknown":true},{"unknown":true},{"unknown":true},{"unknown":true},{"unknown":true},{"unknown":true},{"unknown":true},{"unknown":true},{"unknown":true},{"unknown":true}],"congestion_numeric":[null,null,4,4,4,16,16,16,14,14,14,14,null,null,null,8,3,3,9,null,null,41,41,6,6,6,4,4,null,null,null,null,null,null,null,12,12,12,12,6,6,33,33,33,33,3,3,3,3,3,3,20,20,20,20,20,20,6,6,6,6,6,1,1,1,1,1,0,0,46,46,19,19,19,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,null,null,null,null,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,9,9,9,9,6,6,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,6,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,6,9,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,19,19,19,null,null,1,1,1,1,1,1,1,4,4,3,1,1,1,1,1,1,1,1,1,1,1,1,null,null,null,null,null,null,null,null,null,null,null]}}],"routeOptions":{"baseUrl":"https://api.mapbox.com","user":"mapbox","profile":"driving-traffic","coordinates":"5.171923,52.217439;5.2308454,52.2232322","language":"en","bearings":"88.6703415,45;","layers":"0;","continue_straight":true,"roundabout_exits":true,"geometries":"polyline6","overview":"full","steps":true,"annotations":"congestion_numeric,maxspeed,closure,speed,duration,distance","voice_instructions":true,"banner_instructions":true,"voice_units":"imperial","enable_refresh":true},"voiceLocale":"en-US","requestUuid":"zLVDU1F_0idey-iwPfVi52bYMAEV3ilKx9vjFgzMhmQvpr_k4pZKQw=="}```
Looking at the JSON legs->steps the last step in the array doesn't have a bannerInstructions element. I"ll paste the last two steps below for comparison. The maneuver API is expecting each step to have a banner instruction.
The view API classes have a lot of expectations about the contents of the DirectionsRoute
. I'm not the original author of that class so i'm not sure about the necessity of each step having banner instructions vs. just omitting the banner instructions for a step and continuing.
One way to discover the cause of these issues is to checkout the source code and open it in Android Studio, look at the unit tests and modify them enough to use your own route. Most of the tests use either a mock DirectionsRoute
or load one from a file. The JSON can be pasted into a test with DirectionsRoute.fromJson()
. Stepping through the code while laborious can surface any future issues you might encounter with the routes you're generating.
{
"distance": 49.17,
"duration": 6.95657,
"geometry": "aduqbBip~aIrJoc@",
"name": "Nijverheidstraat",
"mode": "driving",
"maneuver": {
"location": [
5.2918,
52.21077
],
"bearing_before": 45,
"bearing_after": 117,
"instruction": "Rechtsaf naar Nijverheidstraat",
"type": "turn",
"modifier": "right"
},
"voiceInstructions": [
{
"distanceAlongGeometry": 25,
"announcement": "bestemming bereikt",
"ssmlAnnouncement": "<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">bestemming bereikt</prosody></amazon:effect></speak>"
}
],
"bannerInstructions": [
{
"distanceAlongGeometry": 49.17,
"primary": {
"text": "Nijverheidstraat",
"components": [
{
"text": "Nijverheidstraat",
"type": "text"
}
],
"type": "arrive"
}
}
],
"driving_side": "right",
"weight": 0,
"intersections": [
{
"location": [
5.2918,
52.21077
],
"bearings": [
41,
117,
225
],
"entry": [
true,
true,
true
],
"in": 2,
"out": 1
}
]
},
{
"distance": 0,
"duration": 0,
"geometry": "mxtqbByt_bI",
"name": "Nijverheidstraat",
"mode": "driving",
"maneuver": {
"location": [
5.29238,
52.21058
],
"bearing_before": 117,
"bearing_after": 0,
"instruction": "Bestemming bereikt",
"type": "arrive"
},
"driving_side": "right",
"weight": 0,
"intersections": [
{
"location": [
5.29238,
52.21058
],
"bearings": [
117
],
"entry": [
true
],
"in": 0
}
]
}
]
}
Crash condition resolved via https://github.com/mapbox/mapbox-navigation-android/pull/5542.
Hello, I've made a sample navigation app which uses mapbox navigation 2.2.2 and a DirectionRoute Json to navigate. But as soon as i press the navigate button which activates the navigation and converts the DirectionRoute Json into a DirectionRoute the app crashes.
Here is the first fragment code: ` class FirstFragment : Fragment() {
} `
And here is a the layout of the fragment: `<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:mapbox="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".FirstFragment">
`
As soon as you press the navigate button the app crashes with stacktrace: com.example.mapboxnewnavigation E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.mapboxnewnavigation, PID: 8308 java.lang.ArrayIndexOutOfBoundsException: length=1; index=4 at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils.getRoadClassArray(MapboxRouteLineUtils.kt:637) at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils.access$getRoadClassArray(MapboxRouteLineUtils.kt:54) at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils$extractRouteData$1.invoke(MapboxRouteLineUtils.kt:515) at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils$extractRouteData$1.invoke(MapboxRouteLineUtils.kt:557) at com.mapbox.navigation.ui.maps.util.CacheResultUtils$CacheResultKey2.invoke(CacheResultUtils.kt:17) at com.mapbox.navigation.ui.maps.util.CacheResultUtils$CacheResultKey2.invoke(CacheResultUtils.kt:15) at com.mapbox.navigation.ui.maps.util.CacheResultUtils$CacheResultHandler.invoke(CacheResultUtils.kt:50) at com.mapbox.navigation.ui.maps.util.CacheResultUtils$cacheResult$2.invoke(CacheResultUtils.kt:38) at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils$extractRouteDataWithTrafficAndRoadClassDeDuped$1.invoke(MapboxRouteLineUtils.kt:479) at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils$extractRouteDataWithTrafficAndRoadClassDeDuped$1.invoke(MapboxRouteLineUtils.kt:497) at com.mapbox.navigation.ui.maps.util.CacheResultUtils$CacheResultKey2.invoke(CacheResultUtils.kt:17) at com.mapbox.navigation.ui.maps.util.CacheResultUtils$CacheResultKey2.invoke(CacheResultUtils.kt:15) at com.mapbox.navigation.ui.maps.util.CacheResultUtils$CacheResultHandler.invoke(CacheResultUtils.kt:50) at com.mapbox.navigation.ui.maps.util.CacheResultUtils$cacheResult$2.invoke(CacheResultUtils.kt:38) at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils.calculateRouteLineSegments(MapboxRouteLineUtils.kt:440) at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils.getTrafficLineExpressionProducer$lambda-37(MapboxRouteLineUtils.kt:1111) at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils.$r8$lambda$bh5wkWVuIHohgdk4TO2twBJAxiw(Unknown Source:0) at com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils$$ExternalSyntheticLambda2.generateExpression(Unknown Source:18) at com.mapbox.navigation.ui.maps.route.line.api.MapboxRouteLineView$updateLineGradientAsync$gradientExpression$1.invokeSuspend(MapboxRouteLineView.kt:527) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
It seem to be a problem at the com.mapbox.navigation.ui.maps.internal.route.line.MapboxRouteLineUtils.getRoadClassArray(MapboxRouteLineUtils.kt:637)
We are using a geometry_index inside our json and it seem to cause the problem. So there is something wrong regarding your geometry_index and the sdk. This also crashes on iOS! so it seems to be a shared problem.
Android API: 30 Mapbox Navigation SDK version: implementation "com.mapbox.navigation:android:2.2.2"
Steps to trigger behavior
Expected behavior
Pressing the navigation button and the navigation starting.
Actual behavior
Pressing the button and app crashes due to indexOutOfBoundException in the MapboxRouteLineUtils.kt