"Jāņa sēta" piedāvā vairākus uz OSRM bāzes un saviem ceļa datiem veidotus servisus.

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
  • driving - autotransporta maršrutēšana (noklusētā vērtība);
  • walking - gājēju maršrutēšana
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:
  • x1 - X koordināta punktam, no kura tiek veikta maršrutēšana;
  • y1 - Y koordināta punktam, no kura tiek veikta maršrutēšana;
  • x2 - X koordināta punktam, uz kuru tiek veikta maršrutēšana;
  • y2 - Y koordināta punktam, uz kuru tiek veikta maršrutēšana;
  • xn - X koordināta pēdējam punktam maršrutā;
  • yn - Y koordināta pēdējam punktam maršrutā.
alternatives Alternatīvo maršrutu skaits. Atgriež atkarībā no maršruta
  • true vai 1 - atgriež alternatīvu maršrutu;
  • false vai 0 - neatgriež alternatīvu maršrutu (noklusētā vērtība).
geometries Atgrieztās ģeometrijas formāts.
  • polyline (noklusētā vērtība)
  • polyline6
  • geojson
steps Maršruta informācija pa tā posmiem.
  • true - atgriež;
  • false - neatgriež (noklusētā vērtība).
overview Pārskata ģeometrija — vienkāršota vai detalizēta.
  • simplified - atgriež vienkāršotu (noklusētā vērtība);
  • full - atgriež detalizētu
  • false - neatgriež
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
  • true - atgriež galveno ielu nosaukumus (noklusētā vērtība, ja īss maršruts, nekas netiek atgriezts);
  • false - neatgriež
annotations Atgriež papildu metadatus par katru maršruta koordinātu.
  • true - atgriež visus metadatus;
  • false - neatgriež metadatus (noklusētā vērtība)
continue_straight Norāda, vai maršruta galapunktos drīkst apgriezties braukšanai pretējā virzienā.
  • true - neapgriežas (noklusētā vērtība);
  • false - apgriežas.
skip_waypoints Vai izlaist informāciju par galapunktiem (waypoints objektu) no atbildes.
  • true - izlaist;
  • false - neizlaist (noklusētā vērtība).
generate_hints Atgriež informāciju par hintiem (unikālajiem identifikatoriem).
  • true - rādīt (noklusētā vērtība);
  • false - nerādīt.
approaches Vai būtiski galapunktos ievērot ceļa puses (piebraukšana no "pareizās" puses) Formāts:
galapunkts 1;galapunkts 2
  • unrestricted - nav būtiski (noklusētā vērtība);
  • curb - ir būtiski.

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)?
  • true - atgriežas (noklusētā vērtība) un atbildē sākumpunkta koordināta beigās tiek atkārtota;
  • false - neatgriežas
source Nosaka maršruta sākumpunkta noteiktību.
  • any - var sākties jebkurā no dotajām koordinātām (noklusētā vērtība);
  • first - sākas galapunktā, kas dots kā pirmais
destination Nosaka maršruta beigu punkta noteiktību.
  • any - var beigties jebkurā no dotajām koordinātām (noklusētā vērtība);
  • last - beidzas galapunktā, kas dots kā pēdējais

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ā.
  • all - visi (noklusētā vērtība)
  • 0;1;2; … n - - tiek izmantotie konkrētie koordināšu pāri (atdalīti ar semikolu)
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ā.
  • all - visi (noklusētā vērtība)
  • 0;1;4; … n - tiek izmantotie konkrētie koordināšu pāri (atdalīti ar semikolu)
annotations Norāda, vai tiks atgrieztas attāluma vai ilguma vērtības.
  • duration - ilgums (noklusētā vērtība);
  • distance - attālums;
  • duration,distance - attālums un ilgums.
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).
  • input - dotās koordinātas (noklusētā vērtība);
  • snapped - 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"
      }
   ]
}