From d6485e7dd5cebe0ae8b4f3364bdfa3e1383d6950 Mon Sep 17 00:00:00 2001 From: Miel Truyen Date: Mon, 10 Aug 2020 15:45:30 +0200 Subject: [PATCH] Reworked the POI mapping so that a subtype is available. Needed for wind_turbine, but might also prove useful later. --- layers/poi/class.sql | 2 +- layers/poi/layer.sql | 20 +++++++++++++++----- layers/poi/poi.yaml | 5 ++++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/layers/poi/class.sql b/layers/poi/class.sql index 6f87bc6..24e5070 100644 --- a/layers/poi/class.sql +++ b/layers/poi/class.sql @@ -62,7 +62,7 @@ SELECT CASE class $$ LANGUAGE SQL IMMUTABLE PARALLEL SAFE; -CREATE OR REPLACE FUNCTION poi_class(subclass text, mapping_key text) +CREATE OR REPLACE FUNCTION poi_class(subclass text, mapping_key text, subtype text) RETURNS text AS $$ SELECT CASE diff --git a/layers/poi/layer.sql b/layers/poi/layer.sql index 2580012..8e6ce39 100644 --- a/layers/poi/layer.sql +++ b/layers/poi/layer.sql @@ -26,7 +26,21 @@ SELECT osm_id_hash AS osm_id, COALESCE(NULLIF(name_en, ''), name) AS name_en, COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, - poi_class(subclass, mapping_key) AS class, + poi_class( + subclass, + mapping_key, + CASE + WHEN subclass = 'information' + THEN NULLIF(information, '') + WHEN subclass = 'place_of_worship' + THEN NULLIF(religion, '') + WHEN subclass = 'pitch' + THEN NULLIF(sport, '') + WHEN subclass = 'generator' AND mapping_key = 'power' + THEN NULLIF(source, '') + ELSE subclass + END + ) AS class, CASE WHEN subclass = 'information' THEN NULLIF(information, '') @@ -34,10 +48,6 @@ SELECT osm_id_hash AS osm_id, THEN NULLIF(religion, '') WHEN subclass = 'pitch' THEN NULLIF(sport, '') - WHEN power = 'generator' AND source = 'wind' - THEN 'wind_turbine' - WHEN power = 'generator' - THEN NULLIF(source, '') ELSE subclass END AS subclass, agg_stop, diff --git a/layers/poi/poi.yaml b/layers/poi/poi.yaml index 1d5aa76..cd93553 100644 --- a/layers/poi/poi.yaml +++ b/layers/poi/poi.yaml @@ -131,7 +131,10 @@ layer: heliport: subclass: ['helipad'] wind_turbine: - subclass: ['wind'] + __AND__: + subclass: ['generator'] + subtype: ['wind'] + mapping_key: 'aerialway' communications_tower: subclass: ['communications_tower'] water_tower: