Lange ruter og mange punkter
Mange TMS- og planlægningssystemer beregner selv ruten (fx med Azure Maps, Google eller TomTom) og har derefter kun brug for afgiften for netop denne rute. De planlagte koordinater sendes derfor som punkter til TollCalc API.
Afsendelse af punkter
POST /api/calculate tager origin, destination og valgfrit via (mellemliggende punkter). Hvert punkt er enten en adresse eller en koordinat i formatet "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" }
}'
Grænser og serverside-downsampling
Routingmotoren behandler et begrænset antal punkter pr. forespørgsel (i øjeblikket 50 i alt, dvs. start + mål + 48 via). TollCalc håndterer det intelligent:
- Adresser (som først skal geokodes): højst 48
via. Flere adresser → HTTP 400. - Koordinater (
"lat;lon"): du må sende flere. TollCalc reducerer kæden serverside til grænsen (downsampling). Start og mål bevares altid, og rutens form prioriteres via en Douglas-Peucker-forudvælgelse. Ingen delstrækning skæres af.
Vigtigt: Downsampling virker kun, hvis alle punkter er koordinater (
"lat;lon"). Så snart en adresse er med, gælder grænsen på 48viafortsat.
Afvigelseskontrol (kvalitetssikring)
Da en reduceret punktkæde teoretisk kan forvanske ruten, kontrollerer TollCalc kvaliteten automatisk: den beregnede rute sammenlignes med dine oprindelige punkter, og den maksimale afvigelse vurderes i forhold til rutelængden.
- ≤ 2 % → normalt svar; afvigelsen står i feltet
geometry_deviation_km. - > 2 % → HTTP 400 med
errorog en forklarendewarning.
Eksempel på en afvist forespørgsel:
{
"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."
}
(API-meddelelsen er i øjeblikket på tysk.)
Ved et vellykket downsample indeholder svaret desuden:
| Felt | Betydning |
|---|---|
route_source |
"downsampled" (udelades, hvis ingen reduktion var nødvendig) |
waypoints_submitted |
antal indsendte støttepunkter |
waypoints_used |
antal punkter, der faktisk blev routet |
geometry_deviation_km |
maksimal afvigelse af dine punkter fra den beregnede rute |
Hvorfor routing med punkter i stedet for map matching?
Man kunne snappe en polylinje til vejnettet via map matching i stedet for selv at route. TollCalc gør det bevidst ikke – af en enkel grund: afgiften afhænger præcist af den kørte rute.
Afgiften varierer efter den konkrete motorvejsstrækning, operatør, tunneler og særlige afgifter, system (åbent/lukket) og land. En anden afkørsel eller en parallel vej giver allerede en forkert afgift. Ruten skal derfor være 100 % korrekt – ikke "nogenlunde".
Resultatet af map matching afhænger dog stærkt af inputkvaliteten:
- GPS-støj, samplingfrekvens og projektion af de sendte punkter,
- huller fra tunneler, færger eller manglende signal,
- "forenklede" eller udglattede polylinjer fra tredjepartssystemer.
Udefra kan vi ikke se, om den sendte geometri virkelig er den kørte rute eller en forenklet/forvansket version. Efter garbage in, garbage out ville vi oplyse en afgift for en rute, kunden aldrig har kørt – uden at det bemærkes.
Derfor den bevidste tilgang:
- De sendte punkter er bindende punkter, ikke blot "forslag". Routingmotoren skaber en garanteret farbar rute, der passerer hvert punkt i den rigtige rækkefølge.
- Resultatet er reproducerbart, og afvigelsen fra dine oprindelige punkter kan måles og oplyses.
- Kvalitetssikringen (downsampling + afvigelseskontrol) står vi for – ikke klienten. Klienten skal ikke levere en 100 %-rute eller køre map matching: den sender sin planlagte rute, vi sørger for den korrekte, afgiftsduelige rute.
Afvejningen er bevidst: hellere en transparent afvisning (HTTP 400 med begrundelse), når de sendte punkter ikke giver en entydig rute, end en stille forkert afgift. Når vores map matching beviseligt holder, tager vi det op igen – indtil da er routing med punkter det pålidelige valg.
Hvornår det bliver svært
Downsampling fungerer meget pålideligt for normale langture. Sværere bliver det ved:
- Meget lange, flerdages ture – jo længere rute, jo større punktafstand efter downsampling.
- Distributionsture med mange små stop og sløjfer.
- Færge- eller læsseafsnit (store huller i GPS-sporet): vejruten kan da afvige betydeligt.
- GPS-udfald (dårligt fix, tunnel): et enkelt upræcist punkt kan trække afvigelsen op.
- Bevidst afgiftsfrie ruter: kører motoren en anden vej, ændres afgiften også.
Bedste praksis for TMS-integrationer
- Én tur pr. forespørgsel – send ikke positionshistorik for flere dage.
- Koordinater i stedet for adresser, når du har mange punkter.
- Tæt nok sampling – ca. 1 punkt pr. kilometer er nok.
- Rens GPS: fjern upræcise fixes (
gpsFix=false, højaccuracy). - Færge-/læsseafsnit som separate forespørgsler.
- Log/monitor
geometry_deviation_kmfor at holde øje med datakvaliteten.
Ærlig vurdering
TollCalc beregner afgiften for den rute, routingmotoren kører. Ved tætte koordinatkæder er overensstemmelsen meget høj (i praksis normalt under 1 %), men – i modsætning til map matching – ingen 1:1-garanti. Afvigelseskontrollen gør denne usikkerhed transparent.