Draft:Foundation/Local Chapters/United States/Pedestrian Working Group/Schema
![]() | This schema document is still under active construction - consider other Wiki pages to be more authoritative in cases of conflicting information! |
This is a work-in-progress draft of a full tagging schema for pedestrian infrastructure mapping developed by the Pedestrian Working Group. Questions? Email pedestrian@openstreetmap.us!
A work-in-progress draft of a quick-start guide for pedestrian infrastructure mapping is available here.
Tiers
A tier-based system is used to communicate which features and tags are possible with various resources and necessary for which use cases, as follows, with further details below:
Icon | Name | Description | Use Cases | Required Resources |
---|---|---|---|---|
Bronze | Basic geometry and essential tags | Basic everyday pedestrian navigation | (Older) Low-quality aerial imagery | |
Silver | Detailed geometry and tagging | Accessibility-focused applications | (Somewhat recent) Medium-quality aerial imagery and/or low-quality street-level imagery | |
Gold | Micromapping and advanced tagging | Advanced routers and visualizations | (Recent) High-quality aerial and/or street-level imagery or in-person survey |
If, for example, you want to map pedestrian infrastructure so that it can be used for basic everyday routing and only have low-quality aerial imagery available, you would include only the features and tags marked with a Bronze Tier symbol.
If you have access to high-quality imagery and want to map pedestrian infrastructure so that it can be used by accessibility-focused routers, you would include all features and tags marked with a Bronze Tier symbol or a
Silver Tier symbol.
Bronze
Description: Basic geometry and essential tags are present to form an independent navigable pedestrian network consisting of sidewalks and crossings.
Implementation:
- Sidewalks and crossings are mapped as separate ways.
- Essential information about crossings is tagged, such as whether or not markings and signals are present.
- Sidewalk presence tags on roadways are updated to use sidewalk:side=no/separate.
- no is particularly important because it helps mappers and data consumers understand where it has been confirmed that sidewalks are not present.
- Any existing properties of the sidewalks which were previously mapped on the roadway, such as sidewalk:left:surface=concrete, should be moved from the roadway to the sidewalks.
Silver
Description: Detailed geometry and tagging is present to enable accessibility-focused applications and basic visualizations.
Implementation:
- Sidewalk geometry at intersections is well-represented with ways added where necessary between curbs and sidewalk centerlines
- Detailed information about features is tagged, such as curb types and surface materials.
Gold
Description: Micromapping and highly detailed tagging is present, which enables router customization for various types of mobility-impaired users and for detailed representation of the environment for institutional use.
Implementation:
- area:highway=footway - area representations of pedestrian features are mapped.
- Note: Requires fallback representation of paths of travel as ways at centerlines!
- Highly detailed tags may be present to enable use cases outside of routing for everyday users, such as informing policy-making decisions
- Small features, such as call buttons and pedestrian signal lights may be mapped separately.
Diamond
Description: Tags and mapping methods that are on the line or just outside of the PWG Schema's scope but still recognized. These tags may require specialized tools or expertise to survey or calculate, or are only regionally specific, extremely uncommon, or still in a proposed state and without widespread usage.
Implementation:
Tagging Guidelines
Sidewalks
Tag | Element | ![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|
highway=footway + footway=sidewalk | ![]() |
Indicates a sidewalk location. | |||
surface=* | ![]() |
Required in the silver tier, example values include:
| |||
tactile_paving=* | ![]() |
Is tactile paving present?:
| |||
lit=* | ![]() |
Indicate whether the way is lit, examples include:
| |||
width=* | ![]() |
Specify the width of the sidewalk | |||
incline=* | ![]() |
Incline along the way (for hilly areas), specified as: up or down | Incline along the way (for hilly areas), specified as a value, example: 15% | ||
incline:across=* | ![]() |
Incline across the way | |||
tactile_paving:colour=* | ![]() |
Specify the tactile paving color. |
Crossings
Tag | Element | ![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|
highway=footway + footway=crossing | ![]() |
Indicates a crossing mapped as a way. | |||
highway=crossing | ![]() |
Indicates a crossing mapped as a node. ⛔️ NOTE: The footway=* tag is not used on crossings mapped as nodes. | |||
crossing:markings=* | ![]() ![]() |
Are markings present?:
|
In the silver tier, this tag becomes more specific, ex:
| ||
crossing:signals=* | ![]() ![]() |
Are signals present?:
|
In the diamond tier, this tag becomes more specific, ex:
| ||
tactile_paving=* | ![]() |
Is tactile paving present along the entire way?:
| |||
tactile_paving=* | ![]() |
Is tactile paving present at the curb nodes?:
| |||
surface=* | ![]() ![]() |
Required in the silver tier, example values include:
| |||
crossing:island=* | ![]() ![]() |
Indicate presence: yes or no | |||
button_operated=* | ![]() ![]() |
Indicate button operation: yes or no | |||
traffic_signals:arrow=* | ![]() ![]() |
Indicate presence: yes or no | |||
traffic_signals:vibration=* | ![]() ![]() |
Indicate presence: yes or no | |||
traffic_signals:minimap=* | ![]() ![]() |
Indicate presence: yes or no | |||
traffic_signals:sound=* | ![]() ![]() |
Are acoustic signals present?
|
When there are partial sound signals:
| ||
width=* | ![]() ![]() |
Required in the gold tier. | |||
tactile_paving:colour=* | ![]() ![]() |
Specify the tactile paving color. |
Curbs
Tag | Element | ![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|
barrier=kerb | ![]() |
Indicates a curb location. | |||
kerb=* | ![]() |
Specify the curb type:
| |||
tactile_paving=* | ![]() |
Indicate tactile paving presence: yes or no | |||
kerb:height=* | ![]() |
Specify the (raised) curb height | |||
tactile_paving:colour=* | ![]() |
Specify the tactile paving color. |
Islands
Tag | Element | ![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|
highway=footway + footway=traffic_island | ![]() |
Indicate a traffic island mapped as a way | |||
surface=* | ![]() |
Required in the silver tier, example values include:
| |||
tactile_paving=* | ![]() |
Is tactile paving present?:
| |||
lit=* | ![]() |
Indicate whether the way is lit, examples include:
| |||
width=* | ![]() |
Specify the width of the traffic island | |||
incline=* | ![]() |
Incline along the way (for hilly areas), specified as: up or down | Incline along the way (for hilly areas), specified as a value, example: 15% | ||
incline:across=* | ![]() |
Incline across the way | |||
tactile_paving:colour=* | ![]() |
Specify the tactile paving color. |
Access Aisles
Tag | Element | ![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|
highway=footway + footway=access_aisle | ![]() |
Indicate an access aisle location | |||
access_aisle:markings=* | ![]() |
Specify the presence and type of markings:
| |||
surface=* | ![]() |
Required in the silver tier, example values include:
| |||
tactile_paving=* | ![]() |
Is tactile paving present?:
| |||
lit=* | ![]() |
Indicate whether the way is lit, examples include:
| |||
width=* | ![]() |
Specify the width of the access aisle | |||
incline=* | ![]() |
Incline along the way (for hilly areas), specified as: up or down | Incline along the way (for hilly areas), specified as a value, example: 15% | ||
incline:across=* | ![]() |
Incline across the way | |||
tactile_paving:colour=* | ![]() |
Specify the tactile paving color. |
Roadways
Tag | Element | ![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|
highway=* | ![]() |
Indicate a roadway location | |||
sidewalk:(left|right|both)=* | ![]() |
The standard of the US Pedestrian Working Group (US PWG) deprecates the use of yes to indicate that a street has an associated sidewalk, please use the following instead:
| |||
maxspeed=* | ![]() |
Indicate the highway speed limit |