From OpenStreetMap Wiki
Jump to navigation Jump to search

Rendering toll roads

In my opinion, both Mapnik and osmarender should apply a different visual style to toll roads, as the the functional difference with normal roads (having to pay) is significative enough. Look at this picture: Madrid west The A-5 is a state-owned motorway (in blue), while the M-501 (in red) is a region-owned motorway. However, the R-5 (also in blue) is a tolled motorway. So, I have information about who owns a particular road, but not about whether I have to pay to use it? Such a map would be quite useless to me as a driver.

My proposal is to "imitate" what Google does: paint a toll road in a darker shade of the same color used for a non-tolled road of the same category. Habbit 16:47, 16 April 2010 (UTC)

Google doesn't seem to show toll roads differently:,-80.837703&spn=0.003484,0.010278&z=18. (By the way, I do support OSM doing so.) --NE2 01:59, 17 April 2010 (UTC)
Strange... it does in my country: [1]. The roads marked as R-5, AP-41 and R-4 should appear as dark orange, while other motorways appear as light orange :S. Habbit 09:20, 17 April 2010 (UTC)
Someone opened an issue on openstreetmap-carto (OSM main style render) in order to render this: --Nighto (talk) 18:04, 24 June 2014 (UTC)

Additions tags for transponder only highways

We need some additional tags for segments of toll highways that you need a transponder on and can't use cash. Some examples would be the E-ZPass Express lanes on the PA Turnpike mainline (I-76) at some of the Toll Plazas (Gateway, Warrendale). Each of those plazas (there are also two on PA Turnpike 43 that are setup the same way) have separate express lanes that only E-ZPass tag holders can use and stay @ 55mph, while others who want to pay with cash or don't trust their E-ZPass to trigger at highway speeds have to exit to the toll booths. Here's the Warrendale Plaza ( ). The inner lanes are the E-ZPass Express only lanes, while the outer ones are the normal lanes that you can use cash or E-ZPass in.

Now, on the Express lanes, I've already started using the tag barrier=toll_gantry for the toll payment area. We should come up with some other tags for the E-ZPass express lanes so that they can be marked separately from the other lanes so that people can input that they have a specific type of transponder and the routing would map them to take the Express lanes instead of the normal lanes.

I'm thinking of the following tags: toll=transponder toll:transponder=(insert type of transponder needed here. Example: E-ZPass) toll:transponder_2=(use this and continue adding other accepted transponder types that work here)

What do you guys think? I would need help setting up the Proposed page for the toll=transponder one as well as making official the barrier=toll_gantry one too. --Rickmastfan67 04:39, 24 July 2010 (UTC)

Not sure. This might be a situation where a relation of all toll plazas operated by a single authority would make sense, so you could tag the relation with what transponders are accepted. Then the individual toll plazas would have special tags if you can't use cash. Perhaps something like cash=no on the toll_booth node, and keep toll=yes for ease in seeing what roads are tolled? (There are also complications like truck-only tolls that need to be dealt with.) --NE2 05:04, 24 July 2010 (UTC)
I experimented with toll_method=transponder on the Westpark Tollway here: [2] Other possible values could be photo, carnet, cash. -- Gridlock Joe 16:26, 10 October 2011 (BST)

Additions tags for car/acces type

We need more specific information about this - some ways are tolled for trucks only (ie. more then 3t5). --Jezevec 10:28, 3 August 2011 (BST)

I've used toll=no toll:hgv=yes. --NE2 13:42, 3 August 2011 (BST)

Is required more to specify the type of toll

for all transit use tag "toll=yes" (?)

for trucks + buses (more then 3,5t) use tag "toll:hgv=yes" (?)

toll only for a specific time "toll:hgv=8:00-18:00"

or you have other suggestions? Please tell your opinion.

Swejzi, 10 August 2011

For example is free for pedestrians and cyclists but paid for all other vehicles. I used toll=yes, toll:bicycle=no, toll:foot=no. I am considering documenting this tagging method as optimal way of handling this Mateusz Konieczny (talk) 08:16, 19 June 2019 (UTC)

tag for parts of roads, with entrance only from toll road

Shouldn't we add phrase, that tag should be also used for parts of roads with entrance only from toll road (for example, part of oneway-road from barrier=toll_booth until nearest free-of-charge road? Dinamik 07:49, 25 October 2012 (BST)

That's what the page says - "you must pay to use it". --NE2 12:49, 25 October 2012 (BST)

Documenting tags specifying greater detail

High occupancy toll (HOT) roads are lanes that normally incur a toll, but are free for certain users such as those with three or more people in their vehicle. This needs a tag that hasn't been "formally" documented yet. Two users have used toll:hov=* 223 times to indicate there is no toll for HOV users. Roads that only charge a toll for HGV are tagged with toll:hgv=* and is used by 46 users 1093 times. There are others in use too, just visit Taginfo and search for toll (not the first search box, but second so you can see # of users).

Should we document these on this article? Generally it seems safe to just append any of the keys from the Transport mode restrictions section of access=*. -- Joshdoe 15:57, 19 November 2012 (UTC)

High occupancy toll lanes

How should one tag a HOT (high occupancy toll lanes) which can both be used by vehicles which qualify by having enough occupants and by lower-occupancy vehicles which pay a variable fee? Could we use toll=hot in place of toll=yes (this would be used in conjunction with hov=2 or hov=3)? PeterIto 04:14, 20 January 2013 (UTC)

I asked this question in the previous section, however admittedly the title is pretty bad. I've seen toll:hov=no be used, which makes sense to me, and can provide greater detail because some HOT lanes also don't charge for motorcycles or buses, which could be indicated by toll:motorcycle=no and toll:bus=no. -- Joshdoe 17:55, 21 January 2013 (UTC)
What about designating the minimum riders to not be tolled? Perhaps use toll:hov:minimum=3 for roads such as the I-95 and I-495 Express Lanes in Virginia on which HOV 3+ vehicles aren't tolled? --Roadsguy (talk) 18:58, 21 October 2018 (UTC)
The toll is a positive application not a negative, so toll:hov:maximum=2 or perhaps tollfree:hov=3 or toll:hov:no=3 would be better. But there's already a hov:minimum=* tag (which is not by itself an access restriction) that could be used instead. --goldfndr (talk) 14:44, 28 November 2018 (UTC)

Vignette: differentiation against usual toll

In some European countries (e.g. Austria, Bulgaria, Czech Republic, Hungary, Moldova, Romania, Slovakia, Slovenia, Switzerland) the one pays not for distance traveled, but for certain period of time (e.g. week, 10 days, month, year). In this case vignette usually covers almost all motorways in the country.

Why use a separate key: - In some countries 2 type of motorway tolls are in place: vignette (time based for almost all motorways) and tolls (for specific roads: special tunnels, some mountain roads and passes, private roads etc.). For example: in Austria vignette covers most of the motorways, however there are many roads with a separate toll. - Such differentiation is crucial for route planning, where a person only wants to use motorways and roads covered by Vignette and does not want to pay additional fees on the way. - At this point of time ()with current tagging of toll roads) such improved routing is not possible.

Tagging suggestion: toll=vignette -- Gekapes 15:26, 9 August 2016

