Online solution kit to extend existing product with E-Mobility features. We are providing mapping, routing and navigation solutions with more than 15 years of E-Bike navigation software experience. Detailed customizable maps, including large list of POIs, optimal route detection, precise turn-by-turn navigation, and much more.
Call this api endpoint to get an access token. With this token you can call further api functions.
{
"access_token": "64bUO16JnaaFk1A6QkbQE9vTdoaKaYEXaoLdstRf",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "pjXjgakfBduI6yaGfsn4BiHW2bBapZGQaG1PZuQV"
}
It is designed to plan a route for electric bikes (E-Bikes) between two geographical points, considering several optional waypoints, and based on various route planning and vehicle parameters.
lat1,lon1|lat2,lon2|...|latn,lonn
List of waypoints of route planning.
Use this in case of multiple destination.
example 49.467,11.082|49.597,11.104|49.597,11.004
0 = BICYCLE
1 = MTB
2 = SPEED
3 = PEDESTRIAN
4 = KICKSCOOTER
-1 = SUGGESTED, EASIEST and SHORTEST
0 = SUGGESTED
1 = EASIEST
2 = SHORTEST
Optional parameter, default is -1
0 = TRYTOAVOID
1 = ROADTYPEWEIGHT_ALLOW
2 = ROADTYPEWEIGHT_PREFER
0 = TRYTOAVOID
1 = ROADTYPEWEIGHT_ALLOW
2 = ROADTYPEWEIGHT_PREFER
0 = TRYTOAVOID
1 = ROADTYPEWEIGHT_ALLOW
2 = ROADTYPEWEIGHT_PREFER
0 = TRYTOAVOID
1 = ROADTYPEWEIGHT_ALLOW
2 = ROADTYPEWEIGHT_PREFER
{
"result": [{
"routeplanmode": 0,
"points": [{
"lat": 49.467626,
"lon": 11.082157,
"alt": 322.108398,
"soc": 55.000000
}, {
"lat": 49.467314,
"lon": 11.082157,
"alt": 322.560547,
"turn": "TURN_COMB_RIGHT_RIGHT",
"soc": 54.965351
}, {
"lat": 49.467316,
"lon": 11.081618,
"alt": 321.775391,
"turn": "TURN_COMB_RIGHT_LEFT",
"soc": 54.965351
}, {
"lat": 49.467642,
"lon": 11.081577,
"alt": 321.242188,
"turn": "TURN_COMB_LEFT_RIGHT",
"soc": 54.965351
}, {
"lat": 49.467640,
"lon": 11.081438,
"alt": 321.041016,
"turn": "TURN_RIGHT",
"soc": 54.965351
....
]
}, {
"routeplanmode": 1,
"points": [...]
}, {
"routeplanmode": 2,
"points": [...]
}
]
}
It calculates the potential range of an E-Bike based on the provided parameters and returns a polygon shape that represents this range.
{
"outerline": [
[
[
49.103394,
10.689697
],
[
49.108887,
10.618286
],
[
49.139099,
10.480957
],
[
49.213257,
10.417786
][
49.452209,
11.835022
],
[
49.394531,
11.777344
],
[
49.342346,
11.744385
],
[
49.320374,
11.722412
],
...
[
49.106140,
10.708923
],
[
49.106140,
10.692444
]
]
],
"innerline": [
[
[
49.850464,
10.942383
],
[
49.847717,
10.923157
],
[
49.850464,
10.928650
],
[
49.886169,
10.909424
],
[
49.875183,
11.008301
],
[
49.866943,
11.011047
],
...[
49.828491,
10.953369
],
[
49.831238,
10.964355
],
[
49.850464,
10.939636
]
]
]
}
It allows you to define a route by drawing a shape on the map, then attempts to plan the optimal route for an E-Bike within the shape you've drawn.
GET/POST
(See working example on https://rangecalculator.gpstuner.com/ )
{
"route": [
[
47.772340,
9.331859
],
[
47.772494,
9.332533
]...[
47.835000,
9.470020
],
[
47.835887,
9.469875
]
],
"sections": [
0,
208,
363
],
"routeNodes": [],
"alternateRouteClickedCount": 0
}
POST DATA - DRAW
{"route":[[47.77234,9.331859],...[47.797524,9.428655],[47.797713,9.428505]],
Previously planned route points. Set to empty array on init.
"sections":[0,209],
Previously planned route sections. Set to empty array on init.
"draw":[[848,400],[848,396]...[1083,69],[1084,67]],
Screen coordinates of drawn route.
"corners":[[47.84361438123927,9.283794350769881,0,0],[47.735317820710954,9.283794350769881,0,939],[47.84361438123927,9.572185464051131,1680,0]],
Corners in geo and screen coordinates. Upper left, Bottom left, Upper right
"alternateRouteClickedCount":0}
Count of alternate route option used.
POST DATA - POINT
{"route":[[47.77234,9.331859],...[47.797524,9.428655],[47.797713,9.428505]],
Previously planned route points. Set to empty array on init.
"sections":[0,209],
Previously planned route sections. Set to empty array on init.
"point":[47.81277017204049,9.712097481640626],"alternateRouteClickedCount":0}
Count of alternate route option used.
POST DATA – ALTERNATE ROUTE
{"route":[[47.77234,9.331859],...[47.797524,9.428655],[47.797713,9.428505]],
Previously planned route points. For alternate route calculation there must be point in the route.
"sections":[0,209],
Previously planned route sections.
"alternateRoute":1
Set to 1 to calculate alternate route for last segment
"alternateRouteClickedCount":0}
Count of alternate route option used.
POST DATA – FULL REQUEST
{
"route": [
[
47.77234,
9.331859
],
[
47.772494,
9.332533
],
[
47.772613,
9.332506
],
[
47.773285,
9.332147
],
[
47.773809,
9.332119
],
[
47.774379,
9.331703
],
[
47.774677,
9.331291
],
[
47.775169,
9.330084
],
[
47.775771,
9.329672
],
[
47.77605,
9.329241
]...
],
"sections": [
0,
209
],
"draw": [
[
848,
400
],
[
848,
396
],
[
848,
394
],
[
848,
391
],
[
851,
385
],
[
853,
374
],
[
855,
363
],
[
858,
346
],
[
861,
326
],
[
863,
310
],
[
867,
292
],
[
870,
266
],
[
871,
251
],
[
876,
236
],
[
880,
225
],
[
883,
214
],
[
887,
205
],
[
892,
197
],
[
899,
188
],
[
903,
179
],
[
911,
170
],
[
918,
162
],
[
923,
156
],
[
932,
149
],
[
940,
145
],
[
948,
142
],
[
959,
138
],
[
970,
133
],
[
979,
129
],
[
992,
123
],
[
999,
122
],
[
1003,
121
],
[
1010,
120
],
[
1013,
119
],
[
1025,
116
],
[
1030,
113
],
[
1038,
111
],
[
1042,
108
],
[
1049,
106
],
[
1054,
102
],
[
1059,
99
],
[
1064,
94
],
[
1066,
91
],
[
1071,
85
],
[
1071,
84
],
[
1071,
83
],
[
1074,
80
],
[
1075,
78
],
[
1077,
76
],
[
1079,
73
],
[
1081,
71
],
[
1083,
70
],
[
1083,
69
],
[
1084,
67
]
],
"corners": [
[
47.84361438123927,
9.283794350769881,
0,
0
],
[
47.735317820710954,
9.283794350769881,
0,
939
],
[
47.84361438123927,
9.572185464051131,
1680,
0
]
],
"alternateRouteClickedCount": 0
}
Hourly forecast for 4 days.
{
"cod": "200",
"message": 0,
"cnt": 96,
"list": [
{
"dt_txt": "2021-02-15 18:00:00",
"temp": 271.04000000000002,
"weather": {
"id": 601,
"main": "Snow",
"description": "snow",
"icon": "weather_icon_snow"
},
"clouds": {
"all": 100
},
"wind": {
"speed": 2.3599999999999999,
"deg": 146
}
}, … ,
]
}
Temperature: Kelvin
Wind speed: meter/sec
Weather icons
How to get icon
https://api.gpstuner.com/assets/weather/[ICON]
Day icon | Night icon | Description |
---|---|---|
![]() |
![]() |
clear sky |
![]() |
![]() |
few clouds |
![]() |
![]() |
scattered clouds |
![]() |
![]() |
broken clouds |
![]() |
![]() |
shower rain |
![]() |
![]() |
rain |
![]() |
![]() |
thunderstorm |
![]() |
![]() |
snow |
![]() |
![]() |
mist |
Full url example: https://api.gpstuner.com/assets/weather/weather_icon_clear_sky_day.svg
Weather Condition codes
Group 2xx: Thunderstorm
ID | Main | Description | Icon |
---|---|---|---|
200 | Thunderstorm | thunderstorm with light rain | ![]() |
201 | Thunderstorm | thunderstorm with rain | ![]() |
202 | Thunderstorm | thunderstorm with heavy rain | ![]() |
210 | Thunderstorm | light thunderstorm | ![]() |
211 | Thunderstorm | thunderstorm | ![]() |
212 | Thunderstorm | heavy thunderstorm | ![]() |
221 | Thunderstorm | ragged thunderstorm | ![]() |
230 | Thunderstorm | thunderstorm with light drizzle | ![]() |
231 | Thunderstorm | thunderstorm with drizzle | ![]() |
232 | Thunderstorm | thunderstorm with heavy drizzle | ![]() |
Group 3xx: Drizzle
ID | Main | Description | Icon |
---|---|---|---|
300 | Drizzle | light intensity drizzle | ![]() |
301 | Drizzle | drizzle | ![]() |
302 | Drizzle | heavy intensity drizzle | ![]() |
310 | Drizzle | light intensity drizzle rain | ![]() |
311 | Drizzle | drizzle rain | ![]() |
312 | Drizzle | heavy intensity drizzle rain | ![]() |
313 | Drizzle | shower rain and drizzle | ![]() |
314 | Drizzle | heavy shower rain and drizzle | ![]() |
321 | Drizzle | shower drizzle | ![]() |
Group 5xx: Rain
ID | Main | Description | Icon |
---|---|---|---|
500 | Rain | light rain | ![]() |
501 | Rain | moderate rain | ![]() |
502 | Rain | heavy intensity rain | ![]() |
503 | Rain | very heavy rain | ![]() |
504 | Rain | extreme rain | ![]() |
511 | Rain | freezing rain | ![]() |
520 | Rain | light intensity shower rain | ![]() |
521 | Rain | shower rain | ![]() |
522 | Rain | heavy intensity shower rain | ![]() |
531 | Rain | ragged shower rain | ![]() |
Group 6xx: Snow
ID | Main | Description | Icon |
---|---|---|---|
600 | Snow | light snow | ![]() |
601 | Snow | Snow | ![]() |
602 | Snow | Heavy snow | ![]() |
611 | Snow | Sleet | ![]() |
612 | Snow | Light shower sleet | ![]() |
613 | Snow | Shower sleet | ![]() |
615 | Snow | Light rain and snow | ![]() |
616 | Snow | Rain and snow | ![]() |
620 | Snow | Light shower snow | ![]() |
621 | Snow | Shower snow | ![]() |
622 | Snow | Heavy shower snow | ![]() |
Group 7xx: Atmosphere
ID | Main | Description | Icon |
---|---|---|---|
701 | Mist | Mist | ![]() |
711 | Smoke | Smoke | ![]() |
721 | Haze | Haze | ![]() |
731 | Dust | sand/ dust whirls | ![]() |
741 | Fog | fog | ![]() |
751 | Sand | Sand | ![]() |
761 | Dust | Dust | ![]() |
762 | Ash | volcanic ash | ![]() |
771 | Squall | Squall | ![]() |
781 | Tornado | Tornado | ![]() |
Group 800: Clear
ID | Main | Description | Icon |
---|---|---|---|
800 | Clear | clear sky |
![]() ![]() |
Group 80x: Clouds
ID | Main | Description | Icon |
---|---|---|---|
801 | Clouds | few clouds: 11-25% |
![]() ![]() |
802 | Clouds | scattered clouds: 25-50% |
![]() |
803 | Clouds | broken clouds: 51-84% |
![]() |
804 | Clouds | overcast clouds: 85-100% |
![]() |