Warning mix of explaination and rant incoming…
Part 1 of 3: It’s not a ‘track’, before you judge see Part 2.
I think “Track” is a bit of a case of England/Euro English and American English being separated by a common language.
Behind track as like railroad track the second most common definition for track is:
“a piece of ground with a special surface for people, cars, etc. to have races or to drive on,” followed by, “(North American English) the sport of running on a track”
The next highest use of the work is… “a rough path or road, usually one that has not been built but that has been made by people walking there” which it’s most common use being (British English).
Yes, I realize that the preferences for OSM are British English but this is a matter where it provides more confusion than clarity.
This is not helped by the fact that when you search for track in OSM iD editor the icon is that of a cyclist with a “racing” helmet and is immediately followed by a person running on a racing track and a horse racing on a racing track.
Then on top of that leisure=track talks about track as something for “running, cycling and other non-motorized racing”
Part 2 of 3: It’s not a lane
No I’m not trying to obtusely contradict myself again I’m just going off what OSM says.
If you look at Key:lanes
The lanes=* key should be used to specify the total number of lanes of a road.
…
And the following lanes should be excluded :
…
- Bicycle lanes. Use the tag cycleway=lane for those.
Note: It also excludes lanes used for parking (no word on if parking is temporary if that counts or not).
Oh but there is an exception…
bicycle lanes only counts for tag lanes=* if the cycleway has a physical separation and it is therefore mapped as a separated OSM way
Bonus: The highway=cycle on the lanes page is immediately followed by a race track with leisure=track + lanes=8 just to cut down on the confusion on Part 1,right?
Part 3 of 3: I think the picture above breaks OSM
Option 1: How this breaks cycleway=lane
How cycleway=lane works today is three ways:
- cycleway=lane - means this a lane along each edge of the road
- cycleway:right=lane - means there is a cycle lane on the right edge of the road
- cycleway:left=lane - means there is a cycle lane on the left edge of the road
The theme here is that cycleway=lane presently must always be on the edge of a road. So a cycle lane between the through lane and right turn lane (if you drive on the right side of the road opposite if your don’t) isn’t something cycleway=lane as presently implemented to handle. Which is ironic because this is the safest way to do a bicycle lane bordering a turn lane and by in large the best practice.
Bonus issue: Because cycleway=lane is not a counted lane in lanes if a bicycle lane crosses other lanes you can’t use Relation:connectivity either to connect it as the lane to it’s equal at an intersection. Which can be problematic if you have an intersection like this: https://www.mapillary.com/app/?pKey=1165243574413401&focus=photo
Which Then a type=connectivity from Way 1065994301 to Way 1065994305 would read connectivity=1:2|2:3|3:1
Option 2: How this breaks the methodology of a matrix-grid-columns whatever you want to call it tagging
In the quoted example provided and based on the example given in Lanes - OpenStreetMap Wiki (Specifically the Crossing with a designated lane for bicycles section) the tagging would look like this…
highway=secondary
oneway=yes
lanes=3
cycleway=lane
cycleway:lanes=none|none|lane|none|lane
bicycle:lanes=no|no|designated|no|designated
vehicle:lanes=yes|yes|no|yes|no
turn:lanes=left;through|through|through
This looks right but if there are lanes=3 and I’m a renderer or router would I expect 5 lanes? Most probably not which means that this method likewise can’t as presently support a bike lane between a through and a turn lane much less anything more exotic.
Heck you can’t even tell how many cycle lanes there are either because cycleway:right=lane + oneway=no implies one lane not two so you can’t even infer there might by more than 3+1 much less five.
Solutions
The best solutions would be for OSM to treat all traffic as traffic and all lanes as lanes, this sound intuitive but the roots of OSM being vehicle in emphasis first has set in deep. Could you imagine OSM being able to capture everything in the entire right-of-way though? Bike lanes, sidewalk, buffers, parking, both inside the curbs and outside? Like the ability to in iD or JSON to edit with a top and side view of the whole right of way? Wouldn’t that be an absolute joy?
More realistically though… cycleway needs a option for a turn lane crossing the bike lane for the merge zone and likewise an option for the bike lane one it’s been crossed to cover the traditional two phases where bike lanes and turn lane crossover one another.