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 48 via.

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 error a vysvetľujúcim warning.

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

  1. Jedna jazda na požiadavku – neposielajte históriu pozícií z viacerých dní.
  2. Súradnice namiesto adries, keď máte veľa bodov.
  3. Dostatočne husté vzorkovanie – stačí asi 1 bod na kilometer.
  4. Vyčistite GPS: odstráňte nepresné fixy (gpsFix=false, vysoká accuracy).
  5. Úseky s trajektom/nakládkou riešte ako samostatné požiadavky.
  6. geometry_deviation_km logujte/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.

→ Vypočítať mýto