Routing API (1.1.0)

Routing API is a service that computes routes between two or more locations. With the Routing API, you can:

  • Find the most optimal route and estimated time of arrival (ETA) between origin and destination
  • Get turn-by-turn directions for different transport modes including car, truck, bike, and pedestrian
  • Calculate routes based on vehicle specifications such as dimensions, weight, and fuel type
  • Add custom waypoints to follow a specific path geometry instead of the automatically calculated optimal route

Routing

Returns a route from two or more waypoints via POST

Returns a collection of path, turn instructions, sections and elevation profile which fully defines a navigable route between 2 or more waypoints.

Authorizations:
ApiKey
Request Body schema: application/json
required

Routing parameters

transport
string
Default: "car"
Enum: "car" "lorry" "truck" "pedestrian" "bike" "public"

Route transport mode

type
string
Default: "fastest"
Enum: "fastest" "shortest" "economic" "scenic"

Route type. Accepted values depend on the transport mode; other combinations are rejected as invalid:

  • car / lorry / truck: fastest, shortest, scenic
  • bike: fastest, shortest; economic only with an e-bike profile ( *_pedelec, *_spedelec )
  • pedestrian: fastest, shortest
  • public: fastest
profile
string
Enum: "road" "cross" "city" "mountain" "road_pedelec" "cross_pedelec" "city_pedelec" "mountain_pedelec" "road_spedelec" "cross_spedelec" "city_spedelec" "mountain_spedelec" "hike" "walk"

transport mode detailed profile:

  • road / cross / city / mountain: for bike transport mode. Default value is "city"
  • road_pedelec / cross_pedelec / city_pedelec / mountain_pedelec: for bike transport mode with e-bike pedelec tuning
  • road_spedelec / cross_spedelec / city_spedelec / mountain_spedelec: for bike transport mode with e-bike speed pedelec tuning
  • hike / walk: for pedestrian transport mode. Default value is "walk"
waypoints
Array of numbers[ items <float >[ items <float > ] ]

route waypoints. At least 2 are required, or 1 with roundtrip; a track counts as 2 ( its start and end ), so they can be omitted when a track is given. A track with accurate false allows no waypoints

Track with Polyline (object) or Track with Coordinates (object) (track)
One of
polyline
required
string

the track geometry, Google polyline encoded

accurate
boolean
Default: true

accurate track match over map data. Use false for inaccurate track geometry, e.g., finger drawn tracks. A track with accurate false allows no waypoints

restrictions
boolean

if false, transport map restrictions are ignored during routing over track. When not provided it takes the value of accurate: restrictions are respected for an accurate track and ignored for an inaccurate one

waypoint_index
integer >= 0

position of the track in the waypoints list, from 0 to the number of waypoints. By default the track is inserted before the last waypoint

avoid
Array of strings
Items Enum: "highway" "toll" "ferry" "unpaved" "turnaround" "traffic" "roadblocks" "immutable_roadblocks"
details
string
Default: "full"
Enum: "full" "path" "timedistance"

route result details

  • full: geometry & guidance is returned in the result
  • path: only geometry is returned in the result
  • timedistance: only distance & travel time is returned in the result
alternatives
integer
Default: 0

number of requested alternative routes, returned after the main route. Capped at 9 for public transport and 2 for the other transport modes. Alternatives are computed only when the route has exactly 2 waypoints, counting a track as 2 ( its start and end ); otherwise none are returned

terrain
boolean
Default: false

if true, the result will contain the terrain component as an array of elevation over sea values at 30m resolution. Not returned for public transport or details "timedistance"

accurate_approach
boolean
Default: false

if true, the intermediates & destination are approached according to region drive side

fitness
number <float> [ 0 .. 1 ]
Default: 0.5

the user fitness factor as [0,1] value for tuning the bike / pedestrian routing. Values outside [0,1] are rejected as invalid

geometry
string
Default: "lineString"
Enum: "lineString" "polyline"

the encode method of the result path coordinates

  • lineString: coordinates array [[lon,lat,alt], ...], see path_coords
  • polyline: Google polyline encoded
emergency
boolean
Default: false

set true for enabling emergency vehicle options like access to roads with "emergency only" flag and ignore left / right turn restrictions

departure_time
integer
Default: 0

departure time as a Unix timestamp in seconds. For public transport with pt.algo_type "arrival_based" it is the arrival time. For transport "public" an explicit value is interpreted as local time at the departure stop, the same as in the SDK. 0 or omitted means the current time

locale
string
Default: "en"

language of the instructions, as a lowercase ISO 639-1 code ( e.g., en, de, fr ) or an ISO 639-2 code ( e.g., eng ), optionally with a region ( e.g., en-US ). A code that cannot be parsed is rejected as invalid; a language without translations falls back to the closest available one

object (pt)

public transit specific parameters. They are used only if transport mode is "public"

algo_type
string
Default: "departure_based"
Enum: "departure_based" "arrival_based"

type of the used PT algo

  • departure_based: the provided time stamp field is used as departure time for the routing
  • arrival_based: the provided time stamp field is used as arrival time for the routing
sorting
string
Default: "best_time"
Enum: "best_time" "least_walk" "least_transfers"

type of the PT solutions sorting

  • best_time: solutions sorted by the shortest travel time
  • least_walk: solutions sorted by the shortest walk distance
  • least_transfers: solutions sorted by the least transfer count
minimum_transfer_time
integer
Default: 1

minimum transfer time in minutes

maximum_transfer_time
integer
Default: 300

maximum transfer time in minutes

maximum_walk_distance
integer
Default: 5000

maximum walk distance in meters

object (vehicle)

vehicle characteristics

profile
string
Enum: "road" "cross" "city" "mountain" "road_pedelec" "cross_pedelec" "city_pedelec" "mountain_pedelec" "road_spedelec" "cross_spedelec" "city_spedelec" "mountain_spedelec" "hike" "walk"

transport mode detailed profile:

  • road / cross / city / mountain: for bike transport mode. Default value is "city"
  • road_pedelec / cross_pedelec / city_pedelec / mountain_pedelec: for bike transport mode with e-bike pedelec tuning
  • road_spedelec / cross_spedelec / city_spedelec / mountain_spedelec: for bike transport mode with e-bike speed pedelec tuning
  • hike / walk: for pedestrian transport mode. Default value is "walk"
mass
integer >= 0

vehicle mass in kg; for bike transport, the mass of the e-bike. Must not be negative

speed
number <float>

reference speed for the vehicle in m/s. For car, truck and bike it must be greater than 0 when given, otherwise the request is rejected as invalid.

  • car / truck: the vehicle maximum speed
  • bike: the e-bike reference speed, used only with an e-bike profile ( *_pedelec, *_spedelec )
  • pedestrian / public: not used
fuel
string
Default: "diesel"
Enum: "electric" "petrol" "diesel" "lpg"

the vehicle fuel type. For electricity fuel type (in conjunction with transport mode car/truck), an EV routing solution is generated with intermediate charging station stops. EV routing requires charger_ports ( at least one valid port ) and range > 0, otherwise the request is rejected as invalid

batt_capacity
integer

battery capacity for EV and e-bikes in Wh

charger_ports
Array of strings
Items Enum: "type1" "type2" "nacs" "ccs1" "ccs2" "chademo" "chaoji" "gbt_ac" "gbt_dc"
range
integer

vehicle range in meters. Currently used only for EVs

charge
integer

EV km charged in one hour (with battery capacity in 10% - 80% )

height
integer >= 0

vehicle height in cm. Must not be negative

length
integer >= 0

vehicle length in cm. Must not be negative

width
integer >= 0

vehicle width in cm. Must not be negative

axle
integer >= 0

vehicle axle load in kg. Must not be negative

departure_soc
number <float>

EV departure battery SoC. ( 0 - empty, 1 - full )

chargerArrival_soc
number <float>

EV minimum SoC when arriving to a charging station

chargerDeparture_soc
number <float>

EV maximum SoC when leaving a charging station

destination_soc
number <float>

EV minimum SoC when arriving at destination

charger_overhead
number <float>

EV overhead time spent in a charging station, in minutes

plate
string

vehicle plate. Used for avoidance on roads with access restrictions based on plate mantissa

sections
Array of strings
Items Enum: "surface" "road_class" "speed_limit" "country"
avoid_geofence_areas
Array of strings

array of geofence areas tags / names to avoid

avoid_geofence_anti_areas
Array of strings

array of geofence anti areas tags / names to avoid

object

roundtrip routing parameters

range
integer <uint32>

roundtrip range parameter

random
integer <uint32>

roundtrip random seed parameter

debug
boolean
Default: false

If true the result is beautified for easy human read

Responses

Response Schema: application/json
object
copyrights
Array of strings
object (errorObject)

returned instead of routes when the request is invalid ( HTTP 400 ) or when no route can be computed ( HTTP 200 )

code
integer

numeric error code, for support and diagnostics. Use reason and details for display

reason
string

short error explanation, e.g., "Invalid input", "No routes available between these locations", "Route too long". May be empty for some errors

details
string

what was wrong with the request. Returned only for invalid requests

Array of objects

the main route followed by the alternative routes. Not returned together with error

Array
distance
integer

route total distance in meters

time
integer

route total time in seconds

bbox
Array of numbers <float> [ items <float > ]

route bounding box [ west, south, east, north ] = [ min longitude, min latitude, max longitude, max latitude ]

object

public transport information. Returned only for routes computed with transport "public", walk-only answers included

fare
string

total ticket price of the route: one " " pair per currency (amount with 2 decimals, ISO 4217 currency code), pairs separated by one space. Where the operator has fare classes, it is the second-class fare. Not returned when no fare data is available for the operators used

frequency
integer

seconds between consecutive departures of the same journey pattern, determined from the journeys found for this request. Not returned when it cannot be determined

respects_all_conditions
boolean

currently always true, since the REST API accepts no wheelchair, bike or transit-type preferences

buy_ticket_urls
Array of strings

links where tickets for this route can be bought. Not returned when none is known

Array of objects

one entry per route segment, the part between two consecutive waypoints; public transport legs and EV charging stops also start a new segment. Returned only for details "full" and routes with more than one segment

Array
distance
integer

segment distance in meters

time
integer

segment time in seconds

beginSoC
number <float>

electric vehicle and e-bike routes only - battery state of charge at the segment start, as a fraction of the battery capacity ( 0 - empty, 1 - full )

endSoC
number <float>

electric vehicle and e-bike routes only - battery state of charge at the segment end, as a fraction of the battery capacity ( 0 - empty, 1 - full )

chargeTime
integer

EV routes only - charging time in seconds at the charging station ending the segment. Returned only when not 0

Points with Coordinates (object) or Points with Polyline (object)

route path coordinates list. Not returned for details "timedistance"

One of
type
string
Value: "LineString"
coordinates
required
Array of numbers (path_coords) [ items <float >[ items <float > ] ]

path in a form of coordinates array [[ lon, lat, alt ], ...]; alt is the altitude in meters, present on points along the road network. Points of an inaccurate track ( accurate false ) and public transport shapes have no alt

Array of objects

turn-by-turn instructions. Returned only for details "full"

Array
id
integer

turn event identifier

roundabout_exit
integer

roundabout exit number, returned on the instruction entering a roundabout

distance
integer

distance in meters from the previous instruction to this one ( 0 for the first instruction )

time
integer

time in seconds from the previous instruction to this one ( 0 for the first instruction )

point
integer

index in path coordinates list

heading
number <float>

turn heading in degrees

turn
string

turn instruction ( translated in requested language code )

follow
string

associated follow the road instruction ( translated in requested language code )

street
Array of strings
beginSoC
number <float>

electric vehicle and e-bike routes only - battery state of charge at the instruction, as a fraction of the battery capacity ( 0 - empty, 1 - full )

endSoC
number <float>

electric vehicle and e-bike routes only - battery state of charge at the next instruction, as a fraction of the battery capacity ( 0 - empty, 1 - full )

chargeTime
integer

EV routes only - charging time in seconds, for the instruction entering a charging station. Returned only when not 0

object

the route sections requested with sections, one array per requested section type

Array of objects
Array
type
string
Enum: "smooth" "paved" "rough" "compacted" "dirt" "gravel" "path" "ice" "snow" "undefined"

section surface type

start_point
integer

start index in path coordinates list

end_point
integer

end index in path coordinates list

start_distance
integer

start distance in meters from route start

end_distance
integer

end distance in meters from route start

Array of objects
Array
type
string
Enum: "motorway" "state_road" "road" "street" "cycleway" "path" "singletrack"

section road class type

start_point
integer

start index in path coordinates list

end_point
integer

end index in path coordinates list

start_distance
integer

start distance in meters from route start

end_distance
integer

end distance in meters from route start

Array of objects
Array
speed
number <float>

section speed limit in m/s ( 0 = unknown )

start_point
integer

start index in path coordinates list

end_point
integer

end index in path coordinates list

start_distance
integer

