Dlhé trasy a veľa bodov
Mnohé TMS a plánovacie systémy počítajú trasu samy (napr. s Azure Maps, Google alebo TomTom) a potom potrebujú už len mýto pre presne túto trasu. Na to sa plánované súradnice odovzdajú ako body do TollCalc API.
Odovzdanie bodov
POST /api/calculate prijíma origin, destination a voliteľne via (medziľahlé body). Každý bod je buď adresa, alebo súradnica vo formáte "lat;lon".
curl -X POST https://app.tollcalc.eu/api/calculate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"origin": "48.1374;11.5755",
"destination": "52.5200;13.4050",
"via": ["49.0134;12.1016", "50.1109;8.6821"],
"vehicle": { "weight": 40, "axles": 5, "emission_class": "euro6", "co2_class": "class_1" }
}'
Limity a serverové zjednodušenie
Routing engine spracuje na požiadavku obmedzený počet bodov (aktuálne 50 spolu, teda štart + cieľ + 48 via). TollCalc to rieši inteligentne:
- Adresy (ktoré treba najprv geokódovať): maximálne 48
via. Viac adries → HTTP 400. - Súradnice (
"lat;lon"): môžete ich odovzdať viac. TollCalc reťazec na serveri automaticky zredukuje na limit (downsampling). Štart a cieľ zostávajú vždy zachované a tvar trasy je prioritizovaný predvýberom Douglas-Peucker. Žiadny úsek sa neodreže.
Dôležité: Zjednodušenie funguje len vtedy, ak sú všetky body súradnice (
"lat;lon"). Akonáhle je medzi nimi adresa, platí naďalej limit 48via.
Kontrola odchýlky (zabezpečenie kvality)
Keďže zredukovaný reťazec môže trasu teoreticky skresliť, TollCalc kvalitu kontroluje automaticky: vypočítaná trasa sa porovná s vašimi pôvodnými bodmi a maximálna odchýlka sa vyhodnotí vzhľadom na dĺžku trasy.
- ≤ 2 % → normálna odpoveď; odchýlka je v poli
geometry_deviation_km. - > 2 % → HTTP 400 s
errora vysvetľujúcimwarning.
Príklad zamietnutej požiadavky:
{
"error": "Downsampling-Abweichung zu groß",
"warning": "Die aus den Stützpunkten berechnete Route weicht zu stark von der Eingabe ab: max. 67.87 km bzw. 2.14 % der Strecke (erlaubt 2 %). Bitte dichtere oder mehr Koordinaten im Format \"lat;lon\" senden."
}
(Správa API je momentálne v nemčine.)
Pri úspešnom zjednodušení odpoveď navyše obsahuje:
| Pole | Význam |
|---|---|
route_source |
"downsampled" (chýba, ak redukcia nebola potrebná) |
waypoints_submitted |
počet zadaných oporných bodov |
waypoints_used |
počet skutočne trasovaných bodov |
geometry_deviation_km |
maximálna odchýlka vašich bodov od vypočítanej trasy |
Prečo routing s bodmi namiesto map matchingu?
Odovzdanú polylíniu by bolo možné prichytiť na cestnú sieť pomocou map matchingu, namiesto toho, aby sme routovali sami. TollCalc to zámerne nerobí – z jednoduchého dôvodu: mýto závisí presne od prejdenej trasy.
Mýto sa líši podľa konkrétneho úseku diaľnice, prevádzkovateľa, tunelov a osobitných mýt, systému (otvorený/uzavretý) a krajiny. Iný výjazd alebo paralelná cesta už znamená nesprávne mýto. Trasa teda musí byť 100 % správna – nie „približne".
Výsledok map matchingu však silne závisí od kvality vstupu:
- GPS šum, vzorkovacia frekvencia a projekcia odovzdaných bodov,
- medzery spôsobené tunelmi, trajektmi alebo výpadkom signálu,
- „zjednodušené" alebo vyhladené polylínie z cudzích systémov.
Zvonku nedokážeme zistiť, či je odovzdaná geometria skutočne prejdená trasa, alebo jej zjednodušená/skreslená verzia. Podľa pravidla garbage in, garbage out by sme uviedli mýto pre trasu, ktorú zákazník nikdy neprešiel – bez toho, aby si to niekto všimol.
Preto zámerný prístup:
- Odovzdané body sú záväzné body, nie len „návrhy". Routing engine z nich vytvorí zaručene prejazdnú trasu, ktorá prejde každým bodom v správnom poradí.
- Výsledok je reprodukovateľný a odchýlku od vašich pôvodných bodov možno zmerať a uvádzame ju.
- Zabezpečenie kvality (zjednodušenie + kontrola odchýlky) robíme my – nie klient. Ten nemusí dodávať 100 % trasu ani prevádzkovať map matching: odovzdá svoju plánovanú trasu, my sa postaráme o správnu trasu použiteľnú na mýto.
Kompromis je zámerný: radšej transparentné zamietnutie (HTTP 400 s odôvodnením), keď odovzdané body nedávajú jednoznačnú trasu, než ticho nesprávne mýto. Keď sa náš map matching preukázateľne osvedčí, prehodnotíme to – dovtedy zostáva routing s bodmi spoľahlivou voľbou.
Kedy to začína byť ťažké
Zjednodušenie funguje veľmi spoľahlivo pri bežných diaľkových jazdách. Ťažšie je to pri:
- Veľmi dlhých, viacdňových jazdách – čím dlhšia trasa, tým väčší rozostup bodov po zjednodušení.
- Rozvozových jazdách s mnohými malými zastávkami a slučkami.
- Úsekoch s trajektom alebo nakládkou (veľké medzery v GPS stope): cestná trasa sa potom môže výrazne odchýliť.
- GPS odľahlých hodnotách (zlý fix, tunel): jediný nepresný bod môže odchýlku zvýšiť.
- Zámerne bezmýtnych trasách: ak engine pôjde inokedy, zmení sa aj mýto.
Osvedčené postupy pre TMS integrácie
- Jedna jazda na požiadavku – neposielajte históriu pozícií z viacerých dní.
- Súradnice namiesto adries, keď máte veľa bodov.
- Dostatočne husté vzorkovanie – stačí asi 1 bod na kilometer.
- Vyčistite GPS: odstráňte nepresné fixy (
gpsFix=false, vysokáaccuracy). - Úseky s trajektom/nakládkou riešte ako samostatné požiadavky.
geometry_deviation_kmlogujte/sledujte, aby ste mali prehľad o kvalite dát.
Poctivé hodnotenie
TollCalc počíta mýto pre trasu, ktorou išiel routing engine. Pri hustých súradnicových reťazcoch je zhoda veľmi vysoká (v praxi zvyčajne pod 1 %), ale – na rozdiel od map matchingu – nie je zárukou 1:1. Kontrola odchýlky túto neistotu zviditeľňuje.