Map editing application that can automate creation of sidewalks?


My town is 95% full of sidewalks that parallel the streets.

However, most of them are missing from OSM.

Are there any tools available where I can select a Road path and automatically create parallel sidewalk paths on one or both sides, without having to hand-draw them? Bonus points if it also optionally creates crosswalks and curb cuts.

1 Like

The Potlatch editor does have this feature to create parallel ways either side of another way, they then need to be tagged & tidied up, but this is relatively quick.

Josm also offers an equivalent feature.

1 Like

These tools can perhaps get you started, but the “tidying up” is far from quick – I would in fact assume that it represents the majority of the work. Notably, placing shared nodes at intersections and drawing all the crossings and connections to the main highway (both marked and informal) is going to take a lot of effort.


You can also just slap a “sidwalk=both|left||right” attribute onto the streets :slight_smile:

As a Bonus, you do not get routing dead-ends, like in the picture shown.


In JOSM you can create parallel ways (don’t know if this is a default function or comes with a plug-in).
But as already mentioned. Tidy up afterwards (and adding nodes on every crossing road) might be more work than just draw side walks manually.

Initially I’d ask myself: do they need to be mapped separately or as part of the road (via the appropriate tags on the road, as @Hungerburg said). There are pros and cons for both variants. Usually, at least here in Germany, we tend to decide depending on if the sidewalk is structurally separated from the road or not, which has an influence on routing sometimes.

Maybe you can check with your local community if this has been addressed before. Important: don’t decide on whether you see nicely drawn ways on whatever map. It’s more important to get the data right (Good practice - OpenStreetMap Wiki) :grinning:

This is not useful unless you are adding crosswalks together. sidewalk=both is standard.
For JOSM’s parallel, you can select all streets surrounding the block to do get all sides. This is helpful in areas as well. But remember to remove tags on it.
JOSM has “create node at intersection”. You still have to select the roads being crossed. Adding crosswalks manually is better in this respect.

Not particularly, I tried this with some random town in the mid-West with PL3 and was quite satisfied with the basic workflow. You need to review data anyway, PL3 copies nodes from the original way so is quite easy to do connections etc.

Note that I personally prefer @Hungerburg’s approach, for exactly the reasons he gives, and I feel the benefits of separately mapped sidewalks have been oversold (I’ve seen little good supporting evidence of these advantages).


You can also just slap a “sidwalk=both|left||right” attribute onto the streets :slight_smile:
As a Bonus, you do not get routing dead-ends, like in the picture shown.

This, however, won’t let the user add the appropriate tags for the sidewalk (surface, smoothness, width, etc.) that you can add to a separate highway=footway way. sidewalk=both|left|right should be used as a temporary tagging.

Regarding the main question I too would suggest JOSM’s “Parallel Mode”.

If sidewalks can be automatically created then they are not worth adding to OSM. Do not add sidewalks just because you like the dotted red lines on the map - only add them if you actually have important information that you want to map e.g. where there is a lowered curb to aid in wheelchair routing or so. Simply generating - or even simply hand-drawing - sidewalks when they add no extra information over a sidewalk tag on the road does not add value.

(In practice it will reduce the quality of turn-by-turn navigation instructions because most routers will not recognize the “footway” to be a sidewalk of a named street and therefore issue instructions like “turn onto unnamed footway” instead of “follow sidewalk along Main Street”.)


This raises and interesting point. Should we be naming separate sidewalks the same as their parent ways as we do for the two sides of a dual carriageway? Of possibly using an associatedStreet relation?

In Germany this is frowned upon, and a sidewalk carrying the same name as the road to which it belongs would be promptly stripped of its name tag by other mappers (the logic being that the sidewalk along “Main Street” is not named “Main Street” - and some people would also mention that it looks shit on the map when the sidewalk carries a label). I think that other regional communities might handle this differently.

1 Like

there is no reason not to add the name to the sidewalks and cycleways, just like we add it to the parts used by cars, and if you don’t do it the data lacks this information, unless you connect the pieces via a relation (street, associated street, an approach that is generally considered failed, also in Germany). It is more consistent (as you mention, it is done for dual carriageways as well)

No? You can always add sidewalk:*:*=, as done on cycleway:*:*= and shoulder:*:*=. Interpretation and application support is another issue.

Spatial location of =kerb as mentioned and other barrier= relative to the entire road is what necessitates drawing separately.

Agree, I do this. Though dual carriageway might not be the best comparison. Last month, there was discussion on frontage road and roadways carrying the same name and address for buildings along them. Slack

Why clutter the street way when you can do a fine job mapping the sidewalk separately? I know you can use sidewalk: tags, but mapping the sidewalk separately give the mapper more freedom

1 Like

This is veering into a general discussion on how to map sidewalks, so I’ll keep it brief: There are unsolved problems with separately mapped sidewalks, especially how to find out which road the sidewalk belongs to. (And I don’t just mean “Main Street”, but which particular section of it.) As a result, going from tags to separate ways is not simply an upgrade.


Hello Everyone, I have presented at SoTM this year a QGIS plugin to automate the drawing of sidewalks for OSM, so here’s a bunch of links:

(I will create a WIki page to organize all of this content!)

Abstract at the proceedings:

Basic Tutorial on usage:

First importing at JOSM (mute video):

Qgis Oficial Plugins repo:

I’m also working on a project to represent sidewalks (one node for each city):

Anyone can contact me as @kauevestena (twitter/instagram/telegram)


By the way, if anyone here would like to continue this general discussion on sidewalks as ways, there’s a separate topic full of insights from around the world:

The nice thing about drawing sidewalk ways by hand, as opposed to automatically, is that you tend to notice near misses, indecision, and other bloopers that you’d otherwise overlook when blanketing a city in more uniform sidewalk ways. Someone looking at OSM data without the benefit of aerial imagery would wrongly conclude that the map is already complete, even though it isn’t upon closer inspection.

When we imported sidewalk ways systematically in San José, California, we initially responded to feedback about the necessity of crossing ways by trying out a tool called Crossify that would come up with candidate crossing geometries based on surrounding sidewalk and road geometries. We’d still review each candidate by hand, but the thinking went that good-guess candidates would streamline that process. This assumes the city builds crosswalks to a consistent standard, so we can tune the algorithm to fit that standard. Unfortunately, we found that our city was just about never consistent about crosswalk placement. I ended up drawing a lot of the crosswalks by hand instead of relying on the generated candidate crossings. But maybe a similar approach would work in a city with a more consistent design process.

Personally, I’m a simpleton who’s pretty satisfied mapping in iD. It comes with some conveniences for mapping pedestrian infrastructure. For example, you can draw a crosswalk across a road without bothering to connect it to the roadway; iD will warn you and offer to add a matching highway=crossing node at the correct location. So if you want to cut down the steps when mapping the sidewalks in a perfect street grid, you could:

  1. Draw some very long parallel sidewalk ways from one end of the neighborhood to the other.
  2. Chop up each way at each curb cut.
  3. Shift-select the short ways spanning the streets and retag them en masse as crosswalks.
  4. Resolve each of the warnings.
  5. Spot-check the sidewalks for discontinuities and end runs around trees and utility boxes.

That said, I do miss the parallel ways operation in Potlatch, which I mainly used to separate divided highways that TIGER represented as single ways. (Thankfully, drawing a separate way in that case is uncontroversial.)

Finally, if all this seems too fussy for you, feel free to use the sidewalk:* tags on the roadways and spend time on the things that you prefer to micromap. That’ll leave an opportunity for someone else to come along who prefers to spend their time hand-crafting sidewalk ways.


Your work at San Jose was simply amazing!!