User:Pavvv/Sandbox/Highway v2
The current highway=* key's usage is very inconsistent and confusing. It was based off UK's road classification which quickly caused problems when countries didn't have obvious equivalents for them. Misleading translations have also caused definitions to become further diverged, causing every country to develop its own definition for every category.
On this page you'll see my concept for using new tags for each of the interpretations of values.
Roads
I propose to use highway=road as the tag for all roads regardless of designation, similarly to railway=rail which means the service=* key would also be used a lot.
| Old tag | Importance interpretation (rural and in towns without bypass)[1] | Importance interpretation (in cities without through-traffic) | Functionality interpretation | Official classification interpretation | Parameter interpretation |
|---|---|---|---|---|---|
highway=motorway
|
Generally not used to signify importance. | motorway=yes
|
highway:category:<country code>=*, highway:class:<country code>=*,
|
Use adequate parameter tags such as maxspeed=*,surface=*, smoothness=*, tunnel=*, lanes=*, dual_carriageway=*, etc.
| |
highway=trunk
|
importance=supernational
|
importance=superurban
|
expressway=yes
| ||
highway=primary
|
importance=national
|
Generally not used to signify functionality. | highway:category:<country code>=*, highway:class:<country code>=*
| ||
highway=secondary
|
importance=regional
| ||||
highway=tertiary
|
importance=county
|
importance=urban
| |||
highway=unclassified
|
importance=rural
|
importance=suburban
|
abutters=industrial, etc.
| ||
highway=residential
|
importance=local
|
importance=local
|
abutters=residential
| ||
The following tags are only used based on functionality.
| Old tag | New tag |
|---|---|
highway=motorway_link
|
motorway=ramp
|
highway=trunk_link
|
expressway=ramp, service=ramp or service=slip[2]
|
highway=primary_link
|
service=ramp or service=slip[2]
|
highway=secondary_link
| |
highway=tertiary_link
| |
highway=living_street
|
zone:traffic=<country code>:living_street or living_street=yes
|
highway=service without service=*
|
service=driveway (e.g. at a fuel station), service=pipestem or service=track + tracktype=grade1
|
highway=pedestrian
|
service=pedestrian
|
highway=track
|
service=track
|
highway=bus_guideway
|
service=bus_guideway
|
highway=escape
|
service=escape
|
highway=raceway
|
leisure=raceway or something similar
|
highway=road
|
highway=unknown if unknown whether a path or road, or lone highway=road when the importance is unknown
|
highway=busway
|
service=busway
|
highway=emergency_bay
|
service=emergency_bay
|
Paths
For paths I suggest tagging all of them as highway=path with respective access=* tags. These replacements might seem long which is why I really recommend utilising templates in editors such as iD and JOSM.
| Old tagging | New tagging |
|---|---|
highway=footway
|
highway=path + foot=designated + bicycle=no
|
highway=cycleway
|
highway=path + bicycle=designated + foot=no
|
highway=bridleway
|
highway=path + horse=designated
|
highway=steps
|
highway=path + foot=designated + bicycle=no + steps=yes/<number of steps>
|
highway=corridor
|
highway=path + foot=designated + bicycle=no + indoor=yes
|
highway=path +
|
highway=path + foot:lanes=no|designated + bicycle:lanes=designated|no or old tagging, if the sides are unknown
|
footway=sidewalk
|
path=sidepath
|
cycleway=sidewalk
| |
footway=crossing
|
path=crossing
|
cycleway=crossing
| |
footway=traffic_island
|
path=traffic_island
|
cycleway=traffic_island
| |
footway=link
|
path=link
|
cycleway=link
| |
footway=path
|
path=path[3]
|
cycleway=path
|