Cycleway/New Mapping Scheme
Preface: A personal remark
When I came to this project in spring 2007 I've been quite confused about the way to map cycleways. First I started to collect all available information and added some notes to make up my mind at User:Kumakyoo/Fahrrad2. But unfortunately I had to few experience with OSM at that time and feeling uncomfortable almost made me leave the project completely in autumn 2007 (but luckily I got a csx60 at that time and wantet to get some maps for it).
Meanwhile I had a long time to think about cycleways in OSM and in the last weeks on the german mailinglist a longer discussion about cycleways took place, which helped too making up my mind on how I would like to map cycleways. This page gives a summary on my thoughts. --Kumakyoo 21:16, 25 March 2008 (UTC)
Separate ways instead of cycleway=*
The most important fact that I noticed is, that the cycleway=*-tag leads to all this confusion. Thus I propose to get rid of cycleway=* and replace it with separate ways. There are some good reasons for doing this:
- With the cycleway=*-tag it's impossible to cover properties of cycleways like surface, width, oneway and so on. It's simply silly to propose additional tags for that, like cycleway=lane_with_surface_paved_width_1m_oneway. Instead highway=cycleway, surface=paved, width=1, oneway=true looks much better.
- With the cycleway=*-tag it's allready difficult to add information, on which side of the road the cycleway is. For routing software this might be crucial. Also: turning-information at crossings will be much easier given (there are currently experiments with relations done about turning-infos).
From, what I see, the main reason, why cycleway=* has been invented, was, that cycleways next to roads quite often look odd on maps, because they are almost covered by the oversized road and thus people like to omit them, with separate ways, they would be rendered.
But this is not necessarily true: We've got other means to tell the rendering software, that a cycleway is next to a road and might be omited. Having made up my mind, I'd like to use relations for that: I propose a relation of type parallel_ways with all members having the role member.1 (First I thought to use different roles, but when trying to get concrete I just came up with role=cycleway, role=road, role=tramway, role=..., all being information, that is allready present in the tags of the members, and thus not only superfluous, but also (if used improperly) misleading, doing the same mistake as with the cycleway=*-tag once again.)
Having got this far, there is only one thing about the cycleway=* that remains to be handled: A oneway road, where you are allowed to cycle the opposite way. I think, this can be done with bicycle=opposite.
There remain two related artefacts that I still miss, namely two types of cycleways, that I don't know how to render properly yet:
- In Germany we do have ways, that are for cycleways as well as pedestrians (some other countries do have this too). Most people tag them as highway=cycleway,foot=yes, some as highway=footway,bicycle=yes, but actually it's a type of way on its own. I proposed highway=cycleandfootway and I still think, this should be used (A sitenote: mapnik might render this as alternating blue and red dots.)
- Again in Germany, we do have cycleroads. This are roads (e.g. residential roads), that are mainly for the use of cycles, but quite often cars are allowed at slow pace (but faster than in living streets). Yet some people map them as highway=residential, bicycle=yes; but this makes no sense, because in residential roads bicycles are almost always allowed.2 Tagging them as highway=cycleway, motorcar=yes looks more appropriate, but unfortunately leads to maps looking strange, and users might be missleaded, thinking, that this is a normal cycleway. Thus I propose highway=cycleroad.
A reallife example
The following is example is taken from the Sundgauallee in Freiburg (slightly changed to make it fit in one picture):
The two green ways are the tram, on both sides there is a secondary road (two lanes each side), and next to them there are two cycleways, the top one having some oddities: First it's departing a little bit from the road and getting back there, second on the right side, it's twoway, on the left it's only oneway.
And this is, how to map it:
With the ways getting the following tags:
- a) highway=cycleway, width=1.5, surface=paved, oneway=yes
- b) highway=secondary, lanes=2, oneway=yes
- c) railway=tram
- d) highway=secondary, lanes=2, oneway=yes
- e) highway=cycleway, width=2.5, surface=paved, oneway=no (just to make sure)
- f) highway=cycleway, width=1.5, surface=paved, oneway=yes
And a relation of type parallel_ways with all six ways as members (role=member).
1 If you've got a better idea on how to name this, you are wellcome!
2 As a site note: I think that highway=residential is also odd; leisure=residential is suited much better, making highway=residential just an other name to highway=unclassified.