Waze is now tagging each country differently to allow for multiple routing options according to acquired vignettes (e.g. not having a Slovenian vignette, but an Austrian). This is quite practical in Europe. Thus different national vignettes should be added.
My suggestion would be:
There could also be sub-values to toll=vignette, such as
--Girolamo (talk) 19:58, 16 March 2019 (UTC)
Can we please improve on this before too many people start making too many different versions.
If we go with collecting everything in key toll then I would stick to the existing pattern of COUNTRY:type (eg. toll=AT:vignette).
I would go even further and say toll=yes is depracted and is exchanged and only values should be used. (so instead of toll=yes there would be eg. toll=fee for regular toll on streets)
--TBKMrt (talk) 18:38, 26 March 2019 (UTC)
Yes, you are absolutely right. The key "toll=yes" is deprecated and not providing enough info. Before starting to develop standard solutions, have a look here:
* Waze will now take into account the Swiss highways vignette (toll sticker) for routing or
* Map Editors Bring the Vignette Pass to Waze, Community Champs work together to improve local navigation across Eastern Europe.
Besides, we have to take into account special situations. E.g. in Hungary there is a national vignette (E matrica) and there are local vignettes for the counties (introduction of an additional key for Hungarian counties only in this special case alongside the national vignette?).
In Austria, Waze has also introduced a differentiation for "A10 Tauern+Katschbergtunnel". Toll is e.g. also being paid separately at Karawankentunnel on the A11 or the Arlberg-Straßentunnel on the S16. Thus, certain passages should be generally marked as "key:toll", but in general all motorways should be marked with the national vignette.
At least in the following countries, the national motorway network should be updated with the respective national vignette toll key: Switzerland, Austria, Czech Republic, Slovakia, Hungary, Slovenia, Romania, Bulgaria, Moldova.
This should provide for future-oriented navigational solutions based on OSM.
Notwithstanding future European satellite navigation developments (toll per km), as far as I know, the vignette systems will be maintained in the future. Many thanks for your help in developing a proper future standard (on this page - mapping should start afterwards)!
--Girolamo (talk) 12:26, 31 March 2019 (UTC)
@Waze: It looks like it's another Google App (Wikipedia says Waze runs "without using external sources or projects like OpenStreetMap". Aka: we wouldn't have to care about Waze for mapping changes in OSM.)
@Hungary: Sounds more complicated. If we want to stick with one key then we could do something like toll=HU:vignette:national and toll=HU:vignette:county. We also could go for something like toll=vignette & type:toll=HU:national. Personally I would avoid a "vignette" key because it is too specific IMHO.
@Austria: If there are multiple requirements for one street they could be added like toll=AT:vignette;fee so the street would require a vignette and a seperate fee.
Since there is a different toll for HGVs we could use toll:hgv=fee for that. If there is a different toll for eg. HGVs with >7.5to there could be something like toll:hgv:conditional=VALUE @ (weight>5.5)
I have added some general notes at the bottom. Feel free to add comments and idea, but please do not delete anything.
--TBKMrt (talk) 10:57, 9 April 2019 (UTC)

Tag Meaning Comments
toll=yes There is some kind of toll To be depracted
toll=? The toll for this street is payed with a vignette Country specific code needed
toll=? The toll for this street is payed extra (eg. in a toll booth)
@Waze: Indeed, the question rather is, why have we not yet set appropriate standards for the development of navigational apps based on OSM. This discussion is to make OSM even better and learning from others.
The key "toll=yes" in general is deprecated. The key is in a certain way useful for indicating a distance-based toll (as most countries use distance-based tolls). However, this could be further specified.
Instead of the term "vignette" we could also use the term "time-based" or "time" or similar. I would propose to use the simplest keys with the most necessary elements (e.g. without adding ":national").
@Hungary: Right.
@Austria: From a legal point of view I am quite sure that those extra roads/tunnels (e.g. Tauerntunnel) are exempted from the vignette obligation (but usually you cannot reach them other than via the toll motorway). Thus, these tunnels deserve to have a separate toll function/key.
Possible solutions
Type of road Proposal Comments
Distance-based. Road toll based on distance (per km) (deprecated: toll=yes) toll=distance-based The toll for this street is payed at toll booths (e.g. France, Italy, Croatia) or via satellite system.
Time-based. Vignette (week, 10-day, month, annual pass) "toll=HU" or "toll=HU:time-based" The toll for this street is payed with a vignette (before entering the country). (e.g. Switzerland, Austria, Czech Republic, Slovakia, Hungary, Slovenia, Romania, Bulgaria, Moldova)
Time-based and local. County vignette "toll=HU" or "toll=HU:time-based" in conjunction with "type:toll=HU:county" (e.g. "type:toll=HU:Zala") Notwithstanding the national vignette, there is also a possibility to buy the (annual) toll only for a certain county or province (e.g. in Hungary)
Special section, distance-based. Fees for special roads or tunnels toll=AT:Tauern The distance-based toll for this particular motorway section or tunnel (e.g. Tauerntunnel in Austria) is payed extra (eg. at toll booths), even if there is a general vignette in this country.
Time-based. HGV (heavy-duty vehicles). "toll:hgv=HU" or "toll:hgv=HU:time-based" Time-based toll for HGV.
Time-based. HGV conditional (e.g. heavy-duty vehicles with more than 7.5 tons). "toll:hgv:conditional=HU @ (weight>7.5)" Time-based toll for HGV with >7.5 tons (i.e. national vignette in Hungary).
Open for your views and considerations.
--Girolamo (talk) 17:25, 12 April 2019 (UTC)

@ Waze: I think the answer is very easy: Nobody cared and/or was fine to have a yes or no solution at the time. We just want to make it better.
@ Austria: "The toll sticker is not compulsory in the sections where the route toll applies." by ASFINAG
@ table: The types of used tolls seem to be fine. I don't really enjoy the tags though. E.g. toll=HU is as bad as toll=yes in my opinion. "HU" doesn't say anything special about the toll itself. Same goes for toll=distance-based. I don't really like that one either. It's more like what system is used and not how to fullfill the toll. If we use very specialised tags like toll=AT:Tauern, there would just be a massive error rate upcoming, because most mapping tools just won't care to bother including the tags correctly (one tag per tunnel with extra toll all around the world is just waaay too much).
I would use the toll key to specify how the access to this way is payed - because this is what matters the most for the end user. So either with a fee, a vignette or some kind of meter. type:toll could be again used here to get more into detail.
In Italy you have to pay a fee per driven kilometer. In the Tauerntunnel you have to pay a fee to pass the tunnel. You can also buy a ticket for a year and pass as often as you like. I don't think that OSM needs or even should provide that information. After thinking hard about this I think we have to sacrifice some mapping detail to provide usability for non-power mappers. The average mapper just will not read tons of documentation to find the single tag he needs. The avergae programmer will not include an uncountable ammount of special cases to provide information only few will ever need.
How about this: toll=fee/vignette/meter & toll:type=time/distance (& toll:fee/vignette/meter=<SPECIAL INFORMATION>). To be honest I would like to cut out all 'special' options (so ditch the last one) to improve usability and the likelyness that the keys will be used by mapping software. The more generic and simple everything is, the more likely it will be used.
Examples: The italian motorway would be toll=fee & toll:type=distance. The one in Austria for HGVs would be toll:hgv=meter & toll:hgv:type=distance & toll:meter=GOBox while regular motor vehicles would be toll=vignette & toll:type=time. Again I don't really like the use of three tags here. If you need to use the motorway you know the special cases anyway.
--TBKMrt (talk) 22:27, 13 April 2019 (UTC)

Actually I like your suggestions, TBKMrt. However, I fear that you might again be guided by quite theoretical thinking. I am looking at all of this in a very pragmatic way, for concrete use cases. Thus, what do you suggest as a solution for this usecase: I am an navigational app programmer using OSM as a map. I have app users from different countries in Europe. Example: I would like to offer an app user from Austria the ideal possibility to store his Austrian vignette, which he regularly bought, in the app settings as predefined setting. The user, however, has no Hungarian vignette at this moment and does not want to buy one (this is crucial, users do not always want to buy all toll stickers for all countries). Of course, he could also buy one and save this additional vignette in his app settings. However, this user simply wants to find the cheapest route through Austria and Hungary without having to use (in this case) Hungarian toll routes (in this case 1 vignette four country A, but no vignette for country B)?
If I read your suggestions correctly, it would still not be possible for me as app programmer to successfully calculate a routing for this user based on his predefined settings. I would need to know specifically whether the motorway belongs to the Austrian toll network, or to the Hungarian toll network. I think this at least is crucial for the further development of this OSM toll key. So what do you suggest. And please do not understand me wrong, I am a total fan of KISS (keeping it short and simple) - but I think we need to offer this (national toll network) information in the map. --Girolamo (talk) 17:43, 1 May 2019 (UTC)

It should still be possible. When you do a calculation from AT to HU you can do an area check for the street. The logic would be like this: If the street has a toll value (any is enough) check if the way is inside the boundries of relation 16239 (aka Austria) or inside of relation 21335 (aka Hungary). However, this would be more complicated than searching in a tag for a standardised set of information.
For whatever reason I forgot the country code in my latest suggestion. So it would be toll=<COUNTRY CODE>:fee/vignette/meter & toll:type=time/distance, so eg. toll=AT:fee & toll:type=time. Even it should be still possible without any country information inside the toll key, adding the country in the it is the much better idea of course.
--TBKMrt (talk) 16:18, 4 May 2019 (UTC)

Agree. Thanks for the info. Indeed, after all this talk, this would be a good suggestion (e.g. toll=AT:fee & toll:type=time). What else is there to do to implement this in a standardized way and to make it usable (e.g. in JOSM)? --Girolamo (talk) 17:56, 5 May 2019 (UTC)
The first thing would be that we write down the combination of keys and values that are sutable for this purpose.
Next would be a to set up a proposal and let the community decide wether they like ot or not. To be honest this is by far not my favourite part, because the community is small when you ask for ideas, comments and solutions but is big when it's about turning an idea down or voicing their 'concerns' without giving any usable way to make it better. But afterall this would be the standard way to implement something - at least as far as I know.
JOSM isn't really a gib deal. Just write the key and tag combination in the editor and it's fine. Once we have an approved proposal we can submit a code change to iD on github to include the changes.
--TBKMrt (talk) 20:58, 5 May 2019 (UTC)
Just spotted that Waze Germany has included environmental zones into the app (Waze Germany. Environmental Zones). I think that our newly proposed system could also cater for that ("toll:type=environment" ?). See e.g. Driving in Germany: Green Zones. Unfortunately I will not be available for some time. I would thus be very grateful for your proposition. Defending it as soon as back available. There is significant added value in this proposition in my opinion, bearing in mind this abundance of possibilities and use cases. --Girolamo (talk) 16:29, 6 May 2019 (UTC)

Germany's Environmental Zones are not a case for toll, but for access. In germany you don't pay to access with certain cars, but you are rather simply not allowed to enter. However, it was a good note, because we obviously have city tolls in some countries (eg. the UK, Norway, Italy or Sweden). Moreover some of them are conditional (so they only apply between 07:00-18:00.
I have created the proposal page here
--TBKMrt (talk) 18:54, 7 May 2019 (UTC)

I have updated the current page and moved it here: Proposed_features/toll#New_page_layout --TBKMrt (talk) 20:12, 7 May 2019 (UTC)

One way toll on two way traffic road

There is no tag to indicate what direction the toll is for on two way roads that collect in only one direction. I was thinking toll=forward and toll=backward?
This obviously have to be added to direction flag if people change way directions in editors to not break it. Gazer75 (talk) 12:01, 19 November 2019 (UTC)

In all cases where I've encountered this in practice, it seems sufficient to split the way into one-way sections at the actual toll booth, and add toll=yes on the applicable one way section. The downside is that you can't easily see which road sections are tolled. Now I also notice there is no toll=conditional tag in case the toll depends on the time of the day.Ff5722 (talk) 12:09, 19 November 2019 (UTC)
I would expect toll:conditional=* (see Conditional restrictions), toll:backward=*, toll:forward=* (Forward & backward, left & right) like it is done with for example maxspeed=* and lanes=*. I would advise against attempting to add more values to toll=*. Mateusz Konieczny (talk) 13:20, 19 November 2019 (UTC)
"Now I also notice there is no toll=conditional tag in case the toll depends on the time of the day" - can you link case where it would be useful? I will add an example to the Conditional restrictions page Mateusz Konieczny (talk) 13:22, 19 November 2019 (UTC)
You can use this overpass turbo earch to find all toll gantries with a direction= value in Norway. Gazer75 (talk) 13:46, 20 November 2019 (UTC)
I think we should add to the wiki the directional tag for those cases where the toll only applies to one direction of the road, in this case, it should be toll:backward=* and toll:forward=*. --AntMadeira (talk) 01:16, 30 November 2022 (UTC)

toll=* for waterway=*?

When a charge is levied for the use of a lock on a waterway, it makes sense to use toll=* to mark the waterway marked with lock=yes with toll=yes rather than fee=*. The reasoning being that toll is something you levy for the right of passage on routable elements (regardless of their medium; be it road or water), and fee something you charge for access to amenities or facilities. The documentation is not clear on this though. Any thoughts? --JeroenHoek (talk) 11:22, 30 May 2021 (UTC)