Lange routes en veel punten
Veel TMS- en planningssystemen berekenen de route zelf (bijv. met Azure Maps, Google of TomTom) en hebben daarna alleen de tol voor precies die route nodig. Daarvoor geef je de geplande coördinaten als punten door aan de TollCalc-API.
Punten doorgeven
POST /api/calculate accepteert origin, destination en optioneel via (tussenliggende punten). Elk punt is een adres of een coördinaat in de vorm "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" }
}'
Limieten en server-side downsampling
De routing-engine verwerkt per aanvraag een beperkt aantal punten (momenteel 50 in totaal, dus start + bestemming + 48 via). TollCalc gaat hier slim mee om:
- Adressen (die eerst gegeocodeerd moeten worden): maximaal 48
via. Meer adressen → HTTP 400. - Coördinaten (
"lat;lon"): je mag meer doorgeven. TollCalc reduceert de keten server-side tot de limiet (downsampling). Start en bestemming blijven altijd behouden en de vorm van de route wordt geprioriteerd via een Douglas-Peucker-voorselectie. Er wordt geen deelroute afgekapt.
Belangrijk: Downsampling werkt alleen als alle punten coördinaten zijn (
"lat;lon"). Zodra er een adres bij zit, geldt nog steeds de limiet van 48via.
Afwijkingscontrole (kwaliteitsborging)
Omdat een gereduceerde puntenketen de route theoretisch kan vertekenen, controleert TollCalc de kwaliteit automatisch: de berekende route wordt vergeleken met je oorspronkelijke punten en de maximale afwijking wordt ten opzichte van de routelengte beoordeeld.
- ≤ 2 % → normale respons; de afwijking staat in het veld
geometry_deviation_km. - > 2 % → HTTP 400 met
erroren een verklarendewarning.
Voorbeeld van een afgewezen aanvraag:
{
"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."
}
(De API-melding is momenteel in het Duits.)
Bij een geslaagde downsample bevat de respons daarnaast:
| Veld | Betekenis |
|---|---|
route_source |
"downsampled" (afwezig als geen reductie nodig was) |
waypoints_submitted |
aantal ingediende steunpunten |
waypoints_used |
aantal daadwerkelijk gerouteerde punten |
geometry_deviation_km |
maximale afwijking van uw punten ten opzichte van de berekende route |
Waarom routing met punten in plaats van map matching?
Je zou een aangeleverde polylijn via map matching op het wegennet kunnen leggen in plaats van zelf te routeren. TollCalc doet dat bewust niet – om een simpele reden: de tol hangt exact af van de gereden route.
De tol verschilt per concreet snelwegtraject, exploitant, tunnels en bijzondere tolheffingen, systeem (open/gesloten) en land. Een andere afrit of een parallelle weg levert al een verkeerde tol op. De route moet dus 100 % kloppen – niet "ongeveer".
Het resultaat van map matching hangt echter sterk af van de kwaliteit van de invoer:
- gps-ruis, bemonsteringsfrequentie en projectie van de doorgegeven punten,
- gaten door tunnels, veerponten of signaalverlies,
- "vereenvoudigde" of afgezwakte polylijnen uit systemen van derden.
Van buitenaf kunnen we niet zien of de aangeleverde geometrie echt de gereden route is of een vereenvoudigde/vertekende versie. Volgens garbage in, garbage out zouden we dan een tol opgeven voor een route die de klant nooit heeft gereden – zonder dat het opvalt.
Daarom de bewuste aanpak:
- De doorgegeven punten zijn bindende punten, geen "suggesties". De engine maakt er een gegarandeerd berijdbare route van die elk punt in de juiste volgorde passeert.
- Het resultaat is reproduceerbaar en de afwijking ten opzichte van je oorspronkelijke punten is meetbaar en wordt vermeld.
- De kwaliteitsborging (downsampling + afwijkingscontrole) doen wij – niet de klant. De klant hoeft geen 100 %-route te leveren of map matching te draaien: hij stuurt zijn geplande route, wij zorgen voor de correcte, toldeugdelijke route.
De afweging is bewust: liever een transparante afwijzing (HTTP 400 met reden) wanneer de doorgegeven punten geen eenduidige route opleveren, dan een stilzwijgend verkeerde tol. Zodra onze map matching aantoonbaar standhoudt, herzien we het – tot die tijd blijft routing met punten de betrouwbare keuze.
Wanneer het lastig wordt
Downsampling werkt zeer betrouwbaar voor normale langeafstandsritten. Lastiger wordt het bij:
- Zeer lange, meerdaagse ritten – hoe langer de route, hoe groter de puntafstand na downsampling.
- Distributieritten met veel kleine stops en lussen.
- Veerpont- of laadsegmenten (grote gaten in het gps-spoor): de wegroute kan dan flink afwijken.
- Gps-uitschieters (slechte fix, tunnel): één onnauwkeurig punt kan de afwijking omhoog stuwen.
- Bewust tolvrije routes: rijdt de engine een andere weg, dan verandert de tol ook.
Best practices voor TMS-integraties
- Één rit per aanvraag – stuur niet de positiehistorie van meerdere dagen.
- Coördinaten in plaats van adressen bij veel punten.
- Dicht genoeg bemonsteren – ongeveer 1 punt per kilometer is voldoende.
- Gps opschonen: verwijder onnauwkeurige fixes (
gpsFix=false, hogeaccuracy). - Veerpont-/laadsegmenten als aparte aanvragen.
- Log/monitor
geometry_deviation_kmom de datakwaliteit in de gaten te houden.
Eerlijke beoordeling
TollCalc berekent de tol voor de route die de routing-engine rijdt. Bij dichte coördinatenketens is de overeenkomst zeer hoog (in de praktijk meestal onder 1 %), maar – anders dan bij map matching – geen 1:1-garantie. De afwijkingscontrole maakt deze onzekerheid transparant.