From 1c2ce970fd796a6fd1fa53205b381592102802d7 Mon Sep 17 00:00:00 2001 From: jirik Date: Thu, 9 Nov 2017 10:31:37 +0100 Subject: [PATCH] Distinguish type of information point (POI) --- layers/poi/layer.sql | 13 +++++++++---- layers/poi/mapping.yaml | 6 ++++++ layers/poi/poi.yaml | 3 ++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/layers/poi/layer.sql b/layers/poi/layer.sql index 3f86f98d..d34c104c 100644 --- a/layers/poi/layer.sql +++ b/layers/poi/layer.sql @@ -5,10 +5,15 @@ CREATE OR REPLACE FUNCTION layer_poi(bbox geometry, zoom_level integer, pixel_width numeric) RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, class text, subclass text, "rank" int) AS $$ SELECT osm_id, geometry, NULLIF(name, '') AS name, - 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, subclass, + 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, + CASE + WHEN subclass = 'information' + THEN NULLIF(information, '') + ELSE subclass + END AS subclass, row_number() OVER ( PARTITION BY LabelGrid(geometry, 100 * pixel_width) ORDER BY CASE WHEN name = '' THEN 2000 ELSE poi_class_rank(poi_class(subclass, mapping_key)) END ASC diff --git a/layers/poi/mapping.yaml b/layers/poi/mapping.yaml index 56db5f09..dd00a397 100644 --- a/layers/poi/mapping.yaml +++ b/layers/poi/mapping.yaml @@ -330,6 +330,9 @@ tables: - name: funicular key: funicular type: string + - name: information + key: information + type: string mapping: aerialway: *poi_mapping_aerialway amenity: *poi_mapping_amenity @@ -374,6 +377,9 @@ tables: - name: funicular key: funicular type: string + - name: information + key: information + type: string mapping: aerialway: *poi_mapping_aerialway amenity: *poi_mapping_amenity diff --git a/layers/poi/poi.yaml b/layers/poi/poi.yaml index a8c0db9d..26556796 100644 --- a/layers/poi/poi.yaml +++ b/layers/poi/poi.yaml @@ -23,7 +23,8 @@ layer: [`railway`](http://wiki.openstreetmap.org/wiki/Key:railway), [`station`](http://wiki.openstreetmap.org/wiki/Key:station), [`sport`](http://wiki.openstreetmap.org/wiki/Key:sport), - [`tourism`](http://wiki.openstreetmap.org/wiki/Key:tourism) + [`tourism`](http://wiki.openstreetmap.org/wiki/Key:tourism), + [`information`](http://wiki.openstreetmap.org/wiki/Key:information) or [`shop`](http://wiki.openstreetmap.org/wiki/Key:shop) tag. Use this to do more precise styling. rank: |