cyclosm / cyclosm-cartocss-style

Cycle oriented CartoCSS style.

Home Page:https://www.cyclosm.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tags for Cycle Lanes on Dual Carriageway

RichardStallard opened this issue · comments

The cycleway=lane tag should work for a dual-carriageway road where the cycle lane is on the left side of the carriageway, i.e. in the normal travel direction for Australia. However, it causes cycle lanes to be displayed on both sides of the carriageway resulting in display of 4 cycle lanes for a dual-carriageway road.

Examining a dual-carriageway road where the cycle lanes do display correctly (Grant St, Cottesloe), indicates that the cycleway:left=lane tag has been used.
See OpenStreetMap 1 - compare Grant St to nearby Curtin Ave.

According to Tag:cycleway=lane - OpenStreetMap Wiki 1 and Key:cycleway:left - OpenStreetMap Wiki the simpler cycleway=lane tag should work where the cycle lane is on the side of the road corresponding to normal traffic direction.

Potlatch 3 (Windows) editor doesn’t display cycle lanes even in OpenCycleMap style which makes it difficult to see the results of the tags. Adding a cycle lane to a 1-way road in Potlach creates the cycleway=lane tag so manual editing would be required to change to the cycleway:left tag.

Please note that I am talking about a perfectly normal cycle lane on the left side of a dual-carriageway - not contraflow or anything unusual.

This would require having regional renderings, which I don't believe is currently done. Of course, that would open the door to rendering things like country specific default access restrictions and the like.

According to the Wiki:

cycleway=lane is used to tag two-way streets ... or one-way streets where there is a lane operating in the direction of main traffic flow.

so, a cycle lane on a one-way street (which includes one carriageway of a dual-carriageway road) should be rendered appropriately according to the direction of main traffic flow - but this is impossible unless the rendering process understands which is the driving side - see https://wiki.openstreetmap.org/wiki/Key:driving_side

Suggestions:

  1. The Wiki should be updated to include the limitations of current rendering.

  2. Potlatch 3 (and other editors) should be updated to automatically add :left and :right tags for cycle lanes depending on the countries' driving_side - otherwise this has to be manually added each time a cycle lane is created.

I am against both suggestions.
The wiki is ok as it is. When there is only one possible way of travel on a road (for all traffic) then the only cycle lane is on the driving side of that lane.
Take this road for example: https://www.openstreetmap.org/way/6408906 If I open it in JOSM (I use an existing plugin to show lanes, max speeds etc) it is very clear that cycleway=lane renders a single lane on the right side of the road (as is common in the Netherlands).

NKW

Cycle OSM shows 2 lanes:

NKW2

And JOSM does it right (on the left hand side) in the UK as well:
https://www.openstreetmap.org/way/1067941588

UK

As JOSM can cope with oneway=yes and cycleway=lane that means the data is correct and the other renderers are doing something wrong.

A little while back i opened up an issue for iD for a similar issue (it currently also interprets cycleway=* as cycleways on both sides and ignores cycleway:both=*): openstreetmap/iD#9212

I am against both suggestions. The wiki is ok as it is. When there is only one possible way of travel on a road (for all traffic) then the only cycle lane is on the driving side of that lane. Take this road for example: https://www.openstreetmap.org/way/6408906 If I open it in JOSM (I use an existing plugin to show lanes, max speeds etc) it is very clear that cycleway=lane renders a single lane on the right side of the road (as is common in the Netherlands).

NKW

Cycle OSM shows 2 lanes:

NKW2

And JOSM does it right (on the left hand side) in the UK as well: https://www.openstreetmap.org/way/1067941588

UK

As JOSM can cope with oneway=yes and cycleway=lane that means the data is correct and the other renderers are doing something wrong.

I agree. The problem is with the rendering.

I'd gladly make a pull request but unfortunately it doesn't appear that any have been reviewed in the past year I'm hesitant to spend time on it.

This was already discussed in #188

How would you detect the driving side ?

As already discussed in this issue, even though the information might be present somewhere in the OSM database, this is far from being easily usable in a render such as CyclOSM. Moreover, CyclOSM being a worldwide render, we cannot have any preference between left and right hand traffic (therefore, when we do not know where the cycleway actually, we render it on both sides of the road).

driving_side should be added to the highway object to be useful for render. This is a nonsense from an OSM database perspective (huge replication of information) and is (obviously) not done at the moment.

Instead, driving_side is most often used on a relation (typically the relation describing a country). Using this information in CyclOSM would be possible but would mean intersecting ways and country relations to propagate the driving_side information onto the ways. This is quite a lot of efforts when the cycleway=lane for one-way traffic roads has discrepancies between regional wiki pages and different uses (in practice) around the globe.