Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Step 1:
- CREATE TABLE bollard_step_1 AS
- SELECT p.osm_id, p.way AS p_way, w.id, w.highway, w.name, w.way AS w_way
- FROM planet_osm_point AS p
- INNER JOIN (SELECT id, l1.highway, l1.way, l1.name, unnest(nodes) AS n
- FROM planet_osm_ways w1
- INNER JOIN planet_osm_line l1
- ON w1.id = l1.osm_id AND
- highway IS NOT NULL) AS w
- ON p.osm_id = w.n
- WHERE barrier = 'bollard';
- Step 2:
- CREATE TABLE bollard_step_2 AS
- SELECT osm_id, p_way, id, highway, name,
- (SELECT nodes[1] = osm_id OR nodes[array_length(nodes,1)] = osm_id
- FROM planet_osm_ways
- WHERE id = b1.id) AS merker
- FROM bollard_step_1 AS b1 ORDER BY osm_id;
- Step 3:
- CREATE TABLE bollard_step_3a AS
- SELECT b2.osm_id, p_way FROM bollard_step_2 b2
- GROUP BY b2.osm_id,b2.p_way
- HAVING COUNT(*) > 1 AND
- (SELECT COUNT(*) FROM bollard_step_2
- WHERE (highway='residential' OR highway='living_street' OR
- highway='primary' OR highway='secondary' OR
- highway='tertiary' OR highway='unclassified') AND
- osm_id = b2.osm_id AND
- merker = 't' ) > 1
- AND (SELECT COUNT(DISTINCT name) FROM bollard_step_2
- WHERE (highway='residential' OR highway='living_street' OR
- highway='primary' OR highway='secondary' OR
- highway='tertiary' OR highway='unclassified') AND
- osm_id = b2.osm_id AND
- merker = 't') > 1
- ORDER BY osm_id;
- CREATE TABLE bollard_step_3b AS
- SELECT b2.osm_id, p_way FROM bollard_step_2 b2
- GROUP BY b2.osm_id,b2.p_way
- HAVING COUNT(*) > 1 AND
- (SELECT COUNT(*) FROM bollard_step_2
- WHERE (highway='residential' OR highway='living_street' OR
- highway='primary' OR highway='secondary' OR
- highway='tertiary' OR highway='unclassified') AND
- osm_id = b2.osm_id AND
- merker = 'f' ) > 0
- ORDER BY osm_id;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement