E-Mobility API
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.
API Functions
Member Documentation
Get Token
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"
}
Plan Route
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.
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
turns, street names language in the response
available languages: bra, chn, cze, dan, dut, eng, fin, fre, ger, gre, hun, ita, jpn, nor, pol, por, rom, slk, slv, spa, swe
Optional parameter, default is eng
{
"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_SLIGHT_RIGHT",
"turnstr": "Turn right then turn slight right",
"soc": 54.965351
}, {
"lat": 49.467316,
"lon": 11.081618,
"alt": 321.775391,
"turn": "TURN_SLIGHT_RIGHT",
"turnstr": "Slight right",
"street": "High Street"
"soc": 54.965351
}, {
"lat": 49.467642,
"lon": 11.081577,
"alt": 321.242188,
"soc": 54.965351
}, {
"lat": 49.467640,
"lon": 11.081438,
"alt": 321.041016,
"soc": 54.965351
....
]
}, {
"routeplanmode": 1,
"points": [...]
}, {
"routeplanmode": 2,
"points": [...]
}
]
}
Calculate Range Polygon
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]
]
]
}
Draw and Plan
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.
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], [47.77605, 9.329241], [47.77605, 9.329241],
[47.77605, 9.329241], [47.77605, 9.329241], [47.77605, 9.329241], [47.77605, 9.329241],
[47.77605, 9.329241], [47.77605, 9.329241], [47.77605, 9.329241], [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 weather forecast
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/https://gpstuner.com/wp-content/themes/gpstuner/assets/img/api/[ICON]
Day icon | Night icon | Description |
---|---|---|
weather_icon_clear_sky_day.svg | weather_icon_clear_sky_night.svg | clear sky |
weather_icon_few_clouds_day.svg | weather_icon_few_clouds_night.svg | few clouds |
weather_icon_scattered_clouds.svg | weather_icon_scattered_clouds.svg | scattered clouds |
weather_icon_broken_clouds.svg | weather_icon_broken_clouds.svg | broken clouds |
weather_icon_shower_rain.svg | weather_icon_shower_rain.svg | shower rain |
weather_icon_rain.svg | weather_icon_rain.svg | rain |
weather_icon_thunderstorm.svg | weather_icon_thunderstorm.svg | thunderstorm |
weather_icon_snow.svg | weather_icon_snow.svg | snow |
weather_icon_mist.svg | weather_icon_mist.svg | mist |
Full url example: https://api.gpstuner.com/assets/https://gpstuner.com/wp-content/themes/gpstuner/assets/img/api/weather_icon_clear_sky_day.svg
Weather Condition codes
Group 2xx: Thunderstorm
ID | Main | Description | Icon |
---|---|---|---|
200 | Thunderstorm | thunderstorm with light rain | weather_icon_thunderstorm |
201 | Thunderstorm | thunderstorm with rain | weather_icon_thunderstorm |
202 | Thunderstorm | thunderstorm with heavy rain | weather_icon_thunderstorm |
210 | Thunderstorm | light thunderstorm | weather_icon_thunderstorm |
211 | Thunderstorm | thunderstorm | weather_icon_thunderstorm |
212 | Thunderstorm | heavy thunderstorm | weather_icon_thunderstorm |
221 | Thunderstorm | ragged thunderstorm | weather_icon_thunderstorm |
230 | Thunderstorm | thunderstorm with light drizzle | weather_icon_thunderstorm |
231 | Thunderstorm | thunderstorm with drizzle | weather_icon_thunderstorm |
232 | Thunderstorm | thunderstorm with heavy drizzle | weather_icon_thunderstorm |
Group 3xx: Drizzle
ID | Main | Description | Icon |
---|---|---|---|
300 | Drizzle | light intensity drizzle | weather_icon_shower_rain |
301 | Drizzle | drizzle | weather_icon_shower_rain |
302 | Drizzle | heavy intensity drizzle | weather_icon_shower_rain |
310 | Drizzle | light intensity drizzle rain | weather_icon_shower_rain |
311 | Drizzle | drizzle rain | weather_icon_shower_rain |
312 | Drizzle | heavy intensity drizzle rain | weather_icon_shower_rain |
313 | Drizzle | shower rain and drizzle | weather_icon_shower_rain |
314 | Drizzle | heavy shower rain and drizzle | weather_icon_shower_rain |
321 | Drizzle | shower drizzle | weather_icon_shower_rain |
Group 5xx: Rain
ID | Main | Description | Icon |
---|---|---|---|
500 | Rain | light rain | weather_icon_rain |
501 | Rain | moderate rain | weather_icon_rain |
502 | Rain | heavy intensity rain | weather_icon_rain |
503 | Rain | very heavy rain | weather_icon_rain |
504 | Rain | extreme rain | weather_icon_rain |
511 | Rain | freezing rain | weather_icon_snow |
520 | Rain | light intensity shower rain | weather_icon_rain |
521 | Rain | shower rain | weather_icon_rain |
522 | Rain | heavy intensity shower rain | weather_icon_rain |
531 | Rain | ragged shower rain | weather_icon_rain |
Group 6xx: Snow
ID | Main | Description | Icon |
---|---|---|---|
600 | Snow | light snow | weather_icon_snow |
601 | Snow | Snow | weather_icon_snow |
602 | Snow | Heavy snow | weather_icon_snow |
611 | Snow | Sleet | weather_icon_snow |
612 | Snow | Light shower sleet | weather_icon_snow |
613 | Snow | Shower sleet | weather_icon_snow |
615 | Snow | Light rain and snow | weather_icon_snow |
616 | Snow | Rain and snow | weather_icon_snow |
620 | Snow | Light shower snow | weather_icon_snow |
621 | Snow | Shower snow | weather_icon_snow |
622 | Snow | Heavy shower snow | weather_icon_snow |
Group 7xx: Atmosphere
ID | Main | Description | Icon |
---|---|---|---|
701 | Mist | Mist | weather_icon_mist |
711 | Smoke | Smoke | weather_icon_mist |
721 | Haze | Haze | weather_icon_mist |
731 | Dust | sand/ dust whirls | weather_icon_mist |
741 | Fog | fog | weather_icon_mist |
751 | Sand | Sand | weather_icon_mist |
761 | Dust | Dust | weather_icon_mist |
762 | Ash | volcanic ash | weather_icon_mist |
771 | Squall | Squall | weather_icon_mist |
781 | Tornado | Tornado | weather_icon_mist |
Group 800: Clear
ID | Main | Description | Icon |
---|---|---|---|
800 | Clear | clear sky | weather_icon_clear_sky_day weather_icon_clear_sky_night |
Group 80x: Clouds
ID | Main | Description | Icon |
---|---|---|---|
801 | Clouds | few clouds: 11-25% | weather_icon_few_clouds_day weather_icon_few_clouds_night |
802 | Clouds | scattered clouds: 25-50% | weather_icon_scattered_clouds |
803 | Clouds | broken clouds: 51-84% | weather_icon_broken_clouds |
804 | Clouds | overcast clouds: 85-100% | weather_icon_broken_clouds |