From OpenStreetMap Wiki
Jump to navigation Jump to search
Proposal status: Abandoned (inactive)
Proposed by: Cbm
Tagging: zone:traffic=*

Draft started: 2009-05-15

This proposal wants to install a tagging-scheme for implicit traffic-laws (not set explicitly by signs). This information is needed, because boundary relations are related to building regulation and not to traffic.

Currently there is no way to find out which ways are in and which are out of town. Because of complex road structures it is impossible to draw a boundary=traffic polygon; i.e., an "out of town" road is in a tunnel under a town.

It should be noticed that there must be a one to one correspondence between the tagged zone names and the zones defined in the official legal documents such as the UK highway code or le code de la route belge


zone:traffic=* is the only tag proposed here.

Tagged entities

It should be used on all public roads (ways and areas).


Values have the format "<ISO 3166-1 alpha-2 code>:<rural|urban|...>"

Values can be set as default. Default is a proposal for a default values system. This proposal can set default values such as maxspeed for areas (countries, states...)

Implied keys and values

Information from the table that used to be here has been moved to separate wiki pages: zone:traffic=DE:urban, zone:traffic=DE:rural, zone:traffic=DE:motorway. See zone:traffic=* for more zones defined after this original proposal.

Take care that these default values don't interfere with the ones mentioned in OSM tags for routing/Maxspeed and in relation:type=defaults relation 8131479.

Zones which does not need tagging

The following table lists examples where the tag zone:traffic=* can be omitted because it is already implied by other tags.

Value Implied by / alternate key Description
DE:motorway / DE:motorwaylike highway=motorway or highway=trunk + zone:traffic=DE:rural + oneway=yes + lanes=2+ motorways and motorway-like roads - In Germany this are special zones which imply maxspeed=none
DE:foot highway=pedestrian pedestrian zone
DE:bicycle bicycle_road=yes bicycle road (always a zone in DE) - Rarely used: cyclestreet=yes
DE:enviromental:2 zone:traffic_emission=DE:2 enviromental protection zone - Alternate key because this is a access-restriction. See wikipedia:de:Umweltplakette!
DE:speed:30 zone:maxspeed=DE:30 or
source:maxspeed=DE:zone:30 or
source:maxspeed=DE:zone + maxspeed=30 or
speed XX zone - in DE this implies: zone:traffic=DE:urban, turning restrictions, traffic-signals, right of way and street layout.
DE:no_waiting zone:parking=DE:no_waiting no waiting zone

Frequently asked questions (FAQ)

After hundreds of mails on various mailing lists discussing this topic, it seems sensible to provide a list of frequently asked questions (and frequently proposed alternatives) for this proposal. This is supposed to be a summary of arguments for this proposal, not yet another place for discussion. Use the talk page or mailing lists for that.

Why don't you use relations for this?

Why don't you use polygons for this?

  • Polygons are two-dimensional. There are situations where bridges or similar three-dimensional structures cause "zones" to vertically overlap, which cannot be represented by polygons.
  • Downloading only a part of the map (e.g. a part of a city) can result in polygons missing from the download, despite ways from inside the polygon being part of the downloaded data.
  • A mapper will often know that a certain way is part of a zone without knowing where the zone boundaries are.
  • Tags on ways are easier to evaluate for applications. Polygons require more advanced programming techniques to reduce performance problems from inclusion tests.
  • it's very incorrect, because only the roads themselves are part of any kind of traffic-zone and not the whole area; e.g. roads in parks or on private property or even tracks.

Why don't you add nodes to ways to mark changes of traffic zone?

  • It's error prone: A single missing node will potentially cause the zone to "leak" all over the map, because you enter the zone, but never reach an exit. Every safeguard against this can only be an estimate.
  • Arguments against polygons (except 3D problem) apply.
  • It is always a good idea to tag traffic_sign=* anyways!

Why don't you explicitly add tags such as maxspeed=50?

  • A traffic zone often bundles a lot of restrictions: not only maxspeeds for various vehicle types, but additional regulations depending on local law. Mapping reality proves that mappers don't add all those tags, they might not even know about all those restrictions. But they are able to identify traffic zones.
  • Using zone:traffic allows to distinguish between explicitly signed restrictions and those that are defaults for the zone. This has several advantages:
    • It becomes trivial to deal with some changes in traffic laws.
    • A mapper re-checking an area knows whether to look for explicit signage.

Why don't you derive defaults from a combination of country borders, city boundaries, lane counts etc.?

  • a lot of that information is polygon-based, so the problems mentioned for polygons apply
  • in at least some countries, administrative boundaries of cities aren't the same as urban traffic zone boundaries, neither are landuse boundaries; therefore, the existing information often isn't the one relevant for zones

See also



Discuss on the talk page, please.