|Feature : Sidewalks|
|Sidewalks (also footways, footpaths or pavements) are provided beside the carriageway of a highway for use by pedestrians and sometimes also cyclists.|
highway=footway + footway=sidewalk/crossing
A sidewalk (or pavement) is that part of a highway set aside for the exclusive use of pedestrians and sometimes cyclists too. A sidewalk may be separated from the carriageway (or roadway) only by road markings (but see below), a kerb (or curb), a road verge, or alternatively may be at some distance from the road (but still associated with it). It also may be separated from the road by some form of barrier, for example bushes or a line of trees. A road may have a sidewalk on only one side of the carriageway, on both sides or have no sidewalks at all. The inclusion of sidewalk information can help tremendously in providing effective pedestrian routing.
In the UK, the legal term for a pavement or a sidewalk is footway. However, the term footway is used within OSM for paths in a broader sense, and the term pavement which, in the UK is often used as an alternative, is used in the US for the surface of the carriageway (which there, incidentally is known as roadway.) So because footway and pavement, the British English terms, are prone to confusion, the North American English term sidewalk gets used here, even though British English is the preferred language for OSM tagging and wiki.
How to map
There are two schemes to map sidewalks. It is advised to reach out to local community prior to engaging in extensive (re-)mapping in a different method than used in a given region.
|Consideration||Tag on highway||Separate footway|
|Resembles aerial imagery||no||yes|
|Precise coordinates and contours||no||yes|
|Directions with street names||yes||if the name is added to the footway, which produces multiple geolocation results; or using relations|
|Directions with pedestrian crossings||insufficient at intersections without crossings on some sides, generally sufficient elsewhere||yes|
|Crossing streets at any point||always (possibly undesirable depending on local laws)||never (possibly desirable depending on local laws)|
|Detailed accessibility tagging||insufficient in complex spaces, generally sufficient elsewhere||yes|
|Easy to map in a mobile editor||yes||no|
|Easy to map in a desktop editor||yes||yes, but more work|
|Rendered on most maps||no (may be desirable, as the map is clearer)||yes (may be desirable, as the map has more details|
Sidewalk as separate way
Currently approved (not to be confused with deprecating other approaches) method that works as a refinement of footway tag (showing a 5% margin according to taginfo) is to map each sidewalk as a separate way. This method consists of drawing a new footway where there are sidewalks on the ground and adding the highway=footway + footway=sidewalk tags onto it. In addition, the associated street/highway should also be tagged with sidewalk=separate.
Note that footway=sidewalk and footway=crossing may appear not only on highway=footway but also on highway=path and highway=construction. Additionally, footway=sidewalk can appear on highway=steps.
This is a hint for renderers to use special handling of sidewalks if supported. In addition, use footway=crossing for places where the footway crosses a street and place a node at the position of the kerb/curb and tag with kerb=* and its type, which provides useful information for wheelchair navigation. For more detailed explanation see footway=* page.
This method allows for a more spatially accurate representation of the pedestrian environment. In addition, it allows a more straightforward use of barrier=*, tactile_paving=*, kerb=*, and surface=*, and it is possible to indicate that a sidewalk goes over a bridge while the associated street goes over a culvert. The method produces a visible result in existing routing engines and renderers, as they will usually treat it the same manner as footways that are not associated with a road, unlike the sidewalk=* key that is rarely displayed on maps.
A drawback of this approach is that acquiring a name of the associated street in an automated way is challenging. Some mappers therefore add name=* or street:name=* tags copying the name of the street to separately mapped sidewalks. In addition there are more complex proposals of Relation:associatedStreet and Relation:street that allows assigning names to sidewalks. There is no consensus on whether this is necessary, and regional customs differ.
Crossing only on explicitly marked crossings may be sometimes desirable, examples including wheelchair users, countries where pedestrians may not cross roads at any location legally, people who anyway prefer cross roads at explicit crossings. In some countries by law any residential road intersection contains pedestrian crossing even if not marked by a street sign or road markings. Sometimes people would prefer to allow crossing smaller roads at any point along the road where it is legal to do so. If you wanted to build a router that allows that then you would need more sophisticated processing.
If the sidewalk meanders instead of maintaining a consistent distance from the roadway, recording the curves can be significant for calculating an accurate travel time for pedestrians; however, if the sidewalk is only represented by tags on the roadway, the roadway would need to be split into very small increments. Instead, consider mapping the sidewalk as a separate way, to avoid making the roadway unmaintainably complex.
Sidewalk as refinement to a highway
This method consists of adding a sidewalk=* property onto sections of an existing road to indicate, where it has sidewalks.
Supported values for the key are sidewalk=both/left/right/no (
none gets used synonymously to
no). Designations of
right are relative to the direction of the way. Properties of the sidewalk can be added as sub-tags on the street, for example: sidewalk:left:width=3 m, sidewalk:left:kerb=raised, sidewalk:right:bicycle=yes, sidewalk:both:surface=paving_stones.
For a number of users, crossings and their properties are of just as much importance as the sidewalks themselves: A highway=crossing node is to be added to the line representing the road, where there is one.
As this method is geared towards places, where sidewalks mostly are attached with merely a kerb, it does not aim at providing detailed geometric information. There is no rendering in the standard openstreetmap view for data contributed that way either. Still, the contribution helps pedestrian routers in determining the suitability of where they are sending users. Not the least, because this method also allows to indicate the absence of sidewalks on streets, on which they are usually taken for granted; This alone makes up most of its raw usage in the data.
Most eminently, this method provides for nicely narrated directions from routing programs, as the name of the street can be easily spelled out in the itinerary. Furthermore, free crossing of streets anywhere can be easily implemented, a function that is desirable by many. This method also lends itself favourably for tagging quests in craft mapping apps.
On the other hand, things can get messy e.g. at complicated crossings, where sometimes separate footways have to be introduced to manage the complexity. In 2017 missing OSM Carto rendering of sidewalk tags was reported as an issue in their source code repository but the effort went nowhere. Nevertheless, mapping sidewalks with a sidewalk=* tag is a popular long-standing and de-facto practice with good editor support and a number of data consumers make use of it.
Where there are sidewalks, or where there are none, the presence and width of a road verge (berm, curb strip, tree lawn, etc.) can be tagged as verge=* and verge:width=*, respectively. Verges play into the larger subject of mapping pedestrian infrastructure, as in many legislations people are to walk there, if sidewalks are missing. Same holds for shoulder=*, especially in areas, where they are present on not just motorways, and actually available to pedestrian traffic.
As a pedestrian lane on the road
There were various discussions and attempts to define "surfaces designated for movement of pedestrians, which are separated from carriageway only by a line of paint (and possibly vertical sign)". There does not seem to be clear preferred consensus on how to map them.
Here are several ways (sorted by most popular on top) how people are mapping those as properties of an existing road (e.g. highway=residential):
- sidewalk:right=lane - analogous to how cycleway lanes are marked with cycleway:right=lane
- sidewalk:right=yes + sidewalk:right:kerb=no - to indicate there is surface for pedestrians, but without kerb separating it from carriageway
- footway:right=lane - Most often used as a property of separately mapped highway=footway, which is problematic since one shouldn't use separate OSM ways for lanes which are not physically separated. But there is small number of cases where footway=* is mapped as a property of the road like highway=residential - that is however also problematic, because it fails documented Key:footway requirement that it should only be used as a refinement of highway=footway.
- sidewalk=no + lanes=1 + vehicle:lanes=yes|no + foot:lanes=no|designated + oneway:lanes=yes|no - no "sidewalk", but left lane is for vehicles, and right lane is for foot traffic (sometimes yes is used instead of designated). Warning: :lanes extension is documented as supporting bicycles, but not foot traffic ("covers all kinds of lanes for all kind of vehicles and is not restricted to motorized traffic"), so it is problematic. Also note that lanes=* counts only motor vehicle traffic (so no cycleways nor pedestrian lanes). Thus e.g. one motor vehicle lane + two pedestrian lanes + one cycleway lane should still be counted as lanes=1 and not as lanes=4 !
- lanes=1 + lanes:forward=1 + lanes:foot:backward=1 - less complex variant of the above, only count the foot lanes, not their exact positions. See warning from previous point too!
- pedestrian_lane=* - according to the (inactive) proposal - in the same way as sidewalks are marked as attributes of a polyvalent highway
- shoulder=right + foot=use_sidepath (or +foot=designated) + sidewalk=no - some are of opinion that it is a walkable shoulder, and not a sidewalk, as sidewalk in their region is term to be used exclusively when it is separated from carriageway by physical barrier like a kerb or a treeline. (Note:taginfo can not count that, and even this overpass is just an estimate giving 16 ways that might possibly be that tagging)
- foot:right=designated|lane - as an access right of a polyvalent highway, with documented value designated (or undocumented value lane). Value of yes should be avoided, although it seems to also be sometimes used, because it is much less clear - it only indicates that pedestrian is legally allowed by law to walk on the street (perhaps sharing the lane with cars), and not that there is designated lane for pedestrians.
Some people might even use some combination of those tags ("dual/double tagging").
Cycleway and footway on sidewalk
In some cases sidewalk is also a cycleway. In such situations following methods are used
- tagging it highway=path + bicycle=designated + foot=designated + segregated=* + footway=sidewalk
- for segregated cycleway/footway some people map them separately - part for pedestrian as highway=footway and part for cyclists as highway=cycleway
- cycleway:left=track/cycleway:right=track/cycleway:both=track/cycleway=track + sidewalk=* if mapped as a property
- tagging it highway=cycleway + foot=designated + cycleway=sidepath
Permanently unusable sidewalks
While it was found that there is no perfect way to tag such situations (where sidewalk was technically built, but is unusable at all times) most popular compromise that emerged was to tag it as:
- highway=residential + disused:sidewalk=both + note=sidewalk is not usable for pedestrians as it is 24/7 full of illegally parked cars.
- Some advantages it has to alternatives are:
- It is clearly marked that there exist physically separate surface on both sides of the road (via sidewalk=both part of the disused:sidewalk=both)
- It is clearly marked that that surface is currently totally unusable for pedestrian traffic (via disused:=* Lifecycle prefix), but that is may become usable in the future (e.g. if municipality adds bollards to stop cars from illegally parking)
- note=* indicates in human-readable popular format a warning to editors and other users why exactly it is unusable, to prevent users re-tagging it incorrectly
- most routers will likely take absence of sidewalk=* as an indication that it is unknown whether pedestrian may be safely routed there, therefore preferring other ways with sidewalk=yes instead. Advanced routers might even detect disused:sidewalk=both and actively avoid routing pedestrians there.
- Some users may additionally include sidewalk=no to that list in order to make sure all routers avoid it actively, but see below that this has some opposition. In some cases, mappers might also additionally add e.g. parking:both=no to indicate lack of parking lanes, and/or parking:note=* to indicate it is illegally being used for parking).
Some of the other discussed ways to tag that situation, which were mentioned in discussion are listed at Talk:Sidewalks#Permanently unusable sidewalks
Temporarily unusable sidewalks
- if they are unusable because they're being (re)constructed, and it is expected it will take a longer time, you may want to retag them with highway=construction + construction=footway + opening_date=* + check_date=* + note=*.
- For situations where sidewalk is only sometimes (un)available, see Conditional restrictions. E.g. a footway which is forbidden/closed during a night might be tagged with highway=footway + access:conditional=no @ (20:00-07:00) + note=*
In some regions, one of these tagging schemes is clearly more popular than other. In such case it is strongly preferable to continue mapping using established method. For example, in Warsaw, a large part of sidewalks are mapped using separate way scheme, without copying road names. Changing this would require massive amount of work and would be unlikely to be considered as a good idea by local mappers. In a place where the majority sidewalks is mapped using tags on roads, one should not start mapping footways as a separate ways without consultation with a local community.
In the early days of OpenStreetMap, there was no specific method to map sidewalks. Actually, there was no method to map ways for pedestrian use at all. This latter deficiency got remedied by popular usage of the highway=footway tag. Its wiki article dates back to January 2008. There was still no method to specifically map sidewalks then, though footways sometimes got used to this effect, especially, where they were physically distinct features on ground.
Beginning some time in 2008, people started annotating streets with sidewalk=* tags, especially so, where sidewalks were perceived to be physically indistinct features on ground, thereby following the "One feature, one OSM element" good practice principle. Again by popular usage, this "refinement of the highway" approach became a first method, to specifically have that information in the openstreetmap database.
Continued extensive mapping of separate footways alongside of roads and streets, in 2011 prompted the "refinement of the footway" approach, by annotating such ways with a footway=sidewalk key. Although conceptually quite different, from the point of view of the objective, this tool made both methods informationally roughly equivalent, in that the presence of sidewalks on ground was clearly indicated, so it got approved by community vote. Historically it became known as the "separate way" approach of mapping sidewalks, after the practice it set out to heal.
Popularity of each scheme vastly depends on location, with each schema clearly dominating in some regions. For example, tagging as road property is clearly dominating in Britain and Western Europe, while mapping as separate way is clearly dominating in Poland, Eastern Europe and the US.
Comparing popularity of mapping with sidewalk=* and as a separate way with raw usage count such as taginfo is not helpful for multiple reasons.
Comparing usage count often works for comparing popularity of tag schemes, for example for shops. But for sidewalks it is not really working, as:
- the same sidewalk/road may be mapped as 1km long element (counted once) or split every 50 meters (counted 20 times) (raw usage overestimates usage in areas with detailed mapping, that often use sidewalks as a separate ways)
- Separately mapped sidewalks may have no footway=sidewalk tag, undercounting their use
- Streets with two separately mapped footway=sidewalk count twice, while sidewalk=both is counted only once, underestimating sidewalk=* use
- sidewalk=no is used also in places mapping sidewalks as separate ways (should not be included in comparisons)
- sidewalk=separate is not always used (places mapping sidewalks as separate ways are often missing it)
- footway=crossing would not be mapped as a separate object in mapping a sidewalk as a road attribute (should not be included in comparison)
Overall, due to all those distortions, all what raw usage count analysis can do is to confirm that both methods are actively used.
Below some pictures meant as an aid in determining what makes a footway a "sidewalk"; i.e. part of a street, vs. an independent feature.
|Ref||Sidewalk||Delimited From Its Road By …|
|1||a floor marking (but see possible controversy)|
|2||a different paving / valley gutter|
|3||a row of trees|
|4||some kinds of barriers|
|5||a narrow green strip / verge|
|6||a wider green strip, structurally motivated|
Below are some pictures of roads that may be classified differently from country to country.
For further information see discussion.
|Ref||Sidewalk? Side Road?||Separated From The Road By ...|
- OpenStreetBrowser has a fairly complete overlay covering pedestrian pathways including sidewalks: https://openstreetbrowser.org/#categories=footways
- A few MapCSS stylesheets are available for the JOSM editor, such as
- "Useful Maps" features rendering of sidewalk=* (limited to IE and GB)
- OpenStreetMap detailed overlays generates a road overlay with lanes, cycleways, parking, and sidewalks rendered at higher zooms (16+). A slippy map version is available online.
- AB Street - uses sidewalk attributes when constructing the base for traffic simulations out of OSM data.
- OSM2World - renders sidewalks on streets found in .osm files.
- The fork of the OpenStreetMap Carto map style https://github.com/imagico/osm-carto-alternative-colors shows sidewalks in its renderings.
- "Improving sidewalks globally in OpenStreetMap", MapBox Blog posting by Tim Channell, 27 October 2015
- Road Layout Design CD 127 Cross-sections and headrooms and Road Planning and Design Manual, Chapter 7: Cross Section, two resources about engineering backgrounds
- Proposed features/sidewalk schema
- Guidelines for pedestrian navigation
- Bicycle - similar concepts for cycleways
- OpenSidewalks - project to map sidewalks, crosswalks at finer granularity to help improve user experience for disabled users via an OSM-OpenSidewalks standard, led by the Taskar Center for Accessible Technology (TCAT) at the University of Washington
- ↑ https://github.com/gravitystorm/openstreetmap-carto/issues/2568
- ↑ 2.0 2.1 Hungerburg (23 January 2021). “Sidewalks by length”.
- ↑ Hungerburg (25 January 2021). “Sidewalks by popularity”.
- ↑ https://wiki.openstreetmap.org/wiki/DE_talk:Map_Features#Gehwege_an_der_Stra.C3.9Fe.3F
- ↑ https://wiki.openstreetmap.org/wiki/Proposed_features/Sidewalk_as_separate_way#Rationale
- ↑ https://www.youtube.com/watch?v=DHecYP_b3os