From af96d7ea7cad4d25c12e025a637a4cf61b34f8d8 Mon Sep 17 00:00:00 2001 From: brainwad Date: Thu, 26 Nov 2020 22:11:46 +0100 Subject: [PATCH 1/7] Render cycleable sidewalks like cycle tracks --- project.mml | 24 ++++++++ roads.mss | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 192 insertions(+) diff --git a/project.mml b/project.mml index f746b74e..1c3607ae 100644 --- a/project.mml +++ b/project.mml @@ -498,9 +498,13 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:left:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' @@ -510,9 +514,13 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:right:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' @@ -675,9 +683,13 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:left:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' @@ -687,9 +699,13 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:right:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' @@ -938,9 +954,13 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:left:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' @@ -950,9 +970,13 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:right:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' diff --git a/roads.mss b/roads.mss index e9f47cd3..0d68a35c 100644 --- a/roads.mss +++ b/roads.mss @@ -778,18 +778,30 @@ // Eventually overload right border for cycleways #roads_high::outline_right[zoom>=11][cycleway_right_render='track'], +#roads_high::outline_right[zoom>=11][cycleway_right_render='sidewalk_designated'], +#roads_high::outline_right[zoom>=11][cycleway_right_render='sidewalk'], #roads_high::outline_right[zoom>=12][cycleway_right_render='lane'], #roads_high::outline_right[zoom>=12][cycleway_right_render='busway'], #tunnel::outline_right[zoom>=11][cycleway_right_render='track'], +#tunnel::outline_right[zoom>=11][cycleway_right_render='sidewalk_designated'], +#tunnel::outline_right[zoom>=11][cycleway_right_render='sidewalk'], #tunnel::outline_right[zoom>=12][cycleway_right_render='lane'], #tunnel::outline_right[zoom>=12][cycleway_right_render='busway'], #bridge::outline_right[zoom>=11][cycleway_right_render='track'], +#bridge::outline_right[zoom>=11][cycleway_right_render='sidewalk_designated'], +#bridge::outline_right[zoom>=11][cycleway_right_render='sidewalk'], #bridge::outline_right[zoom>=12][cycleway_right_render='lane'], #bridge::outline_right[zoom>=12][cycleway_right_render='busway'], { [type='motorway'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -841,6 +853,12 @@ [type='motorway_link'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -887,6 +905,12 @@ [type='primary'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -938,6 +962,12 @@ [type='primary_link'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -984,6 +1014,12 @@ [type='secondary'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -1035,6 +1071,12 @@ [type='secondary_link'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -1081,6 +1123,12 @@ [type='tertiary'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -1127,6 +1175,12 @@ [type='tertiary_link'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -1173,6 +1227,12 @@ [type='unclassified'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -1219,6 +1279,12 @@ [type='residential'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -1265,6 +1331,12 @@ [type='living_street'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -1311,6 +1383,12 @@ [type='pedestrian'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -1357,6 +1435,12 @@ [type='service'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_right_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_right_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_right_render='lane'] { line-dasharray: 6,3; } @@ -1447,18 +1531,30 @@ // Eventually overload right border for cycleways #roads_high::outline_left[zoom>=11][cycleway_left_render='track'], +#roads_high::outline_left[zoom>=11][cycleway_left_render='sidewalk_designated'], +#roads_high::outline_left[zoom>=11][cycleway_left_render='sidewalk'], #roads_high::outline_left[zoom>=12][cycleway_left_render='lane'], #roads_high::outline_left[zoom>=12][cycleway_left_render='busway'], #tunnel::outline_left[zoom>=11][cycleway_left_render='track'], +#tunnel::outline_left[zoom>=11][cycleway_left_render='sidewalk_designated'], +#tunnel::outline_left[zoom>=11][cycleway_left_render='sidewalk'], #tunnel::outline_left[zoom>=12][cycleway_left_render='lane'], #tunnel::outline_left[zoom>=12][cycleway_left_render='busway'], #bridge::outline_left[zoom>=11][cycleway_left_render='track'], +#bridge::outline_left[zoom>=11][cycleway_left_render='sidewalk_designated'], +#bridge::outline_left[zoom>=11][cycleway_left_render='sidewalk'], #bridge::outline_left[zoom>=12][cycleway_left_render='lane'], #bridge::outline_left[zoom>=12][cycleway_left_render='busway'], { [type='motorway'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1510,6 +1606,12 @@ [type='motorway_link'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1556,6 +1658,12 @@ [type='primary'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1607,6 +1715,12 @@ [type='primary_link'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1653,6 +1767,12 @@ [type='secondary'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1704,6 +1824,12 @@ [type='secondary_link'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1750,6 +1876,12 @@ [type='tertiary'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1796,6 +1928,12 @@ [type='tertiary_link'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1842,6 +1980,12 @@ [type='unclassified'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1888,6 +2032,12 @@ [type='residential'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1934,6 +2084,12 @@ [type='living_street'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -1980,6 +2136,12 @@ [type='pedestrian'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } @@ -2026,6 +2188,12 @@ [type='service'] { line-cap: butt; line-color: @cycle_track_case; + [cycleway_left_render='sidewalk_designated'] { + line-color: @mixed-cycle-fill; + } + [cycleway_left_render='sidewalk'] { + line-color: @path-fill; + } [cycleway_left_render='lane'] { line-dasharray: 6,3; } From 25fdc07c4a729a6672804b19cd33919169510c42 Mon Sep 17 00:00:00 2001 From: brainwad Date: Thu, 26 Nov 2020 22:26:50 +0100 Subject: [PATCH 2/7] Prefer rendering cycleway=lane over sidewalk:bicycle=yes sidewalk:bicycle=designated is still preferred over cycleway=lane, because that is probably a decent cycling facility. But a sidewalk:bicycle=yes has no guarantee of quality, even though it is off-road. It is porbably still better than a mere shared lane, however. --- project.mml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/project.mml b/project.mml index 1c3607ae..644bdb5d 100644 --- a/project.mml +++ b/project.mml @@ -684,13 +684,13 @@ Layer: CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:left:bicycle' = 'designated' then 'sidewalk_designated' - WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -700,13 +700,13 @@ Layer: CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:right:bicycle' = 'designated' then 'sidewalk_designated' - WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' From 0d3c508f7a70c0eca0415bb236d2947a87609706 Mon Sep 17 00:00:00 2001 From: brainwad Date: Thu, 26 Nov 2020 22:40:42 +0100 Subject: [PATCH 3/7] Render segregated cycleable sidewalks like cycle tracks --- project.mml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/project.mml b/project.mml index 644bdb5d..6b37a15a 100644 --- a/project.mml +++ b/project.mml @@ -683,11 +683,13 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:left:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'sidewalk:left:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:both:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' @@ -699,11 +701,13 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:right:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'sidewalk:right:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' + WHEN tags->'sidewalk:both:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' From 9cac90a19f79fef0ed270f31abbdb1982006217a Mon Sep 17 00:00:00 2001 From: brainwad Date: Sun, 29 Nov 2020 18:56:14 +0100 Subject: [PATCH 4/7] Remove special rendering for bicycle-designated sidewalks These are not common enough to justify the performance penalty. --- project.mml | 12 -------- roads.mss | 84 ----------------------------------------------------- 2 files changed, 96 deletions(-) diff --git a/project.mml b/project.mml index 6b37a15a..2c8d085d 100644 --- a/project.mml +++ b/project.mml @@ -498,12 +498,10 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:left:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' @@ -514,12 +512,10 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:right:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' @@ -684,13 +680,11 @@ Layer: CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:left:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' - WHEN tags->'sidewalk:left:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' - WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' @@ -702,13 +696,11 @@ Layer: CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:right:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' - WHEN tags->'sidewalk:right:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' - WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' @@ -958,12 +950,10 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:left:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' @@ -974,12 +964,10 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:right:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' = 'designated' then 'sidewalk_designated' WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' diff --git a/roads.mss b/roads.mss index 0d68a35c..10ad2c2a 100644 --- a/roads.mss +++ b/roads.mss @@ -778,17 +778,14 @@ // Eventually overload right border for cycleways #roads_high::outline_right[zoom>=11][cycleway_right_render='track'], -#roads_high::outline_right[zoom>=11][cycleway_right_render='sidewalk_designated'], #roads_high::outline_right[zoom>=11][cycleway_right_render='sidewalk'], #roads_high::outline_right[zoom>=12][cycleway_right_render='lane'], #roads_high::outline_right[zoom>=12][cycleway_right_render='busway'], #tunnel::outline_right[zoom>=11][cycleway_right_render='track'], -#tunnel::outline_right[zoom>=11][cycleway_right_render='sidewalk_designated'], #tunnel::outline_right[zoom>=11][cycleway_right_render='sidewalk'], #tunnel::outline_right[zoom>=12][cycleway_right_render='lane'], #tunnel::outline_right[zoom>=12][cycleway_right_render='busway'], #bridge::outline_right[zoom>=11][cycleway_right_render='track'], -#bridge::outline_right[zoom>=11][cycleway_right_render='sidewalk_designated'], #bridge::outline_right[zoom>=11][cycleway_right_render='sidewalk'], #bridge::outline_right[zoom>=12][cycleway_right_render='lane'], #bridge::outline_right[zoom>=12][cycleway_right_render='busway'], @@ -796,9 +793,6 @@ [type='motorway'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -853,9 +847,6 @@ [type='motorway_link'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -905,9 +896,6 @@ [type='primary'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -962,9 +950,6 @@ [type='primary_link'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1014,9 +999,6 @@ [type='secondary'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1071,9 +1053,6 @@ [type='secondary_link'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1123,9 +1102,6 @@ [type='tertiary'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1175,9 +1151,6 @@ [type='tertiary_link'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1227,9 +1200,6 @@ [type='unclassified'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1279,9 +1249,6 @@ [type='residential'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1331,9 +1298,6 @@ [type='living_street'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1383,9 +1347,6 @@ [type='pedestrian'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1435,9 +1396,6 @@ [type='service'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_right_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_right_render='sidewalk'] { line-color: @path-fill; } @@ -1531,17 +1489,14 @@ // Eventually overload right border for cycleways #roads_high::outline_left[zoom>=11][cycleway_left_render='track'], -#roads_high::outline_left[zoom>=11][cycleway_left_render='sidewalk_designated'], #roads_high::outline_left[zoom>=11][cycleway_left_render='sidewalk'], #roads_high::outline_left[zoom>=12][cycleway_left_render='lane'], #roads_high::outline_left[zoom>=12][cycleway_left_render='busway'], #tunnel::outline_left[zoom>=11][cycleway_left_render='track'], -#tunnel::outline_left[zoom>=11][cycleway_left_render='sidewalk_designated'], #tunnel::outline_left[zoom>=11][cycleway_left_render='sidewalk'], #tunnel::outline_left[zoom>=12][cycleway_left_render='lane'], #tunnel::outline_left[zoom>=12][cycleway_left_render='busway'], #bridge::outline_left[zoom>=11][cycleway_left_render='track'], -#bridge::outline_left[zoom>=11][cycleway_left_render='sidewalk_designated'], #bridge::outline_left[zoom>=11][cycleway_left_render='sidewalk'], #bridge::outline_left[zoom>=12][cycleway_left_render='lane'], #bridge::outline_left[zoom>=12][cycleway_left_render='busway'], @@ -1549,9 +1504,6 @@ [type='motorway'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -1606,9 +1558,6 @@ [type='motorway_link'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -1658,9 +1607,6 @@ [type='primary'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -1715,9 +1661,6 @@ [type='primary_link'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -1767,9 +1710,6 @@ [type='secondary'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -1824,9 +1764,6 @@ [type='secondary_link'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -1876,9 +1813,6 @@ [type='tertiary'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -1928,9 +1862,6 @@ [type='tertiary_link'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -1980,9 +1911,6 @@ [type='unclassified'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -2032,9 +1960,6 @@ [type='residential'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -2084,9 +2009,6 @@ [type='living_street'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -2136,9 +2058,6 @@ [type='pedestrian'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } @@ -2188,9 +2107,6 @@ [type='service'] { line-cap: butt; line-color: @cycle_track_case; - [cycleway_left_render='sidewalk_designated'] { - line-color: @mixed-cycle-fill; - } [cycleway_left_render='sidewalk'] { line-color: @path-fill; } From a31730a32285530ee0def78074a22011acdccc36 Mon Sep 17 00:00:00 2001 From: brainwad Date: Sun, 29 Nov 2020 19:02:32 +0100 Subject: [PATCH 5/7] Fix the cycling border order for tunnel and bridge to match roads_high --- project.mml | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/project.mml b/project.mml index 2c8d085d..09502e10 100644 --- a/project.mml +++ b/project.mml @@ -498,12 +498,14 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:left:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -512,12 +514,14 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:right:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -679,12 +683,12 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:left:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:left:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' @@ -950,12 +954,14 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:left:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -964,12 +970,14 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:right:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' + WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' From 655de63927555a646cf29df471d73653d890fddb Mon Sep 17 00:00:00 2001 From: brainwad Date: Sun, 29 Nov 2020 19:12:19 +0100 Subject: [PATCH 6/7] SQL style fixes --- project.mml | 56 ++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/project.mml b/project.mml index 09502e10..85bb3b9c 100644 --- a/project.mml +++ b/project.mml @@ -498,14 +498,14 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:left:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:left:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:left:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -514,14 +514,14 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:right:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:right:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:right:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -683,14 +683,14 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:left:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:left:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:left:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -699,14 +699,14 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:right:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:right:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:right:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' <> 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -954,14 +954,14 @@ Layer: END AS oneway, CASE WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:left:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:left:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:left:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:left:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -970,14 +970,14 @@ Layer: END AS cycleway_left_render, CASE WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:right:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:right:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:right:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:right:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' - WHEN tags->'sidewalk:both:bicycle' != 'no' and tags->'sidewalk:left:segregated' = 'yes' then 'track' + WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' then 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -1732,7 +1732,7 @@ Layer: 'shop_' || CASE WHEN shop IN ('bicycle', 'bakery', 'beverage', 'convenience', 'convenience;gas', 'gas', 'greengrocer', 'supermarket', 'pastry', 'sports') THEN shop ELSE NULL END, 'amenity_' || CASE WHEN amenity IN ('atm', 'bank', 'bar', 'bench', 'bicycle_rental', 'bicycle_parking', 'bicycle_repair_station', 'biergarten', 'cafe', 'car_wash', 'compressed_air', 'drinking_water', 'fast_food', 'ferry_terminal', 'food_court', 'fountain', 'fuel', 'hospital', 'ice_cream', 'internet_cafe', 'pharmacy', 'place_of_worship', 'police', 'post_office', 'post_box', 'pub', 'public_bath', 'restaurant', 'shelter', 'shower', 'toilets', 'water_point', 'cinema', 'theatre', 'bureau_de_change', 'casino', 'library', 'motorcycle_parking', 'charging_station', 'vending_machine') THEN amenity ELSE NULL END, 'shop_' || CASE WHEN tags->'service:bicycle:retail'='yes' OR tags->'service:bicycle:repair'='yes' OR tags->'service:bicycle:rental'='yes' THEN 'bicycle' ELSE NULL END, - 'emergency_' || CASE WHEN tags->'emergency' IS NOT NULL then tags->'emergency' ELSE NULL END, + 'emergency_' || CASE WHEN tags->'emergency' IS NOT NULL THEN tags->'emergency' ELSE NULL END, 'healthcare_' || CASE WHEN tags->'healthcare' IN ('clinic', 'hospital') THEN tags->'healthcare' ELSE NULL END, 'leisure_' || CASE WHEN leisure='picnic_table' THEN leisure ELSE NULL END, 'man_made_' || CASE WHEN man_made IN ('mast', 'tower', 'water_tower', 'lighthouse', 'windmill', 'cross', 'obelisk', 'communications_tower', 'telescope', 'chimney', 'crane', 'storage_tank', 'silo', 'water_tap', 'monitoring_station') THEN man_made ELSE NULL END, @@ -1869,7 +1869,7 @@ Layer: 'shop_' || CASE WHEN shop IN ('bicycle', 'bakery', 'beverage', 'convenience', 'convenience;gas', 'gas', 'greengrocer', 'supermarket', 'pastry', 'sports') THEN shop ELSE NULL END, 'amenity_' || CASE WHEN amenity IN ('atm', 'bank', 'bar', 'bench', 'bicycle_rental', 'bicycle_parking', 'bicycle_repair_station', 'biergarten', 'cafe', 'car_wash', 'compressed_air', 'drinking_water', 'fast_food', 'ferry_terminal', 'food_court', 'fountain', 'fuel', 'hospital', 'ice_cream', 'internet_cafe', 'pharmacy', 'place_of_worship', 'police', 'post_office', 'post_box', 'pub', 'public_bath', 'restaurant', 'shelter', 'shower', 'toilets', 'water_point', 'cinema', 'theatre', 'bureau_de_change', 'casino', 'library', 'motorcycle_parking', 'charging_station', 'vending_machine') THEN amenity ELSE NULL END, 'shop_' || CASE WHEN tags->'service:bicycle:retail'='yes' OR tags->'service:bicycle:repair'='yes' OR tags->'service:bicycle:rental'='yes' THEN 'bicycle' ELSE NULL END, - 'emergency_' || CASE WHEN tags->'emergency' IS NOT NULL then tags->'emergency' ELSE NULL END, + 'emergency_' || CASE WHEN tags->'emergency' IS NOT NULL THEN tags->'emergency' ELSE NULL END, 'healthcare_' || CASE WHEN tags->'healthcare' IN ('clinic', 'hospital') THEN tags->'healthcare' ELSE NULL END, 'leisure_' || CASE WHEN leisure='picnic_table' THEN leisure ELSE NULL END, 'man_made_' || CASE WHEN man_made IN ('mast', 'tower', 'water_tower', 'lighthouse', 'windmill', 'cross', 'obelisk', 'communications_tower', 'telescope', 'chimney', 'crane', 'storage_tank', 'silo', 'water_tap', 'monitoring_station') THEN man_made ELSE NULL END, @@ -2113,7 +2113,7 @@ Layer: 'shop_' || CASE WHEN shop IN ('bicycle', 'bakery', 'beverage', 'convenience', 'convenience;gas', 'gas', 'greengrocer', 'supermarket', 'pastry', 'sports') THEN shop ELSE NULL END, 'amenity_' || CASE WHEN amenity IN ('atm', 'bank', 'bar', 'bench', 'bicycle_rental', 'bicycle_parking', 'bicycle_repair_station', 'biergarten', 'cafe', 'car_wash', 'compressed_air', 'drinking_water', 'fast_food', 'ferry_terminal', 'food_court', 'fountain', 'fuel', 'hospital', 'ice_cream', 'internet_cafe', 'pharmacy', 'place_of_worship', 'police', 'post_office', 'post_box', 'pub', 'public_bath', 'restaurant', 'shelter', 'shower', 'toilets', 'water_point', 'cinema', 'theatre', 'bureau_de_change', 'casino', 'library', 'motorcycle_parking', 'charging_station', 'vending_machine') THEN amenity ELSE NULL END, 'shop_' || CASE WHEN tags->'service:bicycle:retail'='yes' OR tags->'service:bicycle:repair'='yes' OR tags->'service:bicycle:rental'='yes' THEN 'bicycle' ELSE NULL END, - 'emergency_' || CASE WHEN tags->'emergency' IS NOT NULL then tags->'emergency' ELSE NULL END, + 'emergency_' || CASE WHEN tags->'emergency' IS NOT NULL THEN tags->'emergency' ELSE NULL END, 'healthcare_' || CASE WHEN tags->'healthcare' IN ('clinic', 'hospital') THEN tags->'healthcare' ELSE NULL END, 'leisure_' || CASE WHEN leisure='picnic_table' THEN leisure ELSE NULL END, 'man_made_' || CASE WHEN man_made IN ('mast', 'tower', 'water_tower', 'lighthouse', 'windmill', 'cross', 'obelisk', 'communications_tower', 'telescope', 'chimney', 'crane', 'storage_tank', 'silo', 'water_tap', 'monitoring_station') THEN man_made ELSE NULL END, @@ -2266,7 +2266,7 @@ Layer: 'shop_' || CASE WHEN shop IN ('bicycle', 'bakery', 'beverage', 'convenience', 'convenience;gas', 'gas', 'greengrocer', 'supermarket', 'pastry', 'sports') THEN shop ELSE NULL END, 'amenity_' || CASE WHEN amenity IN ('atm', 'bank', 'bar', 'bench', 'bicycle_rental', 'bicycle_parking', 'bicycle_repair_station', 'biergarten', 'cafe', 'car_wash', 'compressed_air', 'drinking_water', 'fast_food', 'ferry_terminal', 'food_court', 'fountain', 'fuel', 'hospital', 'ice_cream', 'internet_cafe', 'pharmacy', 'place_of_worship', 'police', 'post_office', 'post_box', 'pub', 'public_bath', 'restaurant', 'shelter', 'shower', 'toilets', 'water_point', 'cinema', 'theatre', 'bureau_de_change', 'casino', 'library', 'motorcycle_parking', 'charging_station', 'vending_machine') THEN amenity ELSE NULL END, 'shop_' || CASE WHEN tags->'service:bicycle:retail'='yes' OR tags->'service:bicycle:repair'='yes' OR tags->'service:bicycle:rental'='yes' THEN 'bicycle' ELSE NULL END, - 'emergency_' || CASE WHEN tags->'emergency' IS NOT NULL then tags->'emergency' ELSE NULL END, + 'emergency_' || CASE WHEN tags->'emergency' IS NOT NULL THEN tags->'emergency' ELSE NULL END, 'healthcare_' || CASE WHEN tags->'healthcare' IN ('clinic', 'hospital') THEN tags->'healthcare' ELSE NULL END, 'leisure_' || CASE WHEN leisure='picnic_table' THEN leisure ELSE NULL END, 'man_made_' || CASE WHEN man_made IN ('mast', 'tower', 'water_tower', 'lighthouse', 'windmill', 'cross', 'obelisk', 'communications_tower', 'telescope', 'chimney', 'crane', 'storage_tank', 'silo', 'water_tap', 'monitoring_station') THEN man_made ELSE NULL END, From b26c06b9f995113ad1f8b6df5afc2123c51d89fb Mon Sep 17 00:00:00 2001 From: brainwad Date: Sun, 29 Nov 2020 19:22:15 +0100 Subject: [PATCH 7/7] Fix for bicycle-designated sidewalks --- project.mml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/project.mml b/project.mml index 85bb3b9c..b3391ebe 100644 --- a/project.mml +++ b/project.mml @@ -500,12 +500,12 @@ Layer: WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:left:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:left:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:left:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -516,12 +516,12 @@ Layer: WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:right:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:right:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:right:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -685,12 +685,12 @@ Layer: WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:left:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:left:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:left:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -701,12 +701,12 @@ Layer: WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:right:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:right:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:right:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -956,12 +956,12 @@ Layer: WHEN tags->'cycleway:left' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:left:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:left' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:left:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:left:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:left' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane' @@ -972,12 +972,12 @@ Layer: WHEN tags->'cycleway:right' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:right:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:right' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:right:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:right:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:right' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway:both' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'sidewalk:both:bicycle' != 'no' AND tags->'sidewalk:left:segregated' = 'yes' THEN 'track' WHEN tags->'cycleway:both' IN ('lane', 'opposite_lane') THEN 'lane' - WHEN tags->'sidewalk:both:bicycle' = 'yes' THEN 'sidewalk' + WHEN tags->'sidewalk:both:bicycle' IN ('designated', 'yes') THEN 'sidewalk' WHEN tags->'cycleway:both' IN ('share_busway', 'opposite_share_busway', 'shoulder', 'shared_lane') THEN 'busway' WHEN tags->'cycleway' IN ('track', 'opposite_track') THEN 'track' WHEN tags->'cycleway' IN ('lane', 'opposite_lane') THEN 'lane'