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.
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.
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).
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. https://wiki.openstreetmap.org/wiki/Key:turn:bicycle:lanes
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.
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.