diff --git a/layers/landuse/class.sql b/layers/landuse/class.sql new file mode 100644 index 000000000..80d20529a --- /dev/null +++ b/layers/landuse/class.sql @@ -0,0 +1,10 @@ +-- Unify class names that represent the same type of feature +CREATE OR REPLACE FUNCTION landuse_unify(class text) RETURNS text LANGUAGE plpgsql +AS +$$ +BEGIN + RETURN CASE + WHEN class='grave_yard' THEN 'cemetery' + ELSE class END; +END; +$$; diff --git a/layers/landuse/landuse.sql b/layers/landuse/landuse.sql index f37c65b3e..60fe00432 100644 --- a/layers/landuse/landuse.sql +++ b/layers/landuse/landuse.sql @@ -49,14 +49,15 @@ AS $$ SELECT osm_id, geometry, - COALESCE( + landuse_unify( + COALESCE( NULLIF(landuse, ''), NULLIF(amenity, ''), NULLIF(leisure, ''), NULLIF(tourism, ''), NULLIF(place, ''), NULLIF(waterway, '') - ) AS class + )) AS class FROM ( -- etldoc: ne_50m_urban_areas_gen_z4 -> layer_landuse:z4 SELECT osm_id, diff --git a/layers/landuse/landuse.yaml b/layers/landuse/landuse.yaml index 7a6bf740b..201c2f18d 100644 --- a/layers/landuse/landuse.yaml +++ b/layers/landuse/landuse.yaml @@ -45,6 +45,7 @@ layer: geometry_field: geometry query: (SELECT geometry, class FROM layer_landuse(!bbox!, z(!scale_denominator!))) AS t schema: + - ./class.sql - ./landuse.sql datasources: - type: imposm3 diff --git a/layers/landuse/mapping.yaml b/layers/landuse/mapping.yaml index b3b762166..f1222ad64 100644 --- a/layers/landuse/mapping.yaml +++ b/layers/landuse/mapping.yaml @@ -88,6 +88,7 @@ tables: - college - library - hospital + - grave_yard leisure: - stadium - pitch diff --git a/layers/landuse/mapping_diagram.png b/layers/landuse/mapping_diagram.png index b4d6405c4..436fb0748 100644 Binary files a/layers/landuse/mapping_diagram.png and b/layers/landuse/mapping_diagram.png differ