"Jāņa sēta" piedāvā vairākus uz OSRM bāzes un saviem ceļa datiem veidotus servisus.
- Standarta maršruta izveides serviss (route) ļauj izveidot maršrutu starp diviem vai vairākiem punktiem.
- Maršruta optimizācijas serviss (trip) piedāvā laika ziņā optimālāko maršrutēšanu starp vairākiem punktiem.
- Attāluma tabulas serviss (table) atgriež attāluma un ceļā pavadāmā laika vērtības starp definētajiem sākumpunktiem un galapunktiem, ļaujot atrast katram sākumpunktam tuvākos galapunktus.
Ja ir vēlme izmantot citus servisus (nearest, match, tile), sazinieties ar mums!
Kā maršrutēšanas dzinējs izmantots OSRM, taču maršrutu veidošanai un citiem servisiem tiek izmantoti "Jāņa sētas" ceļu dati — pilnvērtīgākais ceļu tīkls Latvijā. Patlaban piedāvājam maršrutēšanu gan autotransportam, gan gājējiem. Pilnu dokumentāciju var skatīt šeit.
Maršruta izveides serviss
Maršruta izveides serviss ļauj izveidot maršrutu starp diviem vai vairākiem punktiem
Servisa URL
Servisa saitei jāatbilst šādai formai:
https://api.kartes.lv/v3//directions/{profile}/{service}/{coordinates}?
Atgriezto datu formāts ir JSON.
HTTP metode var būt GET vai POST.
Standarta maršruta izveide
Standarta maršruta izveides serviss (route) ļauj izveidot maršrutu starp diviem vai vairākiem punktiem (maksimāli 50 punkti).
Servisa saitei jāatbilst šādai formai:
https://api.kartes.lv/v3//directions/{profile}/route/{coordinates}?
Pieprasījuma parametri
Iespējams padot šādus GET parametrus:
Parametrs | Skaidrojums | Vērtības |
---|---|---|
profile | Maršrutēšanas veids. Patlaban sagatavoti divi profili: autotransporta un gājēju |
|
coordinates | Maršruta galapunktu koordinātas (koordināšu pāri WGS-84 (EPSG:4326) koordinātu sistēmā). Iespējams padot līdz 50 punktiem. | Parametrs ir obligāts x1,y1;x2,y2;…;xn,yn, kur:
|
alternatives | Alternatīvo maršrutu skaits. | Atgriež atkarībā no maršruta
|
geometries | Atgrieztās ģeometrijas formāts. |
|
steps | Maršruta informācija pa tā posmiem. |
|
overview | Pārskata ģeometrija — vienkāršota vai detalizēta. |
|
summary | Maršrutu posma aprakstošs nosaukums (piemēram, "Daugavgrīvas iela, Krišjāņa Valdemāra iela"). | Parametrs aktuāls, ja izvēlas steps=true
|
annotations | Atgriež papildu metadatus par katru maršruta koordinātu. |
|
continue_straight | Norāda, vai maršruta galapunktos drīkst apgriezties braukšanai pretējā virzienā. |
|
skip_waypoints | Vai izlaist informāciju par galapunktiem (waypoints objektu) no atbildes. |
|
generate_hints | Atgriež informāciju par hintiem (unikālajiem identifikatoriem). |
|
approaches | Vai būtiski galapunktos ievērot ceļa puses (piebraukšana no "pareizās" puses) | Formāts: galapunkts 1;galapunkts 2
|
Atbildes parametri
Atbildē tiek atgriezti šādi parametri un objekti:
Parametrs | Skaidrojums |
---|---|
code | Pieprasījuma sekmīgums. Ja sekmīgs, atbilde ir ok. |
waypoints | Galapunktu objekts |
hint | Unikāls iekšējais identifikators. |
distance | Attālums no dotajām koordinātām līdz galapunkta koordinātām metros. |
location | Atrašanās vietas (galapunkta, krustojuma, manevra) koordinātas, kuras tiek izmantotas doto koordinātu vietā (atrodas uz dotā ceļa tīkla). |
name | Galapunkta ielas nosaukums (ja ir). |
routes | Maršrutu objekts. |
legs | Maršruta posma starp diviem galapunktiem (RoutLeg) objekts. Posmam vai posmiem (ja ir vairāk nekā divi galapunkti) seko distance, duration, weight, summary parametri. |
steps | Maršruta soļu apraksta objekts. Solim seko vairāki parametri (skat. OSRM API dokumentāciju, to skaitā location (atrašanās vietas (galapunkta, krustojuma, manevra) koordinātas, kuras tiek izmantotas doto koordinātu vietā (atrodas uz ceļa tīkla)). |
weight | Svars (tiek izmantots prioritizēšanā). |
distance | Garums metros. |
summary | Maršruta posma aprakstošs nosaukums (piemēram, "Daugavgrīvas iela, Krišjāņa Valdemāra iela"). Nosaka pieprasījuma parametrs summary. |
duration | Ilgums sekundēs. |
weight_name | Svara profila nosaukums. |
geometry | Maršruta ģeometrija. Atkarīga no overview parametra, formātu nosaka geometries parametrs. |
weight | Svars (tiek izmantots maršrutu prioritizēšanā). |
distance | Garums metros. |
duration | Ilgums sekundēs. |
Kļūdu kodi
Kods | Skaidrojums |
---|---|
400 | Wrong input data. Tiek atgriezts, ja vaicājumā nav ievadīti vai nav korekti ievadīti pieprasījuma parametri. |
404 | No location found. Tiek atgriezts, ja nekas nav ticis atrasts. |
5xx | Servera kļūda. |
Paraugi
Pieprasījums:
https://api.kartes.lv/v3//directions/driving/route/24.106237,56.964682;24.094009,56.960553?overview=full&annotations=true&steps=true
Atbilde:
{
"code": "Ok",
"waypoints": [
{
"hint": "aC0AgP___38DAAAAJwAAAAAAAAAAAAAAupanQDs9YEIAAAAAAAAAAAMAAAAsAAAAAAAAAAAAAAAgAAAA39RvAUs2ZQP91G8BSjZlAwAAbwsqWsg3",
"distance": 1.827851,
"location": [
24.106207,
56.964683
],
"name": "Pulkveža Brieža iela"
},
{
"hint": "Wm8KgHNvCoAAAAAACQAAABwCAAB-AQAAAAAAAJEqrUA5zG1Dpi5fQwAAAAAKAAAANwIAAJEBAAAgAAAAIqlvAbwhZQM5pW8BKSZlAwIAfw4qWsg3",
"distance": 140.090272,
"location": [
24.09501,
56.95942
],
"name": ""
}
],
"routes": [
{
"legs": [
{
"steps": [
{
"intersections": [
{
"out": 0,
"entry": [
true
],
"location": [
24.106207,
56.964683
],
"bearings": [
182
]
},
{
"out": 1,
"in": 0,
"entry": [
false,
true,
true
],
"location": [
24.10617,
56.96418
],
"bearings": [
0,
180,
270
]
}
],
"driving_side": "right",
"maneuver": {
"bearing_after": 182,
"bearing_before": 0,
"type": "depart",
"location": [
24.106207,
56.964683
]
},
"duration": 29.3,
"distance": 220.1,
"name": "Pulkveža Brieža iela",
"geometry": "g|tzIyfcrCbBFpBF|@BlAPf@H",
"ref": "P1",
"weight": 26.1,
"mode": "driving"
},...
],
"weight": 208.1,
"distance": 1629.3,
"annotation": {
"speed": [
13.7,
13.8,
...
],
"metadata": {
"datasource_names": [
"lua profile"
]
},
"nodes": [
4777473,
3090436,
...
],
"duration": [
4.1,
4.6,
...
],
"distance": [
55.991795,
63.44537,
...
],
"weight": [
3.6,
4.1,
...
],
"datasources": [
0,
0,
...
]
},
"summary": "Hanzas iela, Eksporta iela",
"duration": 220
}
],
"weight_name": "routability",
"geometry": "g|tzIyfcrCbBFpBF|@BlAPf@HBp@@F?FAx@G|BKpF@R?TNfEHfCDfANpD@Z@ZD|B@NDhD@`@fA@JAvH?hBB`AA\\DXRVLPBt@A`BC`@Ab@B\\HvAz@bAj@NJG`AADALCLGXQd@_@t@_@`@uJfGEM",
"weight": 208.1,
"distance": 1629.3,
"duration": 220
}
]
}
Maršrutu optimizācijas serviss
Maršrutu optimizācijas jeb ceļojošā tirgotāja (Travelling salesman problem) serviss balstīts uz OSRM trip servisu. Serviss optimizē līdz 50 punktiem viena maršruta ietvaros. Tas darbojas, maršrutēšanas pieprasījumiem norādot secības (order) parametru. Iespējams veidot lineārus vai riņkveida maršrutus. Serviss atgriež punktu secību.
Optimizācijas pieprasījuma papildu parametri
Servisa saitei jāatbilst šādai formai:
https://api.kartes.lv/v3//directions/{profile}/trip/{coordinates}?
Papildu maršrutu izveides servisam padotajiem parametriem, pieejami šādi papildu parametri:
Parametrs | Skaidrojums | Vērtības |
---|---|---|
roundtrip | Vai maršruts atgriežas sākumpunktā (ir apļveida)? |
|
source | Nosaka maršruta sākumpunkta noteiktību. |
|
destination | Nosaka maršruta beigu punkta noteiktību. |
|
Ja gan source, destination vērtība ir any, tomēr tiek pieņemts, ka apļveida maršruts sāksies galapunktā, kura koordinātas dotas kā pirmās.
Optimizācijas atbildes papildu parametri
Parametrs | Skaidrojums |
---|---|
code | Pieprasījuma sekmīgums. Ja sekmīgs, atbilde ir ok. |
waypoints | Galapunktu objekts, kas apraksta galapunktu un satur name, hint, location, distance (šeit - attālums no dotajām koordinātām līdz galapunkta koordinātām) parametrus. Galapunkti atgriezti dotajā secībā |
waypoint_index | Galapunkta secības numurs optimizētajā maršrutā. |
trips | Maršruta objekts (maršruta izklāsts pa posmiem). |
Paraugi
Pieprasījums:
https://api.kartes.lv/v3//directions/driving/trip/24.12,56.92;24.13,56.95;24.11,56.91;24.16,56.98?overview=full&annotations=true&steps=true&geometries=geojson&source=first&destination=last
Atbilde:
{
"code": "Ok",
"waypoints": [
{
"waypoint_index": 0,
"trips_index": 0,
"hint": "Ev8JgE3_CYAiAAAAGQAAAF8AAADFAAAAmvGaQZ47V0EvUFNCIdLbQiIAAAAZAAAAXwAAAMUAAAAgAAAAoQtwAfGIZAPACnABwIdkAwMAPxIqWsg3",
"distance": 36.624429,
"location": [
24.120225,
56.920305
],
"name": ""
},
{
"waypoint_index": 2,
"trips_index": 0,
"hint": "ym0KgDVuCoBLAAAAAAAAAAAAAAA9AAAAVEIuQgAAAAAAAAAANckPQk4AAAAAAAAAAAAAAEAAAAAgAAAANDJwAcj8ZAPQMXAB8PxkAwAArxUqWsg3",
"distance": 7.544916,
"location": [
24.1301,
56.94996
],
"name": ""
},
{
"waypoint_index": 1,
"trips_index": 0,
"hint": "iB4BgKgeAYAeAAAAAAAAAPsAAAAFAAAA4KXHQQAAAAAhDlJDgfyMQB4AAAAAAAAA-wAAAAUAAAAgAAAAAuJvAQRiZAOw428BsGBkAw4Afw4qWsg3",
"distance": 46.035301,
"location": [
24.10957,
56.91034
],
"name": "Tumes iela"
},
{
"waypoint_index": 3,
"trips_index": 0,
"hint": "3WQKgPNkCoANAAAABwAAAGEBAAC0AAAAzD8DQab_YEAlWk5DVMvSQg4AAAAHAAAAcQEAAL4AAAAgAAAA_qZwASByZQMAp3ABIHJlAwgAXxUqWsg3",
"distance": 0.12163,
"location": [
24.159998,
56.98
],
"name": ""
}
],
"trips": [
{
"legs": [
{
"steps": [
{
"intersections": [
{
"classes": [
"unpaved"
],
"out": 0,
"entry": [
true
],
"location": [
24.120225,
56.920305
],
"bearings": [
292
]
},...
],
"driving_side": "right",
"geometry": {
"coordinates": [
[
24.120225,
56.920305
],...
],
"type": "LineString"
},
"duration": 138.3,
"distance": 737.7,
"name": "",
"weight": 138.3,
"mode": "driving",
"maneuver": {
"bearing_after": 292,
"location": [
24.120225,
56.920305
],
"type": "depart",
"bearing_before": 0,
"modifier": "left"
},
},...
],
"weight": 434.5,
"distance": 3852.5,
"annotation": {
"speed": [
5.4,
5.6,
...
],
"metadata": {
"datasource_names": [
"lua profile"
]
},
"nodes": [
4539416,
5195632,
...
],
"duration": [
2.5,
19.7,
...
],
"distance": [
13.413894,
109.603385,
...
],
"weight": [
2.5,
19.7,
...
],
"datasources": [
0,
0,
...
]
},
"summary": "Mūkusalas iela, Tumes iela",
"duration": 465.8,
},...
],
"weight_name": "routability",
"geometry": {
"coordinates": [
[
24.120225,
56.920305
],
...
[
24.120225,
56.920305
]
],
"type": "LineString"
},
"weight": 2680.1,
"distance": 26133.8,
"duration": 2885.3
}
]
}
Attālumu tabulas (distance matrix) serviss
Attālumu tabulas jeb matricas (distance matrix) serviss ļauj saņemt attālumu un pārvietošanās laiku starp visiem norādītajiem koordināšu pāriem (piem., novērtēt visus attālumus starp četrām Latvijas pilsētām, iegūstot vērtības Rīga—Cēsis, Rīga—Valmiera, Rīga—Sigulda, Valmiera—Cēsis, Valmiera—Sigulda, Sigulda—Cēsis; atrast ātrāk sasniedzamo veikalu no konkrētas vietas (piem., pašreizējās atrašanās vietas koordinātām)). Servisam var padot ne vairāk kā 50 koordinātu pāru. Pieprasījumā jādefinē, kuras koordinātas ir "izejas punkti"/sākumpunkti (sources) un uz kuriem punktiem jāveic ceļš (destinations). Var izmantot gan autobraucēju, gan gājēju profilu.
Attālumu tabulas pieprasījuma papildu parametri
Servisa saitei jāatbilst šādai formai:
https://api.kartes.lv/v3//directions/{profile}/table/{coordinates}?
Papildu maršrutu izveides servisam padotajiem parametriem, jāizmanto šādi papildu parametri:
Parametrs | Skaidrojums | Vērtības |
---|---|---|
sources | Definē, kuri no koordinātu pāriem ir sākumpunkti, no kurienes jārēķina pārvietošanās ilgums vai attālums. Tie jānorāda, balstoties ievadīto koordināšu secībā. |
|
destinations | Definē, kuri no koordinātu pāriem ir galamērķi, uz kuriem jārēķina pārvietošanās ilgums vai attālums. Tie jānorāda, balstoties ievadīto koordināšu secībā. |
|
annotations | Norāda, vai tiks atgrieztas attāluma vai ilguma vērtības. |
|
fallback_speed | Aktivizē iespēju saņemt attālumu pa gaisa līniju, ja nav iespējams izveidot maršrutu pa ceļiem. Šajā parametrā var norādīt ātrumu (kilometrus stundā), kas tiek izmantots šim aprēķinam. | Decimālskaitlis |
fallback_coordinate | Gaisa līnijas attāluma gadījumā: vai aprēķinam izmantot dotās koordinātas, vai t.s. navigācijas koordinātas (uz ceļu tīkla). |
|
scale_factor | Ja tiks atgrieztas ilguma (duration) vērtība, ir iespējams šīs vērtības proporcionāli mainīt, izmantojot šo reizinātāju. | Decimālskaitlis |
Ja skip_waypoints vērtība ir true , gan sources , gan destinations masīvi netiks atgriezti.
Attālumu tabulas papildu parametri
Parametrs | Skaidrojums |
---|---|
code | Pieprasījuma sekmīgums. Ja sekmīgs, atbilde ir ok. Ja nesekmīgs, atgriež NoTable. |
durations | Divdimensiju masīvs ar matricu, kas atgriež pārvietošanās laika vērtības sākumpunkts-galapunkts secībā. Šajā gadījumā minētā secība attiecas nevis uz ievadīto objektu secību, bet secību un skaitu sources un destinations parametros (tā 2;3 kļūst par 0;1 atbildes masīvā). Ilgums tiek atgriezts sekundēs. |
distances | Divdimensiju masīvs ar matricu, kas atgriež attāluma vērtības sākumpunkts-galapunkts secībā. Analoģiski ar durations masīvu minētā secība attiecas nevis uz ievadīto objektu secību, bet secību un skaitu sources un destinations parametros (tā 2;3 kļūst par 0;1 atbildes masīvā). Attālums tiek atgriezts metros. |
sources | Koordināšu pāru, kas izmantotas sākumpunktiem, jaunie identifikatori (kārtas numuri) un koordinātas (location masīvā) |
destinations | Koordināšu pāru, kas izmantotas galapunktiem, jaunie identifikatori (kārtas numuri) un koordinātas (location masīvā) |
fallbackspeedcells | Ja tiek izmantots fallback_speed parametrs, šajā atbildes parametrā tiek atgrieztas to sākumpunktu un galapunktu vērtības, kas tikušas aprēķinātas pa gaisa līniju. |
Paraugi
Pieprasījums (lai atgrieztu ilgumus starp atrašanās vietām, braucot ar auto):
https://api.kartes.lv/v3//directions/driving/table/23.401222,57.135960;23.212738,57.364682;22.920227,57.486678;24.036434,56.928184?sources=0;1&destinations=2;3
Atbilde:
{
"code":"Ok",
"durations":[
[
2937.2,
3077.2
],
[
1261.8,
5107.9
]
],
"sources":[
{
"hint":"3wAXgEgBF4AAAAAAJAAAAAAAAAB0AgAAAAAAAJ8OoUEAAAAA-8WuQwAAAAAkAAAAAAAAAHQCAAAjAAAAxnBjARDMZgMGE2UBWNNnAwAAvw0ZvrSg",
"distance":9919.644635,
"location":[
23.29415,
57.06856
],
"name":""
},
{
"hint":"b9gPgPvYD4AAAAAAJQAAAAAAAAAFAgAAAAAAAOiWJEEAAAAAEH8QQwAAAAAlAAAAAAAAAAUCAAAjAAAA7vVgAeA9awPCMmIBylBrAwAAbxMZvrSg",
"distance":4909.313667,
"location":[
23.13163,
57.35984
],
"name":""
}
],
"destinations":[
{
"hint":"hZAPgAiRD4AKAAAAAAAAAMcBAAAAAAAA3HUJQQAAAAD1Vb5DAAAAAAoAAAAAAAAAxwEAAAAAAAAjAAAAMgFdARL2bAMjvF0BVi1tAwgA3wgZvrSg",
"distance":3275.246139,
"location":[
22.87237,
57.47253
],
"name":""
},
{
"hint":"NGkKgFIsAYAOAAAABAAAAAAAAAB2AAAA1gdzQfBGR0AAAAAAYF7yQg8AAAAEAAAAAAAAAHwAAAAjAAAATcRuAY6nZANSxG4BuKdkAwAA3wUZvrSg",
"distance":4.687027,
"location":[
24.036429,
56.928142
],
"name":"Remtes iela"
}
]
}