# Lane tagging comparison

Please note that Alternative F has been approved.

## Example 1

Proposed_features/Turn_Lanes Alternative A Alternative B
lanes=3
lanes:turnleft = 1
lanes:layout = l, s, s+r
lanes=l, s, s+r
Alternative C Alternative D Alternative E
lanes:layout:turnleft=ynn
lanes:layout:straight=nyy
lanes:layout:turnright=nny
lane_group=l,s,s+r
lanes=turn_lane|through_lane|through_lane
lanes:connection=left|straight|straight;right
Alternative F
lanes=3
turn:lanes=left|through|through;right

## Example 2

This is a british road, left-hand traffic. Assuming ways are directed from bottom to top.

Proposed_features/Turn_Lanes Alternative A
Top:
lanes=7
lanes:forward=4
lanes:turnright:forward=2
lanes:through:forward=3

Bottom:
lanes=6
lanes:forward=3
lanes:psv:forward=1
lanes:psv:backward=1
lanes:psv:location:backward=right
Top:
lanes:layout = l+s, s, s+r, r | s, s

Bottom:
lanes:layout = bus, s, s | bus, s
Alternative B Alternative C
Top:
lanes=c.l+s,s,s+r,r#N.N,C<kerb>p
lane_matching:backward=.1, .2, .3, .4+5

Bottom:
lanes=p<kerb>c|b+t|n,n|B+T|N,N,C<kerb>p
lane_matching=, .1, .2+3, .2+3, .3+4

Top:

lanes:layout:turnleft=ynnn|nn
lanes:layout:straight=yyyn|yy
lanes:layout:turnright=nnyy|nn

Transition as point:

lanes:layout:merge=xvv|xi
• 1.x ... Bus lane from bottom ends
• 2.v ... lane 2 from bottom splits
• 3.v ... lane 3 from bottom splits
• 4.x ... lane 4 from top ends
• (here starting Bus lane is not covered)
• 5.i ... lane 5 from top continues

Bottom:

lanes:layout:bus=ynn|yn
lanes:layout:straight=nyy|ny

lanes:layout:direction=fff|bb
Alternative D (lane_group) Alternative E
Top:
lane_group=l+s,s,s+r,r#,#-n,-n

(match tag not needed, un-ambiguous situation)

Bottom:
lane_group=bus:n,n,n#,#-bus:n,-n,-n
lane_group:match=*,*,+,*,*,*

Not quite sure about the details, they are only estimated for demonstration purpose. The photo is not good enough for a 100% tagging.

Top:
lanes=footway|cycle_lane|through_lane|through_lane|through_lane|turn_lane|through_lane|through_lane|footway
lanes:direction=both|forward|forward|forward|forward|forward|backward|backward|both
lanes:separation=curbs|dashed_line|dashed_line|dashed_line|dashed_line|strip|none|curbs
lanes:3:connection=straight;left
lanes:4:connection=straight
lanes:5:connection=straight;right
lanes:6:connection=right

Other connections for the intersection can not be defined, not shown in the photo.

Bottom:
lanes=footway|unknown|through_lane|through_lane|bus_lane|through_lane|through_lane|cycle_lane|footway
lanes:direction=both|forward|forward|forward|backward|backward|backward|backward|both
lanes:separation=curbs|solid_line|dashed_line|solid_line|solid_line|dashed_line|dashed_line|curbs
lanes:1:connection=straight:1;straight:2
lanes:2:connection=straight:3;straight:4
lanes:3:connection=straight:3;straight:4
lanes:4:connection=straight:5;straight:6
lanes:5:connection=straight:7
lanes:6:connection=straight:7
lanes:7:connection=straight:8
lanes:8:connection=straight:9
lanes:9:connection=straight:9
Alternative F

Top:

lanes=7
lanes:forward=4
turn:lanes:forward=left;through|through|right;through|right

Bottom:

