Skip to content

Commit cf71131

Browse files
committed
allow where access=no and bicycles are allowed
1 parent 60a4cd2 commit cf71131

1 file changed

Lines changed: 56 additions & 7 deletions

File tree

brokenspoke_analyzer/scripts/sql/features/functional_class.sql

Lines changed: 56 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,14 @@ WHERE
2424
'primary',
2525
'living_street'
2626
)
27-
AND (osm.access IS NULL OR osm.access NOT IN ('no', 'private'));
27+
AND (
28+
osm.access IS NULL
29+
OR (
30+
osm.access = 'no'
31+
AND osm.bicycle IN ('yes', 'permissive', 'designated')
32+
)
33+
OR osm.access NOT IN ('no', 'private')
34+
);
2835

2936
UPDATE neighborhood_ways
3037
SET functional_class = 'track'
@@ -33,15 +40,29 @@ WHERE
3340
neighborhood_ways.osm_id = osm.osm_id
3441
AND osm.highway = 'track'
3542
AND osm.tracktype = 'grade1'
36-
AND (osm.access IS NULL OR osm.access NOT IN ('no', 'private'));
43+
AND (
44+
osm.access IS NULL
45+
OR (
46+
osm.access = 'no'
47+
AND osm.bicycle IN ('yes', 'permissive', 'designated')
48+
)
49+
OR osm.access NOT IN ('no', 'private')
50+
);
3751

3852
UPDATE neighborhood_ways
3953
SET functional_class = 'path'
4054
FROM neighborhood_osm_full_line AS osm
4155
WHERE
4256
neighborhood_ways.osm_id = osm.osm_id
4357
AND osm.highway IN ('cycleway', 'path')
44-
AND (osm.access IS NULL OR osm.access NOT IN ('no', 'private'));
58+
AND (
59+
osm.access IS NULL
60+
OR (
61+
osm.access = 'no'
62+
AND osm.bicycle IN ('yes', 'permissive', 'designated')
63+
)
64+
OR osm.access NOT IN ('no', 'private')
65+
);
4566

4667
UPDATE neighborhood_ways
4768
SET
@@ -52,7 +73,14 @@ WHERE
5273
neighborhood_ways.osm_id = osm.osm_id
5374
AND osm.highway = 'footway'
5475
AND osm.footway IN ('crossing', 'traffic_island')
55-
AND (osm.access IS NULL OR osm.access NOT IN ('no', 'private'));
76+
AND (
77+
osm.access IS NULL
78+
OR (
79+
osm.access = 'no'
80+
AND osm.bicycle IN ('yes', 'permissive', 'designated')
81+
)
82+
OR osm.access NOT IN ('no', 'private')
83+
);
5684

5785
UPDATE neighborhood_ways
5886
SET functional_class = 'path'
@@ -61,7 +89,14 @@ WHERE
6189
neighborhood_ways.osm_id = osm.osm_id
6290
AND osm.highway = 'footway'
6391
AND osm.bicycle IN ('yes', 'permissive', 'designated')
64-
AND (osm.access IS NULL OR osm.access NOT IN ('no', 'private'))
92+
AND (
93+
osm.access IS NULL
94+
OR (
95+
osm.access = 'no'
96+
AND osm.bicycle IN ('yes', 'permissive', 'designated')
97+
)
98+
OR osm.access NOT IN ('no', 'private')
99+
)
65100
AND COALESCE(width_ft, 0) >= 8;
66101

67102
UPDATE neighborhood_ways
@@ -71,7 +106,14 @@ WHERE
71106
neighborhood_ways.osm_id = osm.osm_id
72107
AND osm.highway = 'service'
73108
AND osm.bicycle IN ('yes', 'permissive', 'designated')
74-
AND (osm.access IS NULL OR osm.access NOT IN ('no', 'private'));
109+
AND (
110+
osm.access IS NULL
111+
OR (
112+
osm.access = 'no'
113+
AND osm.bicycle IN ('yes', 'permissive', 'designated')
114+
)
115+
OR osm.access NOT IN ('no', 'private')
116+
);
75117

76118
UPDATE neighborhood_ways
77119
SET functional_class = 'living_street'
@@ -80,7 +122,14 @@ WHERE
80122
neighborhood_ways.osm_id = osm.osm_id
81123
AND osm.highway = 'pedestrian'
82124
AND osm.bicycle IN ('yes', 'permissive', 'designated')
83-
AND (osm.access IS NULL OR osm.access NOT IN ('no', 'private'));
125+
AND (
126+
osm.access IS NULL
127+
OR (
128+
osm.access = 'no'
129+
AND osm.bicycle IN ('yes', 'permissive', 'designated')
130+
)
131+
OR osm.access NOT IN ('no', 'private')
132+
);
84133

85134
-- remove stuff that we don't want to route over
86135
DELETE FROM neighborhood_ways

0 commit comments

Comments
 (0)