Vrachtwagenheffing

Goedemorgen,

Ik ben nieuw hier op het forum en vraag hulp om het vrachtwagenheffings netwerk in openstreetmap te krijgen.
De shapefile is hier te vinden:

Andere formaten zijn eventueel ook te vinden daar.

Alleen hoe kan ik dit nu binnen openstreetmap krijgen? Ik wil mbt Graphhopper routes berekenen. Die gebruiken nu openstreetmap, alleen zijn daar op dit moment alleen alle A-wegen geclassificeerd. Dat klopt niet en enkele N-wegen moeten toegevoegd worden.
Meer info op: www.vrachtwagenheffing.nl

Wie kan mij helpen?

Welkom op het forum.

Bedankt voor het linken van https://www.vrachtwagenheffing.nl/, daar lees ik:

De start van de vrachtwagenheffing is gepland op 1 juli 2026. Vanaf die datum betalen eigenaren van vrachtwagens per gereden kilometer.

Dus we hebben nog even maar goed om dit nu op te pakken.

Verder vond ik op de site:

Net als in landen om ons heen betalen eigenaren van vrachtwagens dan een bedrag per gereden kilometer. De heffing geldt op bijna alle snelwegen en een aantal provinciale en lokale hoofdwegen.

Dat betekend dat het goed is om het meer international op te pakken.

Even rond gekeken maar er is:

En met 88.220 wegen in de wereldwijde OSM database is dat best redelijk gebruikt.

Een vraag is of toll:hgv=yes goed (genoeg) is of dat het iets anders moet worden dan yes, de heffing geldt alleen voor voertuigen >= 3.5 ton maar < 3.5 ton nog wel “heavy”? :wink:

Wat betreft Graphhopper, zowel A als N wegen in Nederland zijn consequent gemapt, zie:

Kan je iets beter detailleren wat je bedoeld met “alleen zijn daar op dit moment alleen alle A-wegen geclassificeerd. Dat klopt niet en enkele N-wegen moeten toegevoegd worden”.

Ik zie Graphhopper ondersteuning lijkt te hebben voor toll:hgv:

Road attributes:
…
toll: (MISSING, NO, HGV, ALL)

Van https://docs.graphhopper.com/openapi/custom-model/road-attributes

Je zou dat alvast eens kunnen proberen, de Westerscheldetunnelweg heeft toll:hgv=yes

Dank voor je antwoord!
1 juli 2026 klopt inderdaad, alleen is het wenselijk om nu al de impact te kunnen berekenen.

Voorbeeld bij Graphhopper. De A31 tussen Harlingen en Leeuwarden wordt als tol geclassificeerd, maar dat is conform de site www.vrachtwagenheffing.nl niet zo.
Als je naar de N246 en N244 kijkt en bij Graphhopper routeer je over deze weg, dan wordt er nu geen tol gerekend. Die wegvakken staan nu niet als tolweg geclassificeerd. En dat zijn wel tolwegen.

Het gaat erom dat je van een route straks het aantal kilometers over de tolweg kunt zien. Op dit moment gebeurt dat in Belgie, Duitsland en Frankrijk bijvoorbeeld al. Als we op die manier Nederland kunnen toevoegen, zou dat mooi zijn.

Westerscheldetunnel heb ik geprobeerd en werkt helemaal goed.

Wat zou ik nu moeten doen om die wegen als zijnde toll:hgv=yes te krijgen?

Dat is dan een Graphhopper probleem, alle wegen met toll:hgv=yes in Nederland kan je vinden met overpass turbo.

Voor een voorbeeld van de data die gemapt is voor de A31 zie dit segment en merk op dat er geen toll:hgv=yes of een andere toll tag is.

Dus hiervoor zou ik nog eens verder kijken en misschien een topic openen op https://discuss.graphhopper.com/

toll:hgv=yes toevoegen aan de betreffende wegen is niet zo moeilijk met het goede gereedschap, ik vermoed dat er verschillende mensen wel willen helpen maar ik zou voorstander zijn om het in ieder geval nog een weekje te geven zodat meer mensen input kunnen geven.

2 Likes

In ieder geval moet dat pas gebeuren als op de weg of het wegdeel werkelijk tol geheven wordt. Alleen een plan is niet voldoende, want dan zou de navigatie melden dat er tol geheven wordt terwijl dat nog niet het geval is.

