From 7e506956311bbb54e4a1817dd4c999dbc6e465bc Mon Sep 17 00:00:00 2001 From: nlehuby Date: Thu, 29 Mar 2018 17:50:19 +0200 Subject: [PATCH] Add layer, level, and indoor tags for poi --- layers/poi/layer.sql | 5 ++++- layers/poi/mapping.yaml | 18 ++++++++++++++++++ layers/poi/poi.yaml | 13 ++++++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/layers/poi/layer.sql b/layers/poi/layer.sql index 3e919e3..5f8547b 100644 --- a/layers/poi/layer.sql +++ b/layers/poi/layer.sql @@ -3,7 +3,7 @@ -- etldoc: label="layer_poi | z12 | z13 | z14+" ] ; 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, agg_stop integer, "rank" int) AS $$ +RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, class text, subclass text, agg_stop integer, layer integer, level integer, indoor integer, "rank" int) AS $$ SELECT osm_id_hash AS 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, @@ -17,6 +17,9 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de ELSE subclass END AS subclass, agg_stop, + NULLIF(layer, 0) AS layer, + "level", + CASE WHEN indoor=TRUE THEN 1 ELSE NULL END as indoor, 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 f8388fc..a587dfa 100644 --- a/layers/poi/mapping.yaml +++ b/layers/poi/mapping.yaml @@ -345,6 +345,15 @@ tables: - name: religion key: religion type: string + - name: level + key: level + type: integer + - name: indoor + key: indoor + type: bool + - name: layer + key: layer + type: integer mapping: aerialway: *poi_mapping_aerialway amenity: *poi_mapping_amenity @@ -398,6 +407,15 @@ tables: - name: religion key: religion type: string + - name: level + key: level + type: integer + - name: indoor + key: indoor + type: bool + - name: layer + key: layer + type: integer mapping: aerialway: *poi_mapping_aerialway amenity: *poi_mapping_amenity diff --git a/layers/poi/poi.yaml b/layers/poi/poi.yaml index f550f3c..b72ea84 100644 --- a/layers/poi/poi.yaml +++ b/layers/poi/poi.yaml @@ -41,12 +41,23 @@ layer: [`uic_ref`](http://wiki.openstreetmap.org/wiki/Key:uic_ref) tag that is not used worldwide. values: [1] + level: + description: | + Original value of [`level`](http://wiki.openstreetmap.org/wiki/Key:level) tag. + layer: + description: | + Original value of [`layer`](http://wiki.openstreetmap.org/wiki/Key:layer) tag. + indoor: + description: | + Original value of [`indoor`](http://wiki.openstreetmap.org/wiki/Key:indoor) tag. + values: + - 1 datasource: geometry_field: geometry key_field: osm_id key_field_as_attribute: no srid: 900913 - query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, subclass, agg_stop, rank FROM layer_poi(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t + query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, subclass, agg_stop, layer, level, indoor, rank FROM layer_poi(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t schema: - ./public_transport_stop_type.sql - ./update_poi_polygon.sql