How to handle different cycleway:right values on same road segment (forward vs backward)?

Hi there!

So I’m looking at the OSM data for where I live (Los Angeles County, United States), and I’m finding lots of opportunities to improve the metadata about lanes of travel / turn lanes / cycleways. One thing I’m trying to figure out how to handle are cases where the cycleway:right tag needs different values depending on whether the road segment direction is forward or backward.

To give a concrete example. Let’s say I have a forward road segment with a cycleway:right = lane, and at the end of that segment is an intersection. About 100 ft (~30m) from the intersection that cycleway:right becomes a shared_lane since it’s both a bicycle lane and a right turn lane. How do I make it so that the backward representation of the same segment doesn’t also set the cycleway:right = shared_lane, since in that direction it’s not shared but is instead a dedicated bicycle lane?

It’s almost like I want to have a cycleway:forward:right tag that I can set to shared_lane and a cycleway:backward:right tag that I want to keep as lane.

Am I missing some way to handle this?


Cycleway infrastructure on the right side of the road, referring to the way direction.

Either I misunderstood your question, or maybe you misunderstood what right means in this case.

A bit like with oneways… Not exactly intuitive, but it works.

Edit : sorry for the hasty reply. Welcome here and have fun mapping! :slight_smile:

1 Like

Hi Tim,
welcome to the “forum”.

I have to admit that I do not fully understand you question. Maybe the OSM way id or even a image would help.
Or is it only a misunderstanding of the meaning of Forward & backward, left & right - OpenStreetMap Wiki? Note that both left/right and backward/forward depend on the direction of the way. E.g. on a two-way road with different bicycle lanes on each side you would use cycleway:left and cycleway:right with the appropriate value.

1 Like

Ah, so I think now I understand. So the metadata is limited in that there is not a way today to represent a righthand drive two lane road, where bicycle lanes are in the center of the road. You would need to split the road into individual oneway segments, and then define cycleway:left for that segment.

I hadn’t considered that aspect of it, so it wasn’t clear to me what the tags meant relative to the segment itself.

There probably is a way but we haven’t really understood what you’re trying to do. A picture (e.g. from Mapillary) would really help.

In countries where people drive on the right, cycleway:right basically describes the cycling situation for people travelling in the “forward” direction, and cycleway:left describes the cycling situation for people travelling in the “backward” direction. They basically tell routers how well cyclists travelling in that direction are protected, but not really where the lanes physically are. (An exception to this is when people use cycleway:right=lane, cycleway:right:oneway=no for a two-way cycle lane on the right hand side. This does tell you which side the lane is on when looking in the “forward” direction).

To explicitly tag in more detail how many lanes there are, who can use them and where they can go if they’re in that lane, you can add access:lanes (and its variations such as bicycle:lanes) and turn:lanes.

If a lane is shared by bicycles and cars but cars may only turn right, then use turn:lanes for where cars can go depending on which lane they are in and turn:bicycle:lanes for where bicycles can go.

Though if your two-way road isn’t mapped as two separate one-way OSM highways, but as a single highway, you’ll probably need turn:lanes:forward, turn:bicycle:lanes:forward and/or backward unless the situation is the same in both directions.

A lot of different situations are also covered here:


not in general, note countries driving on left side. Also, there could be oneway road with cycleway lanes on each side, which are also oneway.

1 Like

True. I was simplifying a little because I know the question was about a road in the US. I’ll edit the post.

We’re all good now. I missed that the sides (left/right) were relative to the segment’s forward direction, not each direction of travel within the segment.

Also, that makes sense. So you control the parameters of the cycleway on each side independently, and then use additional tags to specify occupancy limitations. :+1: