Proposal talk:Lanes ex

From OpenStreetMap Wiki
Jump to navigation Jump to search

This makes a lot of sense! But I think, that we can not replace the lanes-tag, but instead need a new tag and deprecate the old lanes tag. I'm not 100% sure about the Y-values. Maybe they should refer to other (existing) tags? I think this tag can also consolidate other tags, like the tagging cycle-lanes along another road. How (e.g.) could we take this: a cycleway (for both) directions, then a oneway road, grass, and another oneway road? --Imagic 13:02, 2 November 2011 (UTC)

I think it's the easiest way to exchange the lanes tag with the new schema and do not create another tag. In this case we don't know which tag is the more recent.
On the other hand a street needs both cases:
Case A, the street runs for many km as lanes=2 thru the town.
Case B, the street got a R and a L lane (lanes=1#L,R) at the next traffic lights.
--Bürste 14:31, 18 December 2011 (UTC)

One problem I have encountered when using this tagging scheme is that I don't know in which order I have to use the values. Right now I assume, that the first value corresponds to the outer most left lane (now the important part comes) viewed in the direction of the way. In my opinion this is missing from the proposal and should be added. Otherwise it is not clear, what lane the values refer to. --Imagic 17:49, 17 December 2011 (UTC)

Well ... it is in my proposal, but in the green field under Definition.
"Definition: Extends the definition of lanes tags to express the use of every lane. Expressed in the direction of way, L to R."
--Bürste 14:31, 18 December 2011 (UTC)

This doesnt work well. Example: 1#1,R - on which side is the right turning lane? I would suggest the following:

  • The first lane(s) described run always in the direction of the way.
  • The first lane in one direction is always the outermost lane.
  • The lane(s) running in opposite directions are separated by :
  • The # is used to separate x- and y-values

Examples: lanes=1:1 -> Two lanes, one in each direction lanes=R,1#grass#1:R;1 -> In the direction of the way are three lanes: the lane outermost is a, than another lane and than a separated third lane. In the opposite direction run two lanes, the first of them is a right-turn lane. lanes=1#grass#:1:#grass#1 -> Tree lanes. First and third(!) in the direction of the way, second in opposite direction. Yes, I'm aware of the fact that (at least in countries with right-hand traffic) the description of the lanes is in the opposite way as you see them. But that is just because we have right-hand traffic and write from left to right. --Imagic 12:21, 18 December 2011 (UTC)

I don't got your problem, I'm sorry.
The lanes are always L to R in direction of way, I usually swap the direction to the traffic lights where possible.
The lanes are always from the outermost L lane to the outermost R lane.
So your example: 1#1,R means you got one lane in opposite of the direction of way (in osm). # stands for "separates directions - you are not allowed to turn". 1,R defines that you got one normal lane and one right lane but your still allowed to change the lanes, because you used "," to separate the lanes.
1 on the right side is unusual, normally you got F, L or L+F here.

Your Examples:
lanes=1:1
Two lanes, one in each direction and your allowed to turn.
lanes=R,1#grass#1:R;1
A right turn lane, one normal lane without any direction and your allowed to switch lanes here.
Then a separation out of grass and a normal lane, still in opposite direction of the direction of way (in osm).
Then your allowed to turn to this lane from the other direction and a Right turn lane on the LEFT (?) and you may not change to this lane from the normal lane on the right.
This doesn't make any sense to me ... its a very complex case and I don't think it exists.

Your definition:
"The first lane(s) described run always in the direction of the way."
My proposal says "Expressed in the direction of way, L to R."
"The first lane in one direction is always the outermost lane."
Its from the most left Lane to the most right lane, physically seen, then we tag the things we got here from the rights of the country.
"The lane(s) running in opposite directions are separated by"
We got many separations here:
The most common is ":", which means you might turn.
"#" you might not turn.
And "#grass#" means you got a separation out of grass ... and more complex:
"1#grass#1:2" means you got a separation out of grass but still a lane in the same direction ... then two lanes on the other side ... and you might turn here.
"The # is used to separate x- and y-values"
This is just the way it works.
--Bürste 14:56, 18 December 2011 (UTC)
Maybe I'm wrong, but I dont get it completely. Lets take the simplest example lanes=1:1 . In which ::direction do those lanes run? --Imagic 16:38, 18 December 2011 (UTC)

Let's start all over: the lanes tag should describe which kind of lanes are represented by an osm-way. We need to be able to tag the kind (forward, left-turn, etc...), the physical layout as well as the direction of the lanes.

The proposal in the current state describes the lanes from left to right (viewed in the direction of the way). We exactly know the layout of the lanes, but we completely miss the important information of the direction of the lane. In the example lanes=R,F:F we do know the layout of the lanes, but we do not know in which direction the lanes runs. This layout works for right-hand traffic, but cant work for left-hand traffic so in this example it would be obvious that we have right-hand traffic. But what about lanes=F:F? Now we can't even guess in which the lanes run.

My suggestion has a different problem. If you describe first the lanes in the direction of the way starting from the outermost and after a : describe the lanes in the opposite direction you know exactly the direction of each lane, but have no clue at all of the layout. So this also doesn't work.

So here is my next suggestion: describe the lanes according to their physical layout, but start with the lanes running in the direction of the osm-way. For this to work it is necessary to know if we describe from left-to-right or from right-to-left, so I suggest to add at the beginning a character/symbol to give that information and seperate the directions with a ":" or a "|".

Example: lanes=<R,F:F First this tells us, that we describe the lanes from right-to-left, so the outermost right lane runs in the direction of the osm-way, that means we have right-hand traffic. The outermost right lane would be a right-turn lane, followed by a forward lane on the left running in the same direction. The direction of the next lane is opposite to the osm-way and it is allowed to turn (as described by the : character). If the directions would have been seperated by | it would not be allowed to turn.

 |  ^ >
 |  | |
 v  | |


Example: lanes=>L,F:F More or less the same as the last example with the exception that we have now left-hand traffic.

< ^  |
| |  |
| |  v


Example: lanes=<F#grass#F|F,R Again right-hand traffic, starting at the outermost right lane with a forward lane, then a grass separation, than again a forward lane, still in the same direction as the osm-way. The | than separates the directions and it is not allowed to turn and in the opposite direction the innermost lane is a forward lane, followed by a right-turn lane. It is noticeable, that this layout would not be possible with the original proposal.

|| ^g^
|| |r|
|| |a|
|| |s|
<v |s|


This examples should make my point clear. The current proposal is missing the direction of the lanes and my first suggestion is missing the exact layout. By adding the information in which direction the lanes are described, we get both: the directions of the lanes and the exact layout. And this would also be compatible with the current use, because lanes=2 is than clearly "old-style". In the current proposal it could either mean "old-style" or two lanes in the same direction. --Imagic 08:51, 22 December 2011 (UTC)


Using different delimiters to configure lane changing permissions is a nice proposal.

I think lanes should only be applied in the forward direction to prevent ambiguity. When you are not allowed to change lanes I would suggest using the | separator symbol.

It represents a continuous line which you may not cross. I would also prefer the : over ; for when you are allowed to change lanes.

I would also suggest not to use the lanes tag for this directly but a subkey like lanes:layout for example.

--Acheron 19:20, 3 September 2012 (BST)