4 Likes

Dank voor je antwoord.

Misschien is het mogelijk met een datum erbij? Datum van start van de rit/route? Dat zie ik bij meerdere navigatie producten terugkomen.

Geen ervaring hiermee maar als ik het zou willen proberen dan zou ik dit recept proberen te volgen:

Dat start GraphHopper op met een eigen .pbf en daar kan dan de toll:hgv=yes in zetten.

Je maakt eerst een OsmChange file met de toll:hgv=yes wijzigingen, dan merge je die wijzigen met netherlands.pbf of europe.pbf (bijv. met osmium merge) en vervolgens draai je daarmee.

Die OsmChange file kan je maken met josm of wat scripts. Je hebt wel alle osmid’s nodig voor alle wegen die toll:hgv=yes moeten krijgen.

1 Like

Dank je! Alleen gaat dat mijn pet te boven.
Geen idee hoe ik zo’n file zou moeten aanmaken.
Helaas moet ik zo weg, maar ga van de week wel eens lezen en proberen.
Mochten er mensen zijn die tips hebben, dan houd ik me aanbevolen!

Fijne zondag!

Na een privé topic met @GJNK een update:

Inmiddels is er een geopackage of geojson bestand (kan je bekijken met geojson.io) met de OSM data voor de wegen die per 1 juli 2026 toll:hgv=yes moeten gaan krijgen. Verder is er een .pbf bestand dat als input voor Graphhopper kan dienen en alvast toll:hgv=yes heeft:

Wat je dan nog nodig hebt is om graphhopper lokaal te draaien met een vrachtwagen/truck profiel is een config.yml file specifiek voor vrachtverkeer:

graphhopper:
  datareader.file: "netherlands_toll_hgv.pbf"
  graph.location: graph-cache
  graph.encoded_values: road_class, road_access, car_access, hgv, max_width, max_height, max_length, car_average_speed, max_weight, max_weight_except, toll
  import.osm.ignored_highways: footway,construction,cycleway,path,pedestrain,steps # typically useful for motorized-only routing
  profiles_ch:
    - profile: truck

  profiles:
     - name: truck
       turn_costs:
         vehicle_types: [hgv]
       custom_model:
         speed:
          - if: "true"
            limit_to: 75
          - if: "road_class == MOTORWAY"
            limit_to: 80
         priority:
          - if: "road_class == MOTORWAY"
            multiply_by: 1.5
          - if: "road_class == TRUNK"
            multiply_by: 1.4
          - if: "road_class == PRIMARY"
            multiply_by: 1.3
          - if: "road_class == SECONDARY"
            multiply_by: 1.2
          - if: "road_class == TERTIARY"
            multiply_by: 1.1
          - if: "road_class == RESIDENTIAL"
            multiply_by: 0.5
          - if: "road_class == SERVICE"
            multiply_by: 0.2
          - if: "road_class == TRACK"
            multiply_by: 0.1
          - if: "road_access == PRIVATE || road_access == DESTINATION"
            multiply_by: 0.1
          - if: "max_height < 4.0"
            multiply_by: 0
          - if: "max_width < 2.55"
            multiply_by: 0
          - if: "max_length < 12.0"
            multiply_by: 0
          - if: "max_weight < 40.0"
            multiply_by: 0
          - if: "road_access == NO || hgv == NO || road_access == PRIVATE"
            multiply_by: 0
          - if: "!car_access && road_access != PRIVATE && hgv != DELIVERY && hgv != DESTINATION"
            multiply_by: 0

Hiermee zie ik, voor de vrachtwagen, logische routes maar toll:hgv=yes is nog niet meegenomen. Hoe dat moet is afhankelijk van hoe je de tolkosten ziet (en het type voertuig).

Ik begrijp dat men verwacht dat door de tol geen grote verschuiving in het verkeer gaat plaatsvinden en als dat wel het geval is dan past men evt. de wegen waarvoor tol geldt aan. Ik begrijp ook dat de toll in NL lager is dan die van de buurlanden en dat vrachtwagen-toll in de buurlanden al actief is.

Zie je iets dat niet klopt, ik hoor het graag.