[Tagging] [OSM-talk] Cycle lanes & cycle tracks - my findings and a proposal

Martin Koppenhoefer dieterdreist at gmail.com
Wed May 23 09:32:54 BST 2012

2012/5/23 Martin Vonwald <imagic.osm at gmail.com>:
> Let's have a look at a street around here: it has two general lanes,
> one cycle lane and two side walks. I should map this with:
> * one way is "main" way
> * two ways for the lanes
> * one way for the cycle lane
> * two ways for the side walk
> * one relation
> So this gives me seven ways and one relation just for one street.

First of all: it is not "just for one street", it is 5 "lanes". If
there are houses on the street, you will get more mays for instance.
And more nodes for housenumbers, telephone booths, post boxes and so
on. Obviously more detail will result in more data.

Secondly I guess this would be the maximum you could do for a simple
street like this (plus maybe some areas ;-) ).
I would not map it like this even when using the proposed area relation.
Suggestion (for the same street), high level of detail (i.e. I would
use this only for special cases, not for the average road without
* one way (highway at the center) like it is now. From your
description there does not seem to be any advantage of mapping the two
lanes explicitly.
* two ways for the sidewalk (if you like, mapped at the outside of the
sidewalk so it can be used to generate easily the area of the street)
* one way for the cycle lane (if you like)
* nodes (or short ways) for the lowered kerbs
* one relation (area) to connect sidewalks and road and kerbs (you
would define the general kerb with tags in the relation and add the
lowered_kerbs geometry as exception to the relation).

So I end up with 4 ways (highway, 2 sidewalks, cyclelane), one
relation (area) and some nodes (lowered kerbs). Of course this is more
complex, but you also get a whole lot more of detail, especially if
there is more stuff to take into account (geometry not perfectly
parallel, barriers which are (partially) between the sidewalk and the
road, ability to map barriers on the sidewalk only, etc.

You will not map every street with this detail I guess, but you could
do it for situations that are complex in the real world. Doing it with
tags instead of dedicated geometry would in most (complex) cases
result in much less readable map data than explicit geometry (IMHO).

> If I
> want to move the "street" I have to move seven ways.

why would you want to move a street that you have surveyed up to this
level of detail? I think this is hypothetical (and btw: it is 6 in
your example).

> If I want to add
> a junction I have to add a node to every way.

Yes, (see above, really not likely that you map a street with 5 ways
in every detail and then you discover that you "forgot" a whole
junction). Of course the junction will be more complex to map compared
to a simple node, but this is also one of the reasons you are doing
it: to get more details how the junction looks like.

> If the connecting road
> is also represented by seven ways I would have to connect... no, I
> don't count now... a lot of ways.

actually you would have to connect only those ways that are
intersecting in reality, not all of them (see above).

> Now I want to add a route relation for a bicycle route. For this I
> have to split the "street".

not at all, you will have the cyclelane where you put the relation to
and you will _not_ have to split the street. This is one of the big
advantages. In the other model you will have to split the street
(cars) also for any change of attributes on any of the ways
(sidewalks, cyclelane, ...), resulting in very fragmented roads (the
more detail you add the more the center road gets fragmented), while
this will be reduced a lot by having dedicated geometry to put the
attributes to where they belong to.

> I have to split all seven ways, even if
> the bicycle route only refers to the bicycle lane. Excuse me, I'll
> stop right here.

I don't understand you here, can you explain this?

> BTW:
>> you will not get the support of who is interested
>> in the details of shape.
> If one would allow to change the width of each part at each node of
> the xway, you could quite nicely cover the shape of many features.

how would you know how to interpolate between two widths? It could be
a sharp corner or a smooth change. (almost) every corner at every
intersection is rounded. Will we split every x-way in y parts at any
of these points? Won't it be very difficult to get the center and
widths right in the case that the change of width is all on one side
of the street surface while the other keeps going straight? (This is
almost always the case btw.).


More information about the Tagging mailing list