start distance in meters from route start

end_distance
integer

end distance in meters from route start

Array of objects
Array
iso
string

section country ISO 3166-1 alpha-3 code

start_point
integer

start index in path coordinates list

end_point
integer

end index in path coordinates list

start_distance
integer

start distance in meters from route start

end_distance
integer

end distance in meters from route start

object

elevation data, returned when terrain is true. Not returned for public transport or details "timedistance"

elevations
Array of numbers <float> [ items <float > ]

altitude value in meters from sea level, at 30 m resolution

total_up
number <float>

route total uphill in meters

total_down
number <float>

route total downhill in meters

Array of objects
Array
start
integer

start distance in meters from route start

end
integer

end distance in meters from route start

slope
number <float>

section average climbing slope in percent

grade
integer

section climb category - 0 = HC ( hardest ), then 1 to 4, with 4 the easiest

Response Schema: application/json
object
copyrights
Array of strings
required
object (errorObject)

returned instead of routes when the request is invalid ( HTTP 400 ) or when no route can be computed ( HTTP 200 )

code
integer

numeric error code, for support and diagnostics. Use reason and details for display

reason
string

short error explanation, e.g., "Invalid input", "No routes available between these locations", "Route too long". May be empty for some errors

details
string

what was wrong with the request. Returned only for invalid requests

Request samples

Content type
application/json
Example
{
  • "transport": "car",
  • "type": "fastest",
  • "waypoints": [
    • [
      • 8.16568,
      • 49.61167
      ],
    • [
      • 8.69878,
      • 50.06881
      ]
    ],
  • "avoid": [
    • "unpaved",
    • "highway",
    • "traffic"
    ],
  • "details": "full",
  • "terrain": true,
  • "geometry": "polyline",
  • "sections": [
    • "surface",
    • "country"
    ],
  • "alternatives": 0,
  • "locale": "fr",
  • "debug": true
}

Response samples

