Lane tagging comparison

From OpenStreetMap Wiki
Jump to navigation Jump to search

Please note that Alternative F has been approved.

Example 1

L S SR.jpg

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

Complexbritish.jpg 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

implicitly with country=GB already defined:

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

HillsideRdCaversham.jpg

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.