lanes=6
lanes:forward=3
access:lanes:forward=no|yes|yes ("yes" is not necessary - see below)
bus:lanes:forward=yes||
access:lanes:backward=||no
bus:lanes:backward=||yes

## Example 3

[1] (photo coming soon)

Way left to right.

Proposed_features/Turn_Lanes Alternative A Alternative B
lanes=3
lanes:forward=2
lanes:turnright:forward=1

surface or other details cannot be mapped
lanes:layout = s | s, r
lanes:surface = asphalt, asphalt, cobblestone
separator = blocked_lane
lanes=N#s,r<kerb>p
lanes:surface = asphalt, asphalt, cobblestone, asphalt
Alternative C Alternative D (lane_group) Alternative E
lanes:layout:straight=y|yn
lanes:layout:turnright=n|ny
lanes:layout:surface=asphalt|asphalt,cobblestone

Not sure exactly what is to be mapped here, best guess

lane_group=-n#,#s,r
lane_group:surface=asphalt,asphalt,cobblestone

What exactly shall be mapped here?

Alternative F

(Without a picture this is just a guess!)

lanes=3
lanes:forward=2
turn:lanes:forward=through|right
surface:lanes:forward=|cobblestone  (I assume "asphalt" as default here)

## Example 4

this junction
Say, Way1 is drawn from WSW to junction, Way2 from junction to ENE, Way3 from SSE to junction, Way4 from junction to NNW.

Alternative B
Way1:
lanes=p<kerb>N,N<kerb><asphalt><kerb>l,s,s,r<kerb>p|p+c+C
lane_matching=0.1+2+5 / 1.1+4+5 / 2.1+4 / 3.1+4+5, 0.3+4 / 1.2+3, 3.2, 3.3, 4.2+3, 0.1+2+5 / 1.1+4+5 / 2.1+4 / 3.1+4+5, 0.1+2+5 / 1.1+4+5 / 2.1+4 / 3.1+4+5

Way2:
lanes=p+c+C<kerb>S+R,S,L,L#n,n<kerb>p+c+C
lane_matching:backward=0.1+4 / 1.1+4+5 / 2.1+2+5 / 3.1+4+5, 0.2+3 / 1.2+3, 2.3, 2.4, 0.1+4 / 1.1+4+5 / 2.1+2+5 / 3.1+4+5

Way3:
lanes=<guard_rail>p|c+C<kerb>N,N<kerb><asphalt><kerb>l,l,s,s+r<kerb>p<guard_rail>
lane_matching=0.1+4+5 / 1.1+2+5 / 2.1+4+5 / 3.1+4, 0.1+4+5 / 1.1+2+5 / 2.1+4+5 / 3.1+4, 0.1+2 / 1.3, 1.4, 2.2, 2.3 / 3.1+2, 0.1+4+5 / 1.1+2+5 / 2.1+4+5 / 3.1+4

Way4:
lanes=p+c+C<kerb>P,R,S,S,L<kerb><asphalt><kerb>l,r<kerb>c+C|p
lane_matching:backward=0.1+4+5 / 1.1+4, 2.1+4+5, 3.1+2+5, 0.1+4+5 / 1.1+4, 2.1+4+5, 3.1+2+5, 0.2+3 / 1.2+3, 2.2, 2.3, 3.3+4, 0.1+4+5 / 1.1+4, 2.1+4+5, 3.1+2+5
Alternative D (lane_group)

It is noted that the four ways are dual-carriage ways and therefore should be mapped as separate ways according to standard mapping practice. The cycleways and sidewalks don't interfere with other lanes and can easily be mapped using standard highway=cycleway / cycleway=track/lane and sidewalk=* tags.

Way1a (SW->NE):
lane_group=l,s,s,r  (match tag unnecessary)
Way1b (NE->SW):
lane_group=n,n
Way2a (SW->NE):
lane_group=n,n
Way2b (NE->SW):
lane_group=l,l,s,s+r  (match tag unnecessary)
Way3a (SE->NW):
lane_group=l,l,s,s+r  (match tag unnecessary)
Way3b (NW->SE):
lane_group=l+s,s+r
Way4a (SE->NW):
lane_group=l,s
Way4b (NW->SE):
lane_group=l,s,s,r (match tag unnecessary)
Alternative E

Again not sure about some details (regarding footways and cycleways), so it is partly estimated. Mapping is still incomplete (I ran out of time), but should give an idea about the tagging scheme.

Way1:
lanes=footway|through_lane|through_lane|turn_lane|through_lane|through_lane|turn_lane|footway|cycleway
lanes:direction=both|backward|backward|forward|forward|forward|forward|both|both
lanes:separation=curbs|dashed_line|strip|dashed_line|dashed_line|dashed_line|curbs|continuous_line
lanes:1:connection=straight:1:zebra_crossing;left:10:zebra_crossing;u_turn:10:zebra_crossing
lanes:4:connection=left:7;left:8
lanes:5:connection=straight:7
lanes:6:connection=straight:8
lanes:7:connection=right:4;right:5
lanes:8:connection=straight:10:zebra_crossing;right:1;right:9:zebra_crossing;u_turn:1;zebra_crossing
lanes:8:connection=straight:9;right:2;left:1

Way2:
lanes=footway|cycleway|through_lane|through_lane|turn_lane|turn_lane|through_lane|through_lane|footway|cycleway
lanes:direction=both|both|backward|backward|backward|backward|forward|forward|both|both
lanes:separation=continuous_line|curbs|dashed_line|dashed_line|dashed_line|strip|dashed_line|curbs|continuous_line

Way3:
lanes=footway|cycleway|through_lane|through_lane|turn_lane|turn_lane|through_lane|through_lane|footway
lanes:direction=both|both|backward|backward|forward|forward|forward|forward|both
lanes:separation=continuous_line|curbs|dashed_line|strip|dashed_line|dashed_line|dashed_line|curbs

Way4:
lanes=cycleway|parking_lane|turn_lane|through_lane|through_lane|turn_lane|turn_lane|through_lane|cycleway|footway
lanes:direction=both|backward|backward|backward|backward|backward|forward|forward|both|both
lanes:separation=curbs|dashed_line|dashed_line|dashed_line|dashed_line|strip|dashed_line|curbs|continuous_line
Alternative F

I assumed that the roads are mapped as a single way in each direction. If they would be mapped as separate ways, the :forward/:backward extensions could be omitted. As cycleways run a little differently than the roads, I would tag them separately, although it would be possible to tag them.

Way1:

lanes=6
lanes:forward=4
turn:lanes:forward=left|through|through|right

Way2:

lanes=6
lanes:forward=4
turn:lanes:forward=left|left|through|through;right

Way3:

lanes=6
lanes:forward=4
turn:lanes:forward=left|left|through|through;right
turn:lanes:backward=left;through|through;right

Way4:

lanes=6
lanes:forward=4
turn:lanes:forward=left|through|through|right
turn:lanes:backward=left|through

If you want to tag e.g. way3 with cycleways you could do this as follows (details are guessed!) assuming the osm way runs from south to north:

highway=primary
highway:lanes=footway|cycleway|||||||footway *
direction:lanes=bothways|bothways|backward|backward|forward|forward|forward|forward|bothways
turn:lanes=no|right;through|left;through|left|left|through|through;right|no **

* For readability the following would also be possible

highway:lanes=footway|cycleway|primary|primary|primary|primary|primary|primary|footway

** "no" is optional

## Example 5

A street with a median turn lane.

Alternative F
lanes=3
lanes:bothways=1
reversible:bothways=median

## A visual approach

Please also take note of the ramblings in

User:Cmuelle8/Lanes and complex intersections visual approach

and the discussion there.