diff --git a/layers/aeroway/aeroway.yaml b/layers/aeroway/aeroway.yaml index 66d7ff4..e2f0b36 100644 --- a/layers/aeroway/aeroway.yaml +++ b/layers/aeroway/aeroway.yaml @@ -6,6 +6,7 @@ layer: other airport related polygons can be found in the **aeroway** layer. buffer_size: 4 fields: + ref: The OSM [`ref`](http://wiki.openstreetmap.org/wiki/Key:ref) tag of the runway/taxiway. class: description: | The original value of the [`aeroway`](http://wiki.openstreetmap.org/wiki/Key:aeroway) tag. @@ -18,7 +19,7 @@ layer: - apron datasource: geometry_field: geometry - query: (SELECT geometry, class FROM layer_aeroway(!bbox!, z(!scale_denominator!))) AS t + query: (SELECT geometry, ref, class FROM layer_aeroway(!bbox!, z(!scale_denominator!))) AS t schema: - ./layer.sql datasources: diff --git a/layers/aeroway/layer.sql b/layers/aeroway/layer.sql index ef42b73..9ca030f 100644 --- a/layers/aeroway/layer.sql +++ b/layers/aeroway/layer.sql @@ -2,25 +2,25 @@ -- etldoc: label="layer_aeroway | z11| z12| z13| z14+" ]; CREATE OR REPLACE FUNCTION layer_aeroway(bbox geometry, zoom_level int) -RETURNS TABLE(geometry geometry, class text) AS $$ - SELECT geometry, aeroway AS class FROM ( +RETURNS TABLE(geometry geometry, class text, ref text) AS $$ + SELECT geometry, aeroway AS class, ref FROM ( -- etldoc: osm_aeroway_linestring -> layer_aeroway:z11 -- etldoc: osm_aeroway_linestring -> layer_aeroway:z12 -- etldoc: osm_aeroway_linestring -> layer_aeroway:z13 -- etldoc: osm_aeroway_linestring -> layer_aeroway:z14_ - SELECT geometry, aeroway + SELECT geometry, aeroway, ref FROM osm_aeroway_linestring WHERE zoom_level >= 11 UNION ALL -- etldoc: osm_aeroway_polygon_gen2 -> layer_aeroway:z12 - SELECT geometry, aeroway + SELECT geometry, aeroway, ref FROM osm_aeroway_polygon_gen2 WHERE zoom_level = 12 UNION ALL -- etldoc: osm_aeroway_polygon_gen1 -> layer_aeroway:z13 - SELECT geometry, aeroway + SELECT geometry, aeroway, ref FROM osm_aeroway_polygon_gen1 WHERE zoom_level = 13 UNION ALL -- etldoc: osm_aeroway_polygon -> layer_aeroway:z14_ - SELECT geometry, aeroway + SELECT geometry, aeroway, ref FROM osm_aeroway_polygon WHERE zoom_level >= 14 ) AS zoom_levels WHERE geometry && bbox; diff --git a/layers/aeroway/mapping.yaml b/layers/aeroway/mapping.yaml index 72f0b72..724b1eb 100644 --- a/layers/aeroway/mapping.yaml +++ b/layers/aeroway/mapping.yaml @@ -16,11 +16,18 @@ generalized_tables: source: aeroway_polygon sql_filter: area>power(ZRES12,2) tolerance: ZRES13 + +ref_field: &ref + key: ref + name: ref + type: string + tables: # etldoc: imposm3 -> osm_aeroway_polygon aeroway_polygon: type: polygon fields: + - *ref - name: osm_id type: id - name: geometry @@ -45,6 +52,7 @@ tables: aeroway_linestring: type: linestring fields: + - *ref - name: osm_id type: id - name: geometry