diff --git a/layers/park/mapping.yaml b/layers/park/mapping.yaml index 746803c..4a95569 100644 --- a/layers/park/mapping.yaml +++ b/layers/park/mapping.yaml @@ -101,3 +101,4 @@ tables: boundary: - national_park - protected_area + - aboriginal_lands diff --git a/layers/park/mapping_diagram.png b/layers/park/mapping_diagram.png index 72d2edb..45c2c19 100644 Binary files a/layers/park/mapping_diagram.png and b/layers/park/mapping_diagram.png differ diff --git a/layers/park/park.sql b/layers/park/park.sql index 1d8f5b3..bf2f07d 100644 --- a/layers/park/park.sql +++ b/layers/park/park.sql @@ -26,11 +26,12 @@ SELECT osm_id, FROM ( SELECT osm_id, geometry, - COALESCE( - LOWER(REPLACE(NULLIF(protection_title, ''), ' ', '_')), - NULLIF(boundary, ''), - NULLIF(leisure, '') - ) AS class, + CASE WHEN boundary='aboriginal_lands' THEN 'aboriginal_lands' + ELSE COALESCE( + LOWER(REPLACE(NULLIF(protection_title, ''), ' ', '_')), + NULLIF(boundary, ''), + NULLIF(leisure, '') + ) END AS class, name, name_en, name_de, @@ -45,7 +46,7 @@ FROM ( NULL AS name_de, NULL AS tags, NULL AS leisure, - NULL AS boundary, + CASE WHEN boundary='aboriginal_lands' THEN boundary END AS boundary, NULL AS protection_title FROM osm_park_polygon_dissolve_z4 WHERE zoom_level = 4 diff --git a/layers/park/park.yaml b/layers/park/park.yaml index b1789f1..f617e95 100644 --- a/layers/park/park.yaml +++ b/layers/park/park.yaml @@ -17,6 +17,7 @@ layer: `nature_reserve` is the class of `protection_title=Nature Reserve` and `leisure=nature_reserve`. The class for other [`protection_title`](http://wiki.openstreetmap.org/wiki/key:protection_title) values is similarly assigned. + The class for `boundary=aboriginal_lands` is `aboriginal_lands`. name: The OSM [`name`](http://wiki.openstreetmap.org/wiki/Key:name) value of the park (point features only). name_en: English name `name:en` if available, otherwise `name` (point features only). name_de: German name `name:de` if available, otherwise `name` or `name:en` (point features only). diff --git a/layers/park/update_park_polygon.sql b/layers/park/update_park_polygon.sql index 3e9a242..f4d5bde 100644 --- a/layers/park/update_park_polygon.sql +++ b/layers/park/update_park_polygon.sql @@ -24,14 +24,16 @@ DROP MATERIALIZED VIEW IF EXISTS osm_park_polygon_dissolve_z4 CASCADE; CREATE MATERIALIZED VIEW osm_park_polygon_dissolve_z4 AS ( SELECT min(osm_id) AS osm_id, - ST_Union(geometry) AS geometry + ST_Union(geometry) AS geometry, + boundary FROM ( SELECT ST_ClusterDBSCAN(geometry, 0, 1) OVER() AS cluster, osm_id, - geometry + geometry, + boundary FROM osm_park_polygon_gen_z4 ) park_cluster - GROUP BY cluster + GROUP BY boundary, cluster ); CREATE UNIQUE INDEX IF NOT EXISTS osm_park_polygon_dissolve_idx ON osm_park_polygon_dissolve_z4 (osm_id);