Content type
application/json
Example
{
  • "info": {
    • "copyrights": [
      • "MagicLane"
      ]
    },
  • "routes": [
    • {
      • "distance": 89205,
      • "time": 5547,
      • "bbox": [
        • 8.16568,
        • 49.61147,
        • 8.69878,
        • 50.07863
        ],
      • "points": {
        • "type": "polyline",
        • "polyline": "uvxmHa{yp@UqBcAuIUsCGk@IaAK}@YwDKkAMoAUwDG{AGgBGeD@m@Ba@n@}FH}@Bs@@y@@{@KmDGmBMyBI}@??GeAO}AKgAEm@UkEAKaDXs@Fe@DkAB??w@A{@IkAW_B]o@QaFqAyBo@mCoAmA_As@u@qA_B_BgCmCeEcA_BsI_NCEkAiBS_@kDqFsBcDkCcE}BcDoBsCcCmDgCsDw@iAS[gBcCQs@CMAK?KAM@GLi@T}@@EVs@HYDQBQ@O@K@U?M?QAQCMCOAKGSGQGMKQIGIISSGEEEIIIKGMEOCMCSAMAQ@K@Q@OPqAFs@RcB?AFe@??b@yCj@}D|DaZT_Bl@iEXyBHi@XuB~@oHf@uEZyCX{Ch@gHL{BTaEPyD@o@PkHFkD?g@BaG@wCAaFKyHE{AKcHIuB?KC{@K}DOsFWmKImDGmDKyICiC?I@iEBqEB}CDeBBeBJeDJqCP}DH{AHkAJiB^yEl@sGr@uGzBuQr@_Gf@mEr@eHLkA@S^oEXmEBUBm@FiAHwBL_DF{C@m@B}B@gC?gDA}AGkFOwGG}BS{FMkCaBy]O}Cs@uQc@{PAa@C_AAi@?C?}DFgF?w@EeBAuAAsM?e@@cDDcIX{TFuDJuI^{WB}BD{BJmHHyGLkJd@g\\B}AB_Cf@w_@ZwSRwKFkBPeFRcEFu@PoCd@{Fx@gHt@}Fx@qEp@oDbAyEp@iCDSXs@Ti@Zm@PUNIRGP?P@LFNJLNHPFPDTBZ?V?RE\\GXIV[v@ELYVMBM?OEYKkAgBm@eAs@yA]s@EICIYm@GM_@y@_AmCSq@Y}@g@sBU}@{@gEuA{GsB_Kg@cCoBiJ}@eEuAiHKi@Kg@EWAIAI@G@G@I?IAICICGGCCEEIEMCIMc@Ga@_@{Bs@uDo@iCEQk@qBW_AGSK_@a@{AAGQq@Mi@GWKm@GUG]CWEYCUCWAS?K?G?e@?C@e@j@@D?X?vCHF?\\@L?V@~CFR?bDB^?z@?B?@K@KB_@?AA[@S?Q@QBODOHULYBIFODMBKBQ?G@OA_@AMM_B_@wEAOAI?I?GBI@G`A}Cx@gCp@}BBE@GHYF]@EBI?I?KAGm@}DOcAC]Ea@?a@?i@Fm@B[D?FCBCDIBK?KAMCKEGGECMASCeAAME{C?Y?M?o@HWJSNM^KNEz@Un@S`A]f@GL?LBJFJHHNHNFPHf@DRLt@ZlBBNDX@^C^IRMNIBO@OE]MS]wAeC]q@m@kAe@aAKQa@_Aa@eAUi@ISc@qAsAyDeBeFeFmOk@_B]o@m@_Ao@s@o@i@cAg@e@OaA]cBg@QEg@Qs@]}@k@k@WSGUKc@K[EYEKAIAKEGCIEGGEECEEGEKEIEOG[K[Ge@m@yEeE}^gAeKcAeJK}@YmBKo@Ic@[oAUo@Si@Yy@MIIEICGAK?G@EBCB]ZW^e@v@{@lASZ_@~@gBhFc@dAO\\Wd@W`@Y\\i@h@k@`@m@Zs@ZMFcFfB}Aj@WHs@VcCl@WFQDq@Nm@LWBW?OEOESMKIOQ[c@o@aAi@u@QWc@q@IOy@oAeBkCGKi@y@gGmJ]g@yD_GuB}CwEgHuAsB_IuLU_@GIyCqEkAeBEGKVU`@CDIPe@`AWd@]b@SRUP[NWHWDm@@m@KWKYQ][[_@c@q@e@y@{@iAi@q@aAw@s@e@o@[}BaAgAa@}GmCc@MYCWAW?c@FUDQF[N_@V]\\[^U`@S\\Wb@KTc@r@EHyAhBcDvDmApAqAnAWTk@b@iAj@_Br@eWfLa@P{EvB_Bz@}AbAu@h@oA`Aw@j@g@Xm@ToEz@}Dx@m@LkATuARaBRoALQ@_BHaCD_C@iACq@Eo@Ie@IWEcA_@gAc@{@g@aAw@}AeBe@q@mAuBuAuC{A_D}AwCo@gAq@_AkA{AsC}CuAoAmBmB_BkB_AuAe@_Ae@gAs@yBe@gBMm@SiACOMcAMiAKmAGsACy@A_AA[@gD?yC?_B@oFBiC?_@AiBC_ACk@UyCSqCCYAMAIAGS_C_@eCSeAY_Ak@uAIMg@_Aq@gAUa@O]c@mASy@CMMy@Gg@?EASC]?[Ao@?A?oA?g@Ci@SqDy@gMG}@a@sGg@_IYkEI{AMeBGy@g@}Hc@}GQqCMyBWqCSkCOaBUaBWkBk@cDYyAe@mBk@qBo@sBq@kBk@uAsBeE_BoCgE}GsCqEeAqB_B}CuAaD_A_Co@gBcAaDGQEM]kAq@gCEQa@cBQ}@w@sDo@_E[wBUeB]_D_@uE?GY{DUkEMoEG}E?[?_GNqIJuBd@iKH{Ar@wM?Af@sIH_BH}AF_BBeAB}ABu@?g@@OBMBOBMDIBIDIDEHKFGJGHCJCJ?J@HBJDJFJHHLHLFNDPBRBR?P?L?JCLALELCFCHCFI@EDGFUCo@OcAc@a@SaFyBc@Qc@Ua@W[U]W]Y[]][Y_@_@g@_@g@[k@[k@[o@Wo@yC_IYq@Yo@Ym@[m@KOQY]i@_@g@a@e@a@c@c@a@c@_@CCm@c@sE{CoAy@iAcAc@c@g@k@EIY]SWgAkBm@uA]y@U}ABK?M?KCKEGEGGAGAMWYw@[kByBeOk@{Cm@sCu@yC_AaDy@_Cw@mBqAuCo@oACEk@gAS[S]]i@uBwC_BiBsAuAiAcAiA}@qA}@}A_AaAg@qCiA}@]eBi@u@WUGMEICIC?I?G?GCIAECEECECEAE@E@EBCDCHCHICEAQGgF{AsAa@_@K_@K_@GWGUCSEQAQCUAOAWA[?[?O?Q@Y@YBSDSBSDWFODQFUHSHo@Vw@d@s@h@u@j@eIfHmA|@a@TuAp@o@Z}Av@_@RYHIBK?GKKCI?IBGFEJCLALOPWVUJoAXWBmAJkBCaBUgA]KGsBcAqBkAwBmAuGsDiB}@_@Qg@U{Bw@aBe@aBk@cA]iLcEcMqEi@QuFsBaC{@aAg@c@U}@q@YYSa@EIEI@OAOCOGKIEGAG?GBSMYWQc@IQeCwFaAyBmAuBoAwAs@w@w@q@qBuA{DmC_Ao@}B}AaEsCkOgKe@[y@e@cBy@cBm@}Ba@_AKo@Gi@Ae@?O?S?M@E?_@Bc@Dg@Hi@Hy@PsBr@cBj@eA\\mBr@}@\\{FxByCdAoBz@qAr@eAr@oAfAA@m@p@g@n@uAxBCDoAdCm@vAsCtHcAfCkCjHSd@CFKXO`@Sf@Wl@Yj@Y`@a@`@]X]V]Rc@Pa@La@Hc@Da@@e@?e@Ec@Ia@Me@Se@WQKUSOOwA}A]]OQMMOQKIUWq@o@]Yw@c@_@QqAg@y@SgAS{@Ks@E_@?i@?eAB{@FcC\\mDbAc@PwAl@{BdAgAn@}MtHi@Z{EzCiFnDwIlGOJc@ZGBUPYTi@b@o@f@iCnBkGrEsBxAwBvAoBpAkBfAsDlB}Ar@_C`AuCbAC@oA^_ATyCt@kDn@qC\\]DmDVyDN{C@W?cBAgCIsFc@_Dc@QCq@Ka@G]Ei@Ic@IqF_AiB]sDk@y@KaCY{AOqAEeCKcCAgBB{BLuAJ{Dh@_Cf@y@Ru@PcAZcAZsAj@cA`@gAf@_Ad@cB|@cB`A]Ra@TSJQJKHEBc@V{@f@gAn@mCzAy@b@gBz@oBz@_Bh@iA^e@NwBh@qAXcARmBXE@oJlAiAPwBV_BVe@FG@YD]DYD}AP_BPoALaAN_BPi@Dy@?{@Gq@KgA[q@W}CiAmBu@}DyA{Ak@kFkBeA[oBk@sCo@cEq@cAM_BS]Ga@CGAK?SCGAG?c@Em@C}CO_CGkB?U?_B@}ADyCNiCTYDeBTcDf@o@L}AXqDz@_H`Bg@JaJtBG@cDl@yBXgCPI@yBD{@?s@?sAEaDUcBSsCk@cBc@yAg@uAi@qBaAq@_@_@QOISMKGEC[Q}CuBaDiCcB{AsFcFyCkCsDwCeBmA_BaA[Q[OgAk@qCgAoBi@aAQcAQeCY{AC]?qA?m@BgCTmAROBi@Lc@JmAZw@Tw@XaA\\}@`@OFe@TUJ}@d@w@d@sEnCGDkBhAoBlAm@`@MFc@X_@Ti@XQF]Pi@b@_@\\]TcBbAyChBC@KHE@CBeAn@WNuBpAa@PSHYFQ@SAGAQAKEMCa@OWKIAK@E@UHKDcBv@MF??aA`@yB|@o@XwB|@]LEBUHoEhBYFE@UEKAO?UAWF}@@a@ES?cB?cB@i@DcAAy@?cBAsAAqHE_EEaC?iCA_HCsBES?yCAgDAeDAcECsAAmAAeBA_CC}A?K?}C@kBCQE_A?E?I?M?O?}AAe@@e@@iBCk@A_@Iw@GEAu@QQGMEg@_@m@c@]c@KKq@aAi@s@c@c@qAsA}@w@}AeAeImEw@a@OIaGeDYOcAg@cA_@s@SeASc@GGAMCSEIAK?EAYCc@CsAGgFCi@A{BDqA@G?U?K@S??b@?N?h@@l@?|AAl@Ed@Kp@I`@Oh@Yr@k@pA_G|MaAxBQb@KRIPITQ`@w@`Bg@fAkDxH]n@_@l@]d@WXo@l@aExCe@Z{FdEkDbC_C~ACBC@YPg@TsAj@m@VWJSHsAh@oAl@SF[LeBp@E@uAh@kAj@}@n@q@r@u@|@o@fAOZWj@w@~Ac@|@CB]JG@G@M?K@c@WkAgBkAmBS]GIOWSYq@aAo@w@mDwEw@eAOSyAqBe@cA_@wAKq@aAgIOoAuAgLGi@EqAImCCq@A{@@K@i@Fy@Fm@Jm@Lm@f@cBTy@ZeAt@iCr@cCBG@ENi@HYbA_DRg@N_@h@y@NOPOLMDEDENGx@YZKp@S`@SZOHMNWBGJe@@CBQDO??@CDEBGBQ?QCGIIGGGEE?E?EDEHGAYG_@@y@SoA]GC_@MMEGCUIk@Yo@_@yAu@{@m@_Am@aAy@e@e@_@]a@a@SSOQe@i@oBiCwDuFsAuAK]][CEGESIYWw@w@kBkBk@k@yCuCOMs@o@gFcFMK}EuEkAiACCyGqGaAaA_AgAoAmBi@cAYi@eBaDc@u@gAuB[i@uAiCy@gBo@{Ae@uAc@uAYoAYqASiAOkAUkBAQOcBQcCmAyP]qEk@iGOeBYcDKiAWyC]wDs@}HCWIcA_AiKGq@M_BSmB[iDQwAQuAWyAo@aDkA{FuC{NMg@g@aCo@_DuA_Hi@iCYaA[_AYw@IUg@iAu@qA}@sAaC{CkDiEcCwCkDmEuAaB_BqBq@y@OOKOU[Y]c@m@a@e@}DeFa@g@KMwKaNmBaC}BsC{AgBsBqCe@o@o@{@_BaCe@o@_@g@QSi@g@q@k@u@i@_Ak@a@UY[OUSc@Qg@Oo@UoA[_BGWISGMEEs@eAYe@MYCQCQ?GCc@?MKuCEcA?QCSIo@Ga@QeA_AkFCOMo@CKKm@Mo@{@wEw@eEa@{BAG{@qEEUCKAM?UI]GGGYu@yD?KC[E[CK?K?K@M?KCIEGECGGCGAIKc@Ma@cAqFq@qDIg@Oe@EOSo@w@gBKc@Q_@EKkAmCCGCGGOOYM[gBiESc@Qa@EMEI[u@]y@m@wAaCsF}BsFWi@OUU_@QWQSQS[YEEc@[k@[m@Uo@Om@G_@AQ?cDBi@CS?U?[?I?W?Y@I@o@@q@@O?G?e@BaMJI?oA@o@Ba@DODSBGB_@Hg@Rs@\\ID}@d@uHdEYLg@R[JYHYD[BY@[?YAM?[EMCWGWIUIWMUMe@_@oAeAqAqAo@o@GIa@g@sAmBW_@QUOSMQEEW_@oAeBqHuJmEgGiG}HkCeDaAcAoBoBMM}ByB_KuJm@k@YWQQ}A{AyAwAiAiAEGSQMMMMIICCs@q@c@c@IISSaFsEyGiG}M_Mc@a@]Y_@Y]U]SoCwAmAs@e@]e@a@kAeAkCaCc@a@eAeAgAmAo@}@mAkBq@{@cAqAQYY_@W_@e@c@m@k@WUOO{AiAk@_@_FsEyHeHUSEGiJuI_EuDqCiCc@a@eC}BiAgAuBmBkCcCe@c@YYcA}@aA_AwPwOGGqBkBcB}AiA}Aq@y@[_@cC{ByRuQwBuBIIuBuBq@q@YYc@c@cAgAe@g@aDqDwBgCiB{B_BuBuAgBaDqEYa@uGsJ{CqEcCqD_BaCgI_Mo@aAkI_M}R}YcFqHi@y@_CoDwB_DuB_D}AcC}@oAk@y@OQeBaCeCmDg@o@wC_Eo@}@a@e@SQOKMIOKYMQGOEA?WG_AMQCWGSG[QSMOOQUU[[]KOEICEKSKQMSYa@KGKEKCKAK@MBMFMJKHKHIJCDIJMTUNEBGDQFKDOBQBO?O?O?iA[yBk@wBg@a@KiEcAo@QQGSMQMGEUUSUIIg@m@[]WUKGSOOECAOEWEOASCgAKYEoAY_AYaBi@k@QsA]e@Iw@MgAG_AEgAB}BUe@CeDYiAOcAQc@Ia@GeASu@OgAWeE}@mJuBoEcAuIkBMCm@MaAW{Dw@i@[c@i@k@oAWk@yAaDw@gB_AuBMi@Aa@Bc@BQRu@VShByAvDiE`AiBf@_AdDwGR_@nAgCXk@jBsDfAwBFMfBqDlAmCJYPa@rAcDb@iAl@_BpAiDNc@FMpCmHdAmCzA_ElA{C~DcKDOb@qAFQBEBGb@kAzB{F|@_Cb@kAtAqDnBiFhFeNlFkNjDeJDKbAkCZw@x@uBNc@x@uB^cA\\aAxAwDvAsDx@yB~@cC|@aCRk@Vo@J[Nc@FSH[@I@GBOYEE?GAC?YCW?UAG?S?G?C@g@BeAHmBLwDXoBNaCPkOhAe@DwALoJp@wAJcCPG@QkAGm@AIeBeQCWlEx@"
        },
      • "instructions": [
        • {
          • "id": 44,
          • "distance": 0,
          • "time": 0,
          • "point": 0,
          • "heading": 73.05,
          • "turn": "",
          • "follow": "Suivez Hauptstraße sur 1.18 km.",
          • "street": [
            • "Hauptstraße",
            • "L450"
            ]
          },
        • {
          • "id": 5,
          • "distance": 1181,
          • "time": 102,
          • "point": 31,
          • "heading": 80.44,
          • "turn": "Tournez à gauche sur Weinstraße, B271.",
          • "follow": "Suivez Weinstraße sur 2.18 km.",
          • "street": [
            • "Weinstraße",
            • "B271"
            ]
          },
        • {
          • "id": 2,
          • "distance": 2183,
          • "time": 106,
          • "point": 64,
          • "heading": 39.83,
          • "turn": "Tournez à droite sur B47.",
          • "follow": "Suivez B47 sur 10.13 km.",
          • "street": [
            • "B47"
            ]
          },
        • {
          • "id": 24,
          • "distance": 10130,
          • "time": 420,
          • "point": 232,
          • "heading": 118.86,
          • "turn": "Prenez la sortie.",
          • "follow": "Suivez la route sur 262 m."
          },
        • {
          • "id": 43,
          • "distance": 262,
          • "time": 21,
          • "point": 254,
          • "heading": -52.97,
          • "turn": "Serrez à droite sur Kolpingstraße, K17.",
          • "follow": "Suivez Kolpingstraße sur 1.26 km.",
          • "street": [
            • "Kolpingstraße",
            • "K17"
            ]
          },
        • {
          • "id": 34,
          • "roundabout_exit": 2,
          • "distance": 1257,
          • "time": 93,
          • "point": 286,
          • "heading": 31.46,
          • "turn": "Quittez le rond point à la 2ième sortie sur Kolpingstraße, K17.",
          • "follow": "Suivez Kolpingstraße sur 26 m.",
          • "street": [
            • "Kolpingstraße",
            • "K17"
            ]
          },
        • {
          • "id": 20,
          • "distance": 26,
          • "time": 6,
          • "point": 293,
          • "heading": 31.46,
          • "turn": "Quittez le rond point vers la droite sur Kolpingstraße, K17.",
          • "follow": "Suivez Kolpingstraße sur 532 m.",
          • "street": [
            • "Kolpingstraße",
            • "K17"
            ]
          },
        • {
          • "id": 2,
          • "distance": 532,
          • "time": 56,
          • "point": 325,
          • "heading": 92.41,
          • "turn": "Tournez à droite sur Cornelius-Heyl-Straße.",
          • "follow": "Suivez Cornelius-Heyl-Straße sur 411 m.",
          • "street": [
            • "Cornelius-Heyl-Straße"
            ]
          },
        • {
          • "id": 5,
          • "distance": 411,
          • "time": 38,
          • "point": 338,
          • "heading": -179.09,
          • "turn": "Tournez à gauche sur Gutleutstraße.",
          • "follow": "Suivez Gutleutstraße sur 687 m.",
          • "street": [
            • "Gutleutstraße"
            ]
          },
        • {
          • "id": 34,
          • "roundabout_exit": 2,
          • "distance": 687,
          • "time": 115,
          • "point": 388,
          • "heading": 22.08,
          • "turn": "Quittez le rond point à la 2ième sortie.",
          • "follow": "Suivez la route sur 44 m."
          },
        • {
          • "id": 20,
          • "distance": 44,
          • "time": 13,
          • "point": 398,
          • "heading": 22.08,
          • "turn": "Quittez le rond point vers la droite sur B 9.",
          • "follow": "Suivez B 9 sur 131 m.",
          • "street": [
            • "B 9"
            ]
          },
        • {
          • "id": 2,
          • "distance": 131,
          • "time": 15,
          • "point": 406,
          • "heading": 90,
          • "turn": "Tournez à droite sur B9.",
          • "follow": "Suivez B9 sur 158 m.",
          • "street": [
            • "B9"
            ]
          },
        • {
          • "id": 24,
          • "distance": 158,
          • "time": 13,
          • "point": 414,
          • "heading": 163.52,
          • "turn": "Prenez la sortie sur B 9.",
          • "follow": "Suivez B 9 sur 1.34 km.",
          • "street": [
            • "B 9"
            ]
          },
        • {
          • "id": 24,
          • "distance": 1344,
          • "time": 77,
          • "point": 461,
          • "heading": 15.04,
          • "turn": "Prenez la sortie sur B 47.",
          • "follow": "Suivez B 47 sur 1.21 km.",
          • "street": [
            • "B 47"
            ]
          },
        • {
          • "id": 5,
          • "distance": 1214,
          • "time": 77,
          • "point": 496,
          • "heading": 54.52,
          • "turn": "Tournez à gauche sur L3261.",
          • "follow": "Suivez L3261 sur 2.38 km.",
          • "street": [
            • "L3261"
            ]
          },
        • {
          • "id": 5,
          • "distance": 2377,
          • "time": 163,
          • "point": 559,
          • "heading": 41.34,
          • "turn": "Tournez à gauche sur L3261.",
          • "follow": "Suivez L3261 sur 9.91 km.",
          • "street": [
            • "L3261"
            ]
          },
        • {
          • "id": 34,
          • "roundabout_exit": 1,
          • "distance": 9915,
          • "time": 554,
          • "point": 812,
          • "heading": -42.73,
          • "turn": "Quittez le rond point à la 1ère sortie sur B44.",
          • "follow": "Suivez B44 sur 14 m.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 20,
          • "distance": 14,
          • "time": 3,
          • "point": 815,
          • "heading": -42.73,
          • "turn": "Quittez le rond point vers la droite sur B44.",
          • "follow": "Suivez B44 sur 1.44 km.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 34,
          • "roundabout_exit": 2,
          • "distance": 1443,
          • "time": 96,
          • "point": 862,
          • "heading": 1.47,
          • "turn": "Quittez le rond point à la 2ième sortie sur B44.",
          • "follow": "Suivez B44 sur 37 m.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 20,
          • "distance": 37,
          • "time": 8,
          • "point": 870,
          • "heading": 1.47,
          • "turn": "Quittez le rond point vers la droite sur B44.",
          • "follow": "Suivez B44 sur 1.53 km.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 34,
          • "roundabout_exit": 2,
          • "distance": 1531,
          • "time": 102,
          • "point": 903,
          • "heading": -51.98,
          • "turn": "Quittez le rond point à la 2ième sortie sur B44.",
          • "follow": "Suivez B44 sur 52 m.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 20,
          • "distance": 52,
          • "time": 18,
          • "point": 918,
          • "heading": -51.98,
          • "turn": "Quittez le rond point vers la droite sur B44.",
          • "follow": "Suivez B44 sur 1.11 km.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 34,
          • "roundabout_exit": 1,
          • "distance": 1111,
          • "time": 77,
          • "point": 962,
          • "heading": -83.24,
          • "turn": "Quittez le rond point à la 1ère sortie sur B44.",
          • "follow": "Suivez B44 sur 45 m.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 20,
          • "distance": 45,
          • "time": 10,
          • "point": 970,
          • "heading": -83.24,
          • "turn": "Quittez le rond point vers la droite sur B44.",
          • "follow": "Suivez B44 sur 1.91 km.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 34,
          • "roundabout_exit": 2,
          • "distance": 1911,
          • "time": 103,
          • "point": 1003,
          • "heading": -19.5,
          • "turn": "Quittez le rond point à la 2ième sortie sur B44.",
          • "follow": "Suivez B44 sur 44 m.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 20,
          • "distance": 44,
          • "time": 12,
          • "point": 1011,
          • "heading": -19.5,
          • "turn": "Quittez le rond point vers la droite sur B44.",
          • "follow": "Suivez B44 sur 5.19 km.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 1,
          • "distance": 5190,
          • "time": 314,
          • "point": 1128,
          • "heading": -26.55,
          • "turn": "Continuez tout droit sur B44.",
          • "follow": "Suivez B44 sur 15.02 km.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 5,
          • "distance": 15023,
          • "time": 924,
          • "point": 1462,
          • "heading": 0,
          • "turn": "Tournez à gauche sur Südring.",
          • "follow": "Suivez Südring sur 2.09 km.",
          • "street": [
            • "Südring"
            ]
          },
        • {
          • "id": 2,
          • "distance": 2088,
          • "time": 173,
          • "point": 1519,
          • "heading": -47.57,
          • "turn": "Tournez à droite sur Nordring.",
          • "follow": "Suivez Nordring sur 1.76 km.",
          • "street": [
            • "Nordring"
            ]
          },
        • {
          • "id": 34,
          • "roundabout_exit": 3,
          • "distance": 1757,
          • "time": 134,
          • "point": 1586,
          • "heading": -39.89,
          • "turn": "Quittez le rond point à la 3ième sortie sur Frankfurter Straße.",
          • "follow": "Suivez Frankfurter Straße sur 59 m.",
          • "street": [
            • "Frankfurter Straße"
            ]
          },
        • {
          • "id": 20,
          • "distance": 59,
          • "time": 20,
          • "point": 1599,
          • "heading": -39.89,
          • "turn": "Quittez le rond point vers la droite sur Frankfurter Straße.",
          • "follow": "Suivez Frankfurter Straße sur 7.48 km.",
          • "street": [
            • "Frankfurter Straße"
            ]
          },
        • {
          • "id": 34,
          • "roundabout_exit": 2,
          • "distance": 7479,
          • "time": 412,
          • "point": 1781,
          • "heading": 18.71,
          • "turn": "Quittez le rond point à la 2ième sortie sur Gerauer Straße, B44.",
          • "follow": "Suivez Gerauer Straße sur 23 m.",
          • "street": [
            • "Gerauer Straße",
            • "B44"
            ]
          },
        • {
          • "id": 20,
          • "distance": 23,
          • "time": 8,
          • "point": 1786,
          • "heading": 18.71,
          • "turn": "Quittez le rond point vers la droite sur Gerauer Straße, B44.",
          • "follow": "Suivez Gerauer Straße sur 11.82 km.",
          • "street": [
            • "Gerauer Straße",
            • "B44"
            ]
          },
        • {
          • "id": 5,
          • "distance": 11817,
          • "time": 653,
          • "point": 2035,
          • "heading": 39.31,
          • "turn": "Tournez à gauche sur Südkreisel, B44.",
          • "follow": "Suivez Südkreisel sur 103 m.",
          • "street": [
            • "Südkreisel",
            • "B44"
            ]
          },
        • {
          • "id": 24,
          • "distance": 103,
          • "time": 7,
          • "point": 2049,
          • "heading": -45.03,
          • "turn": "Prenez la sortie sur B44.",
          • "follow": "Suivez B44 sur 638 m.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 24,
          • "distance": 638,
          • "time": 38,
          • "point": 2083,
          • "heading": 6.19,
          • "turn": "Prenez la sortie sur B44.",
          • "follow": "Suivez B44 sur 1.95 km.",
          • "street": [
            • "B44"
            ]
          },
        • {
          • "id": 2,
          • "distance": 1951,
          • "time": 116,
          • "point": 2120,
          • "heading": 49.6,
          • "turn": "Tournez à droite sur L3317.",
          • "follow": "Suivez L3317 sur 2.88 km.",
          • "street": [
            • "L3317"
            ]
          },
        • {
          • "id": 42,
          • "distance": 2884,
          • "time": 168,
          • "point": 2169,
          • "heading": 127.12,
          • "turn": "Serrez à gauche sur Isenburger Schneise, L3317.",
          • "follow": "Suivez Isenburger Schneise sur 618 m.",
          • "street": [
            • "Isenburger Schneise",
            • "L3317"
            ]
          },
        • {
          • "id": 5,
          • "distance": 618,
          • "time": 54,
          • "point": 2188,
          • "heading": 111.49,
          • "turn": "Tournez à gauche sur Darmstädter Landstraße.",
          • "follow": "Suivez Darmstädter Landstraße sur 1.14 km.",
          • "street": [
            • "Darmstädter Landstraße"
            ]
          },
        • {
          • "id": 2,
          • "distance": 1144,
          • "time": 71,
          • "point": 2212,
          • "heading": -4.83,
          • "turn": "Tournez à droite sur Scheerwaldschneise.",
          • "follow": "Suivez Scheerwaldschneise sur 274 m.",
          • "street": [
            • "Scheerwaldschneise"
            ]
          },
        • {
          • "id": 2,
          • "distance": 274,
          • "time": 115,
          • "point": 2217,
          • "heading": 78.53,
          • "turn": "Tournez à droite sur Hainer Weg.",
          • "follow": "Suivez Hainer Weg sur 117 m.",
          • "street": [
            • "Hainer Weg"
            ]
          },
        • {
          • "id": 46,
          • "distance": 117,
          • "time": 42,
          • "point": 2218,
          • "heading": 190.12,
          • "turn": "Vous êtes arrivé à destination"
          }
        ],
      • "sections": {
        • "surface": [
          • {
            • "type": "smooth",
            • "start_point": 0,
            • "end_point": 205,
            • "start_distance": 0,
            • "end_distance": 10528
            },
          • {
            • "type": "undefined",
            • "start_point": 205,
            • "end_point": 210,
            • "start_distance": 10528,
            • "end_distance": 11094
            },
          • {
            • "type": "smooth",
            • "start_point": 210,
            • "end_point": 230,
            • "start_distance": 11094,
            • "end_distance": 13429
            },
          • {
            • "type": "undefined",
            • "start_point": 230,
            • "end_point": 232,
            • "start_distance": 13429,
            • "end_distance": 13494
            },
          • {
            • "type": "smooth",
            • "start_point": 232,
            • "end_point": 337,
            • "start_distance": 13494,
            • "end_distance": 15948
            },
          • {
            • "type": "undefined",
            • "start_point": 337,
            • "end_point": 350,
            • "start_distance": 15948,
            • "end_distance": 16059
            },
          • {
            • "type": "smooth",
            • "start_point": 350,
            • "end_point": 424,
            • "start_distance": 16059,
            • "end_distance": 17103
            },
          • {
            • "type": "undefined",
            • "start_point": 424,
            • "end_point": 436,
            • "start_distance": 17103,
            • "end_distance": 17267
            },
          • {
            • "type": "smooth",
            • "start_point": 436,
            • "end_point": 812,
            • "start_distance": 17267,
            • "end_distance": 31852
            },
          • {
            • "type": "paved",
            • "start_point": 812,
            • "end_point": 817,
            • "start_distance": 31852,
            • "end_distance": 31905
            },
          • {
            • "type": "smooth",
            • "start_point": 817,
            • "end_point": 862,
            • "start_distance": 31905,
            • "end_distance": 33309
            },
          • {
            • "type": "paved",
            • "start_point": 862,
            • "end_point": 872,
            • "start_distance": 33309,
            • "end_distance": 33383
            },
          • {
            • "type": "smooth",
            • "start_point": 872,
            • "end_point": 900,
            • "start_distance": 33383,
            • "end_distance": 34857
            },
          • {
            • "type": "paved",
            • "start_point": 900,
            • "end_point": 921,
            • "start_distance": 34857,
            • "end_distance": 34949
            },
          • {
            • "type": "smooth",
            • "start_point": 921,
            • "end_point": 962,
            • "start_distance": 34949,
            • "end_distance": 36040
            },
          • {
            • "type": "undefined",
            • "start_point": 962,
            • "end_point": 972,
            • "start_distance": 36040,
            • "end_distance": 36112
            },
          • {
            • "type": "smooth",
            • "start_point": 972,
            • "end_point": 1003,
            • "start_distance": 36112,
            • "end_distance": 37996
            },
          • {
            • "type": "paved",
            • "start_point": 1003,
            • "end_point": 1013,
            • "start_distance": 37996,
            • "end_distance": 38069
            },
          • {
            • "type": "smooth",
            • "start_point": 1013,
            • "end_point": 1381,
            • "start_distance": 38069,
            • "end_distance": 54786
            },
          • {
            • "type": "undefined",
            • "start_point": 1381,
            • "end_point": 1384,
            • "start_distance": 54786,
            • "end_distance": 54909
            },
          • {
            • "type": "smooth",
            • "start_point": 1384,
            • "end_point": 1417,
            • "start_distance": 54909,
            • "end_distance": 56739
            },
          • {
            • "type": "undefined",
            • "start_point": 1417,
            • "end_point": 1420,
            • "start_distance": 56739,
            • "end_distance": 56841
            },
          • {
            • "type": "smooth",
            • "start_point": 1420,
            • "end_point": 1423,
            • "start_distance": 56841,
            • "end_distance": 56906
            },
          • {
            • "type": "undefined",
            • "start_point": 1423,
            • "end_point": 1452,
            • "start_distance": 56906,
            • "end_distance": 57884
            },
          • {
            • "type": "smooth",
            • "start_point": 1452,
            • "end_point": 1455,
            • "start_distance": 57884,
            • "end_distance": 58080
            },
          • {
            • "type": "undefined",
            • "start_point": 1455,
            • "end_point": 1456,
            • "start_distance": 58080,
            • "end_distance": 58103
            },
          • {
            • "type": "smooth",
            • "start_point": 1456,
            • "end_point": 1459,
            • "start_distance": 58103,
            • "end_distance": 58222
            },
          • {
            • "type": "undefined",
            • "start_point": 1459,
            • "end_point": 1462,
            • "start_distance": 58222,
            • "end_distance": 58253
            },
          • {
            • "type": "smooth",
            • "start_point": 1462,
            • "end_point": 1793,
            • "start_distance": 58253,
            • "end_distance": 69865
            },
          • {
            • "type": "undefined",
            • "start_point": 1793,
            • "end_point": 1795,
            • "start_distance": 69865,
            • "end_distance": 69896
            },
          • {
            • "type": "smooth",
            • "start_point": 1795,
            • "end_point": 1987,
            • "start_distance": 69896,
            • "end_distance": 78892
            },
          • {
            • "type": "undefined",
            • "start_point": 1987,
            • "end_point": 1988,
            • "start_distance": 78892,
            • "end_distance": 79007
            },
          • {
            • "type": "smooth",
            • "start_point": 1988,
            • "end_point": 1994,
            • "start_distance": 79007,
            • "end_distance": 80169
            },
          • {
            • "type": "undefined",
            • "start_point": 1994,
            • "end_point": 1996,
            • "start_distance": 80169,
            • "end_distance": 80367
            },
          • {
            • "type": "smooth",
            • "start_point": 1996,
            • "end_point": 2061,
            • "start_distance": 80367,
            • "end_distance": 81776
            },
          • {
            • "type": "undefined",
            • "start_point": 2061,
            • "end_point": 2062,
            • "start_distance": 81776,
            • "end_distance": 81845
            },
          • {
            • "type": "smooth",
            • "start_point": 2062,
            • "end_point": 2075,
            • "start_distance": 81845,
            • "end_distance": 82143
            },
          • {
            • "type": "undefined",
            • "start_point": 2075,
            • "end_point": 2095,
            • "start_distance": 82143,
            • "end_distance": 82653
            },
          • {
            • "type": "smooth",
            • "start_point": 2095,
            • "end_point": 2212,
            • "start_distance": 82653,
            • "end_distance": 88814
            },
          • {
            • "type": "dirt",
            • "start_point": 2212,
            • "end_point": 2217,
            • "start_distance": 88814,
            • "end_distance": 89088
            },
          • {
            • "type": "compacted",
            • "start_point": 2217,
            • "end_point": 2219,
            • "start_distance": 89088,
            • "end_distance": 89205
            }
          ],
        • "country": [
          • {
            • "iso": "DEU",
            • "start_point": 0,
            • "end_point": 2219,
            • "start_distance": 0,
            • "end_distance": 89205
            }
          ]
        },
      • "terrain": {
        • "elevations": [
          • 223.8,
          • 222.63,
          • 222.12,
          • 221.56,
          • 220.79,
          • 219.61,
          • 218.09
          ],
        • "total_up": 421.01,
        • "total_down": 501.7
        }
      }
    ]
}