Routing in car free zones inside city centers

Example of such a case where foot and motor_vehicle have a different permit situation: Marche-les-Dames military training center that you can enter on foot to go climbing if you’re member of an alpine club, otherwise (on foot, or with a vehicle) you need military clearance.

Using some “permit” tagging for military clearance would make that tagging really broad, but I don’t object if we can clarify it in a straightforward way.

Hi Guys,

Thank you all for your feedback.
At this point I have the feeling there no 100% consensus on the right approach.

  • some suggest to use new tags/naming
  • other suggest to keep the vehicle and set it to private or permit/conditional

I also agree that it could be better with any other way of adding more information, but for that I think OSM is not ready as there are no guidelines that 100% solve this question.

Keeping in mind that Openstreetmap purpose is to map what you see and not for purpose + that on the traffic sign it clearly (and simply) says ‘only for permit holders’, my suggestion would be to set vehicle=‘permit’ instead of ‘no’ as it better clarify the current/actual situation. It also checkes the boxes for 90% of the ‘permit’ definition.

I would be happy to help to transition at a later stage to a better naming/tagging convention but for now imho vehicle=permit seems te way to go.

I hope I can count on your support for this approach?

Kind regards

is anyone able to apply for that permit and get it?

Currently the roads are tagged with vehicle=no and yet I see vehicles driving on those roads every day.

and yes everyone can apply for a permit, most/all of them will get the permit if you have a valid reason.

1 Like

that is vehicle=private

1 Like

Also good to me, so i tag all the roads vehicle=private :ok_hand:

Thonyv asked me to take further care of this. I’m planning to map these using

  • vehicle=private
  • private=<something>
  • <something>=BE:gent:autovrij_gebied

I’m looking to use something else than just permit, so that it can also be used in conditional restrictions (e.g. vehicle:conditional=<something> @ (18:00-11:00)).

I’m looking for suggestions for what the <something> could be. In the best case, it’s a concise term that conveys that when a permit is requested, the case is evaluated by the authority, and not just given to anyone.

The inverse, changing the existing permit tag to something that conveys that permits are just a formality, could also be desirable. We could keep this in mind already to choose symmetrical tags.

1 Like

This is the best I could come up with so far:


The current proposal has a disadvantage: It’s difficult to tag different rules that apply to different types of vehicles on the same road.

I agree with @Pieter_Vander_Vennet to better stay with existing tags and use the conditional syntax, like:

vehicle = no
vehicle:conditional = yes @ (exceptional_permit = BE:gent:autovrij_gebied)

That could be interpreted right out-of-the-box by any tool that knows about conditional tags and (at least) be displayed to the user to read and evaluate manually.

If the access rules are as strict as implied in this thread, I would opt for using “no” instead of “private” - which are these “private” vehicles that are allowed to enter?

I also agree with @Martin_Borsje that the restriction seems to be for motor_vehicle, not for vehicle in general.

That’s a situation that exists but is very uncommon. It’s still possible to differentiate:



If we keep this scheme, I’m planning to write about this too on the wiki.

This is also possible and flexible, and I don’t object to it. I had just chosen the other variant for now.

One hypothetical case that this could map and the other not is different private restrictions depending on time:

vehicle:conditional=yes @ (Sa,Su AND exceptional_permit=BE:example:weekend_pass); yes @ (exceptional_permit=BE:example:full_pass)

I don’t have strong opinions one way or another. It’s not unlikely that I will write an RFC for this and put it up for vote.

The mapping with vehicle is more or less correct as-is, based on the traffic signs that are installed. Changing it to motor_vehicle would not make it more correct, and would make it even more difficult to interpret for mappers. To actually make it more correct, I would have to add horse and look into our laws regarding kick_scooter and hand_cart.

The order of the key parts should be the opposite:


“private” and “exceptional_permit” are the main tag (the one the value belongs to) and the transportation mode is always given as a subkey, compare to maxspeed:hgv or capacity:bus.

1 Like

The problem is with e.g. oneways not part of a ZTL/ATL zone. Our ATL is devided in 5 subs for which license is given, it even goes so far that one street section was administered around so the residents of that oneway street can actually via the ATL pedestrian way exit all day else when ATL is active per the LED displays these folks could not leave. The second oneway ending on ATL is though stuck, no way around, lest people throw their gearbox in reverse, they do. Anyway this oneway is always showing in GraphHopper as problem, peeps have to leave via the pedestrian zone. Tagging with conditional, permit has not helped to fix this. Tag used: on highway=pedestrian + vehicle:conditional= yes @ (permit). Pertinently this zone is public. Seen whole city ZTL centres being tagged private. Though motor_vehicle:conditional would be better as cycling is tolerated at moderated/pedonal speed. How to get that green line go away?

Contact the developers of that tool.

OT\ Not sure but think OSM Inspector where this is flagged and GraphHopper are one and the same. But, ORSM which with GraphHopper are both route testers on the OSM website does not find a route either but to put the gearbox in reverse and tour around town, by 2 different routes at that.

GraphHopper, which is actually by far the quicker one


I don’t think this is on-topic in this thread, please start a new one for your problem.

I opened a Proposal for this tagging on the wiki: