Zh-hans:OSM tags for routing

From OpenStreetMap Wiki
Jump to navigation Jump to search

OpenStreetMap 中哪些 Map_Features 可以用于路径规划?

该页面提供的指导将告诉您哪些 已有、有规律和一致性好的 标签应解读为路径规划以及如何解读他们. 新增的影响路径规划的标签以及其含义也应在此处予以说明.


一条路是单行线,当前仅当: (大小写无关)


  • "oneway"!="no" and
  • "oneway"!="false" and
  • "oneway"!="0"

("oneway"!="no" has precedence over "highway"="motorway")

Roads which are one-way and change direction depending on time (eg: flyover in direction of rush-hour traffic flow) are tagged with oneway=reversible and should probably be treated as no access.


The area=yes tag can be used for tagging a area such as a market square as an area which means that together with highway=residential it can be navigated by car, in any direction, and cutting across from any points. (the highway tag conventionally does not apply to an area)

The use has been approved, and promoted onto Map Features, but clearly this tag will be problematic for routing, especially if developers/tools are not aware of it.


The following tags may contain the name of a street:

  • name=*, "name:<2digit-language-code", int_name, ...
  • ref=*, "nat_ref", "loc_ref", "int_ref"

See: naming

There is also an external xml-webservice that can do searches for you.

Is inside/outside

The following tries to give a definite algorithm for resolving +

  • if a location is inside a given city/country/zip-code +
  • what city/country/zip-code a given location is in +

We are trying to cover all currently approved and used taggings for this and rate them in a deterministic order of importance. So you need not search everything to implement your algorithm.


A way is in a city/suburb/zip-code/... if and only if:

  • a) It is individually tagged as is_in=*.
  • c) area It is not inside such an area but a node tagged as place=* is inside an area with landuse=* with a value other than "farm", "quarry", "forest" or "water" and the way is inside the combination of that polygon and all intersected or "nearby" polygons of this kind (difficult to implement but a good autotetection.).
  • d) node None of these but the nearest point tagged as "place"= is less then XX km away.

For case (d) sensible values are:

  1. is tagged the radius is given by a radius-tag in meters or kilometers.
  2. if not tagged, these are sensible default-values:
Tag Element Radius
place=continent node n/a, continents must have borders
place=country node n/a, countries must have a defined border-polygon
place=state node n/a, states of countries must have a defined border-polygon
place=region node 500 km
place=county node 200 km
place=city node 10 km
place=town node 5 km
place=village node 1 km
place=hamlet node 300 m
place=suburb node 300 m
place=island node n/a, islands must have a defined coastline-polygon



This topic is currently for debate on the OSM-Dev mailing-list.

The current progress is documented in Tagging Country Borders.


Only ways or areas marked with the key highway=* or junction=* are a road that a car, bike or pedestrian can navigate on.

Beware for the values "footway", "pedestrian", "steps", "gate", "stile", "cattle_grid", "viaduct" and limit the usage of "ford", "service"/"services"

Traffic signals

You should limit the expected speed when crossing nodes tagged highway=traffic_signals, highway=stop or barrier=toll_booth as well as incline=*.


The default access-restrictions for each vehicle- and highway-type are documented in /Access-Restrictions.

To compute access restrictions in the presence both of default values and explicit values, see Computing access restrictions.


Restrictions to prohibit certain kinds of turns at intersections are documented in Relation:restriction.

Max speed

The default maximum-speed if not given by maxspeed=* is now documented on on this page.

Routing to postal addresses

See addr:*=* for details on addresses.

Further Links