diff --git a/layers/aeroway/aeroway.sql b/layers/aeroway/aeroway.sql index ba03912..0c3952a 100644 --- a/layers/aeroway/aeroway.sql +++ b/layers/aeroway/aeroway.sql @@ -12,19 +12,19 @@ AS $$ SELECT geometry, aeroway AS class, ref FROM ( - -- etldoc: osm_aeroway_linestring_gen3 -> layer_aeroway:z10 + -- etldoc: osm_aeroway_linestring_gen_z10 -> layer_aeroway:z10 SELECT geometry, aeroway, ref - FROM osm_aeroway_linestring_gen3 + FROM osm_aeroway_linestring_gen_z10 WHERE zoom_level = 10 UNION ALL - -- etldoc: osm_aeroway_linestring_gen2 -> layer_aeroway:z11 + -- etldoc: osm_aeroway_linestring_gen_z11 -> layer_aeroway:z11 SELECT geometry, aeroway, ref - FROM osm_aeroway_linestring_gen2 + FROM osm_aeroway_linestring_gen_z11 WHERE zoom_level = 11 UNION ALL - -- etldoc: osm_aeroway_linestring_gen1 -> layer_aeroway:z12 + -- etldoc: osm_aeroway_linestring_gen_z12 -> layer_aeroway:z12 SELECT geometry, aeroway, ref - FROM osm_aeroway_linestring_gen1 + FROM osm_aeroway_linestring_gen_z12 WHERE zoom_level = 12 UNION ALL -- etldoc: osm_aeroway_linestring -> layer_aeroway:z13 @@ -33,21 +33,24 @@ FROM ( FROM osm_aeroway_linestring WHERE zoom_level >= 13 UNION ALL - - -- etldoc: osm_aeroway_polygon_gen3 -> layer_aeroway:z10 - -- etldoc: osm_aeroway_polygon_gen3 -> layer_aeroway:z11 + -- etldoc: osm_aeroway_polygon_gen_z10 -> layer_aeroway:z10 SELECT geometry, aeroway, ref - FROM osm_aeroway_polygon_gen3 - WHERE zoom_level BETWEEN 10 AND 11 + FROM osm_aeroway_polygon_gen_z10 + WHERE zoom_level = 10 UNION ALL - -- etldoc: osm_aeroway_polygon_gen2 -> layer_aeroway:z12 + -- etldoc: osm_aeroway_polygon_gen_z11 -> layer_aeroway:z11 SELECT geometry, aeroway, ref - FROM osm_aeroway_polygon_gen2 + FROM osm_aeroway_polygon_gen_z11 + WHERE zoom_level = 11 + UNION ALL + -- etldoc: osm_aeroway_polygon_gen_z12 -> layer_aeroway:z12 + SELECT geometry, aeroway, ref + FROM osm_aeroway_polygon_gen_z12 WHERE zoom_level = 12 UNION ALL - -- etldoc: osm_aeroway_polygon_gen1 -> layer_aeroway:z13 + -- etldoc: osm_aeroway_polygon_gen_z13 -> layer_aeroway:z13 SELECT geometry, aeroway, ref - FROM osm_aeroway_polygon_gen1 + FROM osm_aeroway_polygon_gen_z13 WHERE zoom_level = 13 UNION ALL -- etldoc: osm_aeroway_polygon -> layer_aeroway:z14_ @@ -58,7 +61,7 @@ FROM ( -- etldoc: osm_aeroway_point -> layer_aeroway:z14_ SELECT geometry, aeroway, ref - FROM osm_aeroway_point + FROM osm_aeroway_point WHERE zoom_level >= 14 ) AS zoom_levels WHERE geometry && bbox; diff --git a/layers/aeroway/etl_diagram.png b/layers/aeroway/etl_diagram.png index b66ca9e..de81e54 100644 Binary files a/layers/aeroway/etl_diagram.png and b/layers/aeroway/etl_diagram.png differ diff --git a/layers/aeroway/mapping.yaml b/layers/aeroway/mapping.yaml index c847ffc..6e97819 100644 --- a/layers/aeroway/mapping.yaml +++ b/layers/aeroway/mapping.yaml @@ -1,34 +1,40 @@ generalized_tables: - # etldoc: imposm3 -> osm_aeroway_linestring_gen3 - aeroway_linestring_gen3: - source: aeroway_linestring_gen2 + # etldoc: osm_aeroway_linestring_gen_z11 -> osm_aeroway_linestring_gen_z10 + aeroway_linestring_gen_z10: + source: aeroway_linestring_gen_z11 tolerance: ZRES11 - # etldoc: imposm3 -> osm_aeroway_linestring_gen2 - aeroway_linestring_gen2: - source: aeroway_linestring_gen1 + # etldoc: osm_aeroway_linestring_gen_z12 -> osm_aeroway_linestring_gen_z11 + aeroway_linestring_gen_z11: + source: aeroway_linestring_gen_z12 tolerance: ZRES12 - # etldoc: imposm3 -> osm_aeroway_linestring_gen1 - aeroway_linestring_gen1: + # etldoc: osm_aeroway_linestring -> osm_aeroway_linestring_gen_z12 + aeroway_linestring_gen_z12: source: aeroway_linestring sql_filter: ST_IsValid(geometry) tolerance: ZRES13 - # etldoc: imposm3 -> osm_aeroway_polygon_gen3 - aeroway_polygon_gen3: - source: aeroway_polygon_gen2 + # etldoc: osm_aeroway_polygon_gen_z11 -> osm_aeroway_polygon_gen_z10 + aeroway_polygon_gen_z10: + source: aeroway_polygon_gen_z11 + sql_filter: area>power(ZRES9,2) + tolerance: ZRES10 + + # etldoc: osm_aeroway_polygon_gen_z12 -> osm_aeroway_polygon_gen_z11 + aeroway_polygon_gen_z11: + source: aeroway_polygon_gen_z12 sql_filter: area>power(ZRES10,2) tolerance: ZRES11 - # etldoc: imposm3 -> osm_aeroway_polygon_gen2 - aeroway_polygon_gen2: - source: aeroway_polygon_gen1 + # etldoc: osm_aeroway_polygon_gen_z13 -> osm_aeroway_polygon_gen_z12 + aeroway_polygon_gen_z12: + source: aeroway_polygon_gen_z13 sql_filter: area>power(ZRES11,2) tolerance: ZRES12 - # etldoc: imposm3 -> osm_aeroway_polygon_gen1 - aeroway_polygon_gen1: + # etldoc: osm_aeroway_polygon -> osm_aeroway_polygon_gen_z13 + aeroway_polygon_gen_z13: source: aeroway_polygon sql_filter: area>power(ZRES12,2) AND ST_IsValid(geometry) tolerance: ZRES13 diff --git a/layers/boundary/boundary.sql b/layers/boundary/boundary.sql index ed056ce..a20d8cd 100644 --- a/layers/boundary/boundary.sql +++ b/layers/boundary/boundary.sql @@ -2,236 +2,338 @@ DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen1 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z13 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring -> osm_border_linestring_gen1 --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen1 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen1 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen1 AS +-- etldoc: osm_border_linestring -> osm_border_linestring_gen_z13 +-- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen_z13 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z13 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z13 AS ( -SELECT ST_Simplify(geometry, 10) AS geometry, NULL AS adm0_l, NULL AS adm0_r, admin_level, disputed, maritime +SELECT ST_Simplify(geometry, ZRes(14)) AS geometry, NULL::text AS adm0_l, NULL::text AS adm0_r, admin_level, disputed, maritime FROM osm_border_linestring WHERE admin_level BETWEEN 3 AND 10 UNION ALL -SELECT ST_Simplify(geometry, 10) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +SELECT ST_Simplify(geometry, ZRes(14)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime FROM osm_border_linestring_adm ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen1_idx ON osm_border_linestring_gen1 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z13_idx ON osm_border_linestring_gen_z13 USING gist (geometry); -- This statement can be deleted after the border importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen2 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z12 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring -> osm_border_linestring_gen2 --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen2 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen2 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen2 AS +-- etldoc: osm_border_linestring_gen_z13 -> osm_border_linestring_gen_z12 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z12 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z12 AS ( -SELECT ST_Simplify(geometry, 20) AS geometry, NULL AS adm0_l, NULL AS adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring -WHERE admin_level BETWEEN 3 AND 10 -UNION ALL -SELECT ST_Simplify(geometry, 20) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring_adm +SELECT ST_Simplify(geometry, ZRes(13)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +FROM osm_border_linestring_gen_z13 +WHERE admin_level BETWEEN 2 AND 10 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen2_idx ON osm_border_linestring_gen2 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z12_idx ON osm_border_linestring_gen_z12 USING gist (geometry); -- This statement can be deleted after the border importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen3 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z11 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring -> osm_border_linestring_gen3 --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen3 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen3 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen3 AS +-- etldoc: osm_border_linestring_gen_z12 -> osm_border_linestring_gen_z11 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z11 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z11 AS ( -SELECT ST_Simplify(geometry, 40) AS geometry, NULL AS adm0_l, NULL AS adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring -WHERE admin_level BETWEEN 3 AND 8 -UNION ALL -SELECT ST_Simplify(geometry, 40) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring_adm +SELECT ST_Simplify(geometry, ZRes(12)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +FROM osm_border_linestring_gen_z12 +WHERE admin_level BETWEEN 2 AND 8 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen3_idx ON osm_border_linestring_gen3 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z11_idx ON osm_border_linestring_gen_z11 USING gist (geometry); -- This statement can be deleted after the border importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen4 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z10 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring -> osm_border_linestring_gen4 --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen4 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen4 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen4 AS +-- etldoc: osm_border_linestring_gen_z11 -> osm_border_linestring_gen_z10 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z10 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z10 AS ( -SELECT ST_Simplify(geometry, 80) AS geometry, NULL AS adm0_l, NULL AS adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring -WHERE admin_level BETWEEN 3 AND 6 -UNION ALL -SELECT ST_Simplify(geometry, 80) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring_adm +SELECT ST_Simplify(geometry, ZRes(11)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +FROM osm_border_linestring_gen_z11 +WHERE admin_level BETWEEN 2 AND 6 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen4_idx ON osm_border_linestring_gen4 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z10_idx ON osm_border_linestring_gen_z10 USING gist (geometry); -- This statement can be deleted after the border importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen5 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z9 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring -> osm_border_linestring_gen5 --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen5 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen5 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen5 AS +-- etldoc: osm_border_linestring_gen_z10 -> osm_border_linestring_gen_z9 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z9 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z9 AS ( -SELECT ST_Simplify(geometry, 160) AS geometry, NULL AS adm0_l, NULL AS adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring -WHERE admin_level BETWEEN 3 AND 6 -UNION ALL -SELECT ST_Simplify(geometry, 160) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring_adm +SELECT ST_Simplify(geometry, ZRes(10)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +FROM osm_border_linestring_gen_z10 +WHERE admin_level BETWEEN 2 AND 6 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen5_idx ON osm_border_linestring_gen5 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z9_idx ON osm_border_linestring_gen_z9 USING gist (geometry); -- This statement can be deleted after the border importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen6 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z8 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring -> osm_border_linestring_gen6 --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen6 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen6 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen6 AS +-- etldoc: osm_border_linestring_gen_z9 -> osm_border_linestring_gen_z8 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z8 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z8 AS ( -SELECT ST_Simplify(geometry, 300) AS geometry, NULL AS adm0_l, NULL AS adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring -WHERE admin_level BETWEEN 3 AND 4 -UNION ALL -SELECT ST_Simplify(geometry, 300) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring_adm +SELECT ST_Simplify(geometry, ZRes(9)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +FROM osm_border_linestring_gen_z9 +WHERE admin_level BETWEEN 2 AND 4 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen6_idx ON osm_border_linestring_gen6 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z8_idx ON osm_border_linestring_gen_z8 USING gist (geometry); -- This statement can be deleted after the border importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen7 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z7 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring -> osm_border_linestring_gen7 --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen7 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen7 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen7 AS +-- etldoc: osm_border_linestring_gen_z8 -> osm_border_linestring_gen_z7 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z7 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z7 AS ( -SELECT ST_Simplify(geometry, 600) AS geometry, NULL AS adm0_l, NULL AS adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring -WHERE admin_level BETWEEN 3 AND 4 -UNION ALL -SELECT ST_Simplify(geometry, 600) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring_adm +SELECT ST_Simplify(geometry, ZRes(8)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +FROM osm_border_linestring_gen_z8 +WHERE admin_level BETWEEN 2 AND 4 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen7_idx ON osm_border_linestring_gen7 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z7_idx ON osm_border_linestring_gen_z7 USING gist (geometry); -- This statement can be deleted after the border importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen8 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z6 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring -> osm_border_linestring_gen8 --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen8 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen8 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen8 AS +-- etldoc: osm_border_linestring_gen_z7 -> osm_border_linestring_gen_z6 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z6 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z6 AS ( -SELECT ST_Simplify(geometry, 1200) AS geometry, NULL AS adm0_l, NULL AS adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring -WHERE admin_level BETWEEN 3 AND 4 -UNION ALL -SELECT ST_Simplify(geometry, 1200) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring_adm +SELECT ST_Simplify(geometry, ZRes(7)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +FROM osm_border_linestring_gen_z7 +WHERE admin_level BETWEEN 2 AND 4 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen8_idx ON osm_border_linestring_gen8 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z6_idx ON osm_border_linestring_gen_z6 USING gist (geometry); -- This statement can be deleted after the border importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen9 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z5 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring -> osm_border_linestring_gen9 --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen9 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen9 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen9 AS +-- etldoc: osm_border_linestring_gen_z6 -> osm_border_linestring_gen_z5 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z5 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z5 AS ( -SELECT ST_Simplify(geometry, 2400) AS geometry, NULL AS adm0_l, NULL AS adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring -WHERE admin_level BETWEEN 3 AND 4 -UNION ALL -SELECT ST_Simplify(geometry, 2400) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring_adm +SELECT ST_Simplify(geometry, ZRes(6)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +FROM osm_border_linestring_gen_z6 +WHERE admin_level BETWEEN 2 AND 4 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen9_idx ON osm_border_linestring_gen9 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z5_idx ON osm_border_linestring_gen_z5 USING gist (geometry); -- This statement can be deleted after the border importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_border_linestring_gen10 CASCADE; + DROP TABLE IF EXISTS osm_border_linestring_gen_z4 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_border_linestring_adm -> osm_border_linestring_gen10 -DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen10 CASCADE; -CREATE MATERIALIZED VIEW osm_border_linestring_gen10 AS +-- etldoc: osm_border_linestring_gen_z5 -> osm_border_linestring_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS osm_border_linestring_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW osm_border_linestring_gen_z4 AS ( -SELECT ST_Simplify(geometry, 4800) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime -FROM osm_border_linestring_adm +SELECT ST_Simplify(geometry, ZRes(5)) AS geometry, adm0_l, adm0_r, admin_level, disputed, maritime +FROM osm_border_linestring_gen_z5 +WHERE admin_level = 2 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_linestring_gen10_idx ON osm_border_linestring_gen10 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z4_idx ON osm_border_linestring_gen_z4 USING gist (geometry); + +-- ne_10m_admin_0_boundary_lines_land +-- etldoc: ne_10m_admin_0_boundary_lines_land -> ne_10m_admin_0_boundary_lines_land_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_admin_0_boundary_lines_land_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_admin_0_boundary_lines_land_gen_z4 AS +( +SELECT ST_Simplify(geometry, ZRes(6)) as geometry, + 2 AS admin_level, + (CASE WHEN featurecla LIKE 'Disputed%' THEN TRUE ELSE FALSE END) AS disputed, + (CASE WHEN featurecla LIKE 'Disputed%' THEN 'ne10m_' || ogc_fid ELSE NULL::text END) AS disputed_name, + NULL::text AS claimed_by, + FALSE AS maritime +FROM ne_10m_admin_0_boundary_lines_land +WHERE featurecla <> 'Lease limit' + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_admin_0_boundary_lines_land_gen_z4_idx ON ne_10m_admin_0_boundary_lines_land_gen_z4 USING gist (geometry); + +-- ne_10m_admin_1_states_provinces_lines +-- etldoc: ne_10m_admin_1_states_provinces_lines -> ne_10m_admin_1_states_provinces_lines_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_admin_1_states_provinces_lines_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_admin_1_states_provinces_lines_gen_z4 AS +( +SELECT ST_Simplify(geometry, ZRes(6)) as geometry, + 4 AS admin_level, + FALSE AS disputed, + NULL::text AS disputed_name, + NULL::text AS claimed_by, + FALSE AS maritime +FROM ne_10m_admin_1_states_provinces_lines +WHERE min_zoom <= 7 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_admin_1_states_provinces_lines_gen_z4_idx ON ne_10m_admin_1_states_provinces_lines_gen_z4 USING gist (geometry); + + +-- etldoc: ne_10m_admin_1_states_provinces_lines_gen_z4 -> ne_10m_admin_1_states_provinces_lines_gen_z3 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_admin_1_states_provinces_lines_gen_z3 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_admin_1_states_provinces_lines_gen_z3 AS +( +SELECT ST_Simplify(geometry, ZRes(5)) as geometry, + admin_level, + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_10m_admin_1_states_provinces_lines_gen_z4 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_admin_1_states_provinces_lines_gen_z3_idx ON ne_10m_admin_1_states_provinces_lines_gen_z3 USING gist (geometry); + +-- etldoc: ne_10m_admin_1_states_provinces_lines_gen_z3 -> ne_10m_admin_1_states_provinces_lines_gen_z2 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_admin_1_states_provinces_lines_gen_z2 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_admin_1_states_provinces_lines_gen_z2 AS +( +SELECT ST_Simplify(geometry, ZRes(4)) as geometry, + admin_level, + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_10m_admin_1_states_provinces_lines_gen_z3 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_admin_1_states_provinces_lines_gen_z2_idx ON ne_10m_admin_1_states_provinces_lines_gen_z2 USING gist (geometry); + +-- etldoc: ne_10m_admin_1_states_provinces_lines_gen_z2 -> ne_10m_admin_1_states_provinces_lines_gen_z1 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_admin_1_states_provinces_lines_gen_z1 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_admin_1_states_provinces_lines_gen_z1 AS +( +SELECT ST_Simplify(geometry, ZRes(3)) as geometry, + admin_level, + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_10m_admin_1_states_provinces_lines_gen_z2 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_admin_1_states_provinces_lines_gen_z1_idx ON ne_10m_admin_1_states_provinces_lines_gen_z1 USING gist (geometry); + +-- ne_50m_admin_0_boundary_lines_land +-- etldoc: ne_50m_admin_0_boundary_lines_land -> ne_50m_admin_0_boundary_lines_land_gen_z3 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_admin_0_boundary_lines_land_gen_z3 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_admin_0_boundary_lines_land_gen_z3 AS +( +SELECT ST_Simplify(geometry, ZRes(5)) as geometry, + 2 AS admin_level, + (CASE WHEN featurecla LIKE 'Disputed%' THEN TRUE ELSE FALSE END) AS disputed, + (CASE WHEN featurecla LIKE 'Disputed%' THEN 'ne50m_' || ogc_fid ELSE NULL::text END) AS disputed_name, + NULL::text AS claimed_by, + FALSE AS maritime +FROM ne_50m_admin_0_boundary_lines_land + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_admin_0_boundary_lines_land_gen_z3_idx ON ne_50m_admin_0_boundary_lines_land_gen_z3 USING gist (geometry); + +-- etldoc: ne_50m_admin_0_boundary_lines_land_gen_z3 -> ne_50m_admin_0_boundary_lines_land_gen_z2 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_admin_0_boundary_lines_land_gen_z2 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_admin_0_boundary_lines_land_gen_z2 AS +( +SELECT ST_Simplify(geometry, ZRes(4)) as geometry, + admin_level, + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_50m_admin_0_boundary_lines_land_gen_z3 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_admin_0_boundary_lines_land_gen_z2_idx ON ne_50m_admin_0_boundary_lines_land_gen_z2 USING gist (geometry); + +-- etldoc: ne_50m_admin_0_boundary_lines_land_gen_z2 -> ne_50m_admin_0_boundary_lines_land_gen_z1 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_admin_0_boundary_lines_land_gen_z1 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_admin_0_boundary_lines_land_gen_z1 AS +( +SELECT ST_Simplify(geometry, ZRes(3)) as geometry, + admin_level, + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_50m_admin_0_boundary_lines_land_gen_z2 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_admin_0_boundary_lines_land_gen_z1_idx ON ne_50m_admin_0_boundary_lines_land_gen_z1 USING gist (geometry); + +-- ne_110m_admin_0_boundary_lines_land +-- etldoc: ne_110m_admin_0_boundary_lines_land -> ne_110m_admin_0_boundary_lines_land_gen_z0 +DROP MATERIALIZED VIEW IF EXISTS ne_110m_admin_0_boundary_lines_land_gen_z0 CASCADE; +CREATE MATERIALIZED VIEW ne_110m_admin_0_boundary_lines_land_gen_z0 AS +( +SELECT ST_Simplify(geometry, ZRes(2)) as geometry, + 2 AS admin_level, + (CASE WHEN featurecla LIKE 'Disputed%' THEN TRUE ELSE FALSE END) AS disputed, + (CASE WHEN featurecla LIKE 'Disputed%' THEN 'ne110m_' || ogc_fid ELSE NULL::text END) AS disputed_name, + NULL::text AS claimed_by, + FALSE AS maritime +FROM ne_110m_admin_0_boundary_lines_land + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_110m_admin_0_boundary_lines_land_gen_z0_idx ON ne_110m_admin_0_boundary_lines_land_gen_z0 USING gist (geometry); CREATE OR REPLACE FUNCTION edit_name(name varchar) RETURNS text AS @@ -247,45 +349,44 @@ $$ LANGUAGE SQL IMMUTABLE ; --- etldoc: ne_110m_admin_0_boundary_lines_land -> boundary_z0 +-- etldoc: ne_110m_admin_0_boundary_lines_land_gen_z0 -> boundary_z0 CREATE OR REPLACE VIEW boundary_z0 AS ( SELECT geometry, - 2 AS admin_level, + admin_level, NULL::text AS adm0_l, NULL::text AS adm0_r, - (CASE WHEN featurecla LIKE 'Disputed%' THEN TRUE ELSE FALSE END) AS disputed, - (CASE WHEN featurecla LIKE 'Disputed%' THEN 'ne110m_' || ogc_fid ELSE NULL END) AS disputed_name, - NULL::text AS claimed_by, - FALSE AS maritime -FROM ne_110m_admin_0_boundary_lines_land + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_110m_admin_0_boundary_lines_land_gen_z0 ); --- etldoc: ne_50m_admin_0_boundary_lines_land -> boundary_z1 --- etldoc: ne_10m_admin_1_states_provinces_lines -> boundary_z1 --- etldoc: osm_border_disp_linestring_gen11 -> boundary_z1 +-- etldoc: ne_50m_admin_0_boundary_lines_land_gen_z1 -> boundary_z1 +-- etldoc: ne_10m_admin_1_states_provinces_lines_gen_z1 -> boundary_z1 +-- etldoc: osm_border_disp_linestring_gen_z1 -> boundary_z1 CREATE OR REPLACE VIEW boundary_z1 AS ( SELECT geometry, - 2 AS admin_level, + admin_level, NULL::text AS adm0_l, NULL::text AS adm0_r, - (CASE WHEN featurecla LIKE 'Disputed%' THEN TRUE ELSE FALSE END) AS disputed, - (CASE WHEN featurecla LIKE 'Disputed%' THEN 'ne50m_' || ogc_fid ELSE NULL END) AS disputed_name, - NULL AS claimed_by, - FALSE AS maritime -FROM ne_50m_admin_0_boundary_lines_land + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_50m_admin_0_boundary_lines_land_gen_z1 UNION ALL SELECT geometry, - 4 AS admin_level, + admin_level, NULL::text AS adm0_l, NULL::text AS adm0_r, - FALSE AS disputed, - NULL AS disputed_name, - NULL AS claimed_by, - FALSE AS maritime -FROM ne_10m_admin_1_states_provinces_lines -WHERE min_zoom <= 7 + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_10m_admin_1_states_provinces_lines_gen_z1 UNION ALL SELECT geometry, admin_level, @@ -295,35 +396,70 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen11 +FROM osm_border_disp_linestring_gen_z1 ); --- etldoc: ne_50m_admin_0_boundary_lines_land -> boundary_z3 --- etldoc: ne_10m_admin_1_states_provinces_lines -> boundary_z3 --- etldoc: osm_border_disp_linestring_gen11 -> boundary_z3 +-- etldoc: ne_50m_admin_0_boundary_lines_land_gen_z2 -> boundary_z2 +-- etldoc: ne_10m_admin_1_states_provinces_lines_gen_z2 -> boundary_z2 +-- etldoc: osm_border_disp_linestring_gen_z2 -> boundary_z2 +CREATE OR REPLACE VIEW boundary_z2 AS +( +SELECT geometry, + admin_level, + NULL::text AS adm0_l, + NULL::text AS adm0_r, + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_50m_admin_0_boundary_lines_land_gen_z2 +UNION ALL +SELECT geometry, + admin_level, + NULL::text AS adm0_l, + NULL::text AS adm0_r, + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_10m_admin_1_states_provinces_lines_gen_z2 +UNION ALL +SELECT geometry, + admin_level, + NULL::text AS adm0_l, + NULL::text AS adm0_r, + TRUE AS disputed, + edit_name(name) AS disputed_name, + claimed_by, + maritime +FROM osm_border_disp_linestring_gen_z2 + ); + +-- etldoc: ne_50m_admin_0_boundary_lines_land_gen_z3 -> boundary_z3 +-- etldoc: ne_10m_admin_1_states_provinces_lines_gen_z3 -> boundary_z3 +-- etldoc: osm_border_disp_linestring_gen_z3 -> boundary_z3 CREATE OR REPLACE VIEW boundary_z3 AS ( SELECT geometry, - 2 AS admin_level, + admin_level, NULL::text AS adm0_l, NULL::text AS adm0_r, - (CASE WHEN featurecla LIKE 'Disputed%' THEN TRUE ELSE FALSE END) AS disputed, - (CASE WHEN featurecla LIKE 'Disputed%' THEN 'ne50m_' || ogc_fid ELSE NULL END) AS disputed_name, - NULL AS claimed_by, - FALSE AS maritime -FROM ne_50m_admin_0_boundary_lines_land + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_50m_admin_0_boundary_lines_land_gen_z3 UNION ALL SELECT geometry, - 4 AS admin_level, + admin_level, NULL::text AS adm0_l, NULL::text AS adm0_r, - FALSE AS disputed, - NULL AS disputed_name, - NULL AS claimed_by, - FALSE AS maritime -FROM ne_10m_admin_1_states_provinces_lines -WHERE min_zoom <= 7 + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_10m_admin_1_states_provinces_lines_gen_z3 UNION ALL SELECT geometry, admin_level, @@ -333,47 +469,44 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen11 +FROM osm_border_disp_linestring_gen_z3 ); - --- etldoc: ne_10m_admin_0_boundary_lines_land -> boundary_z4 --- etldoc: ne_10m_admin_1_states_provinces_lines -> boundary_z4 --- etldoc: osm_border_linestring_gen10 -> boundary_z4 --- etldoc: osm_border_disp_linestring_gen10 -> boundary_z4 +-- etldoc: ne_10m_admin_0_boundary_lines_land_gen_z4 -> boundary_z4 +-- etldoc: ne_10m_admin_1_states_provinces_lines_gen_z4 -> boundary_z4 +-- etldoc: osm_border_linestring_gen_z4 -> boundary_z4 +-- etldoc: osm_border_disp_linestring_gen_z4 -> boundary_z4 CREATE OR REPLACE VIEW boundary_z4 AS ( SELECT geometry, - 2 AS admin_level, - adm0_a3_l AS adm0_l, - adm0_a3_r AS adm0_r, - (CASE WHEN featurecla LIKE 'Disputed%' THEN TRUE ELSE FALSE END) AS disputed, - (CASE WHEN featurecla LIKE 'Disputed%' THEN 'ne10m_' || ogc_fid ELSE NULL END) AS disputed_name, - NULL AS claimed_by, - FALSE AS maritime -FROM ne_10m_admin_0_boundary_lines_land -WHERE featurecla <> 'Lease limit' -UNION ALL -SELECT geometry, - 4 AS admin_level, + admin_level, NULL::text AS adm0_l, NULL::text AS adm0_r, - FALSE AS disputed, - NULL AS disputed_name, - NULL AS claimed_by, - FALSE AS maritime -FROM ne_10m_admin_1_states_provinces_lines -WHERE min_zoom <= 7 + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_10m_admin_0_boundary_lines_land_gen_z4 +UNION ALL +SELECT geometry, + admin_level, + NULL::text AS adm0_l, + NULL::text AS adm0_r, + disputed, + disputed_name, + claimed_by, + maritime +FROM ne_10m_admin_1_states_provinces_lines_gen_z4 UNION ALL SELECT geometry, admin_level, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen10 +FROM osm_border_linestring_gen_z4 WHERE maritime = TRUE AND admin_level <= 2 UNION ALL @@ -385,11 +518,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen10 +FROM osm_border_disp_linestring_gen_z4 ); --- etldoc: osm_border_linestring_gen9 -> boundary_z5 --- etldoc: osm_border_disp_linestring_gen9 -> boundary_z5 +-- etldoc: osm_border_linestring_gen_z5 -> boundary_z5 +-- etldoc: osm_border_disp_linestring_gen_z5 -> boundary_z5 CREATE OR REPLACE VIEW boundary_z5 AS ( SELECT geometry, @@ -397,13 +530,13 @@ SELECT geometry, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen9 +FROM osm_border_linestring_gen_z5 WHERE admin_level <= 4 -- already not included in osm_border_linestring_adm --- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen9) +-- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen_z5) UNION ALL SELECT geometry, admin_level, @@ -413,11 +546,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen9 +FROM osm_border_disp_linestring_gen_z5 ); --- etldoc: osm_border_linestring_gen8 -> boundary_z6 --- etldoc: osm_border_disp_linestring_gen8 -> boundary_z6 +-- etldoc: osm_border_linestring_gen_z6 -> boundary_z6 +-- etldoc: osm_border_disp_linestring_gen_z6 -> boundary_z6 CREATE OR REPLACE VIEW boundary_z6 AS ( SELECT geometry, @@ -425,12 +558,12 @@ SELECT geometry, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen8 +FROM osm_border_linestring_gen_z6 WHERE admin_level <= 4 --- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen8) +-- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen_z6) UNION ALL SELECT geometry, admin_level, @@ -440,11 +573,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen8 +FROM osm_border_disp_linestring_gen_z6 ); --- etldoc: osm_border_linestring_gen7 -> boundary_z7 --- etldoc: osm_border_disp_linestring_gen7 -> boundary_z7 +-- etldoc: osm_border_linestring_gen_z7 -> boundary_z7 +-- etldoc: osm_border_disp_linestring_gen_z7 -> boundary_z7 CREATE OR REPLACE VIEW boundary_z7 AS ( SELECT geometry, @@ -452,12 +585,12 @@ SELECT geometry, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen7 +FROM osm_border_linestring_gen_z7 WHERE admin_level <= 6 --- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen7) +-- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen_z7) UNION ALL SELECT geometry, admin_level, @@ -467,11 +600,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen7 +FROM osm_border_disp_linestring_gen_z7 ); --- etldoc: osm_border_linestring_gen6 -> boundary_z8 --- etldoc: osm_border_disp_linestring_gen6 -> boundary_z8 +-- etldoc: osm_border_linestring_gen_z8 -> boundary_z8 +-- etldoc: osm_border_disp_linestring_gen_z8 -> boundary_z8 CREATE OR REPLACE VIEW boundary_z8 AS ( SELECT geometry, @@ -479,12 +612,12 @@ SELECT geometry, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen6 +FROM osm_border_linestring_gen_z8 WHERE admin_level <= 6 --- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen6) +-- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen_z8) UNION ALL SELECT geometry, admin_level, @@ -494,11 +627,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen6 +FROM osm_border_disp_linestring_gen_z8 ); --- etldoc: osm_border_linestring_gen5 -> boundary_z9 --- etldoc: osm_border_disp_linestring_gen5 -> boundary_z9 +-- etldoc: osm_border_linestring_gen_z9 -> boundary_z9 +-- etldoc: osm_border_disp_linestring_gen_z9 -> boundary_z9 CREATE OR REPLACE VIEW boundary_z9 AS ( SELECT geometry, @@ -506,12 +639,12 @@ SELECT geometry, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen5 +FROM osm_border_linestring_gen_z9 WHERE admin_level <= 6 --- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen5) +-- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen_z9) UNION ALL SELECT geometry, admin_level, @@ -521,11 +654,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen5 +FROM osm_border_disp_linestring_gen_z9 ); --- etldoc: osm_border_linestring_gen4 -> boundary_z10 --- etldoc: osm_border_disp_linestring_gen4 -> boundary_z10 +-- etldoc: osm_border_linestring_gen_z10 -> boundary_z10 +-- etldoc: osm_border_disp_linestring_gen_z10 -> boundary_z10 CREATE OR REPLACE VIEW boundary_z10 AS ( SELECT geometry, @@ -533,12 +666,12 @@ SELECT geometry, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen4 +FROM osm_border_linestring_gen_z10 WHERE admin_level <= 6 --- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen4) +-- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen_z10) UNION ALL SELECT geometry, admin_level, @@ -548,11 +681,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen4 +FROM osm_border_disp_linestring_gen_z10 ); --- etldoc: osm_border_linestring_gen3 -> boundary_z11 --- etldoc: osm_border_disp_linestring_gen3 -> boundary_z11 +-- etldoc: osm_border_linestring_gen_z11 -> boundary_z11 +-- etldoc: osm_border_disp_linestring_gen_z11 -> boundary_z11 CREATE OR REPLACE VIEW boundary_z11 AS ( SELECT geometry, @@ -560,12 +693,12 @@ SELECT geometry, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen3 +FROM osm_border_linestring_gen_z11 WHERE admin_level <= 8 --- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen3) +-- AND osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen_z11) UNION ALL SELECT geometry, admin_level, @@ -575,11 +708,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen3 +FROM osm_border_disp_linestring_gen_z11 ); --- etldoc: osm_border_linestring_gen2 -> boundary_z12 --- etldoc: osm_border_disp_linestring_gen2 -> boundary_z12 +-- etldoc: osm_border_linestring_gen_z12 -> boundary_z12 +-- etldoc: osm_border_disp_linestring_gen_z12 -> boundary_z12 CREATE OR REPLACE VIEW boundary_z12 AS ( SELECT geometry, @@ -587,11 +720,11 @@ SELECT geometry, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen2 ---WHERE osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen2) +FROM osm_border_linestring_gen_z12 +--WHERE osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen_z12) UNION ALL SELECT geometry, admin_level, @@ -601,11 +734,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen2 +FROM osm_border_disp_linestring_gen_z12 ); --- etldoc: osm_border_linestring_gen1 -> boundary_z13 --- etldoc: osm_border_disp_linestring_gen1 -> boundary_z13 +-- etldoc: osm_border_linestring_gen_z13 -> boundary_z13 +-- etldoc: osm_border_disp_linestring_gen_z13 -> boundary_z13 CREATE OR REPLACE VIEW boundary_z13 AS ( SELECT geometry, @@ -613,11 +746,11 @@ SELECT geometry, adm0_l, adm0_r, disputed, - NULL AS disputed_name, - NULL AS claimed_by, + NULL::text AS disputed_name, + NULL::text AS claimed_by, maritime -FROM osm_border_linestring_gen1 ---WHERE osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen1) +FROM osm_border_linestring_gen_z13 +--WHERE osm_id NOT IN (SELECT DISTINCT osm_id FROM osm_border_disp_linestring_gen_z13) UNION ALL SELECT geometry, admin_level, @@ -627,11 +760,11 @@ SELECT geometry, edit_name(name) AS disputed_name, claimed_by, maritime -FROM osm_border_disp_linestring_gen1 +FROM osm_border_disp_linestring_gen_z13 ); -- etldoc: layer_boundary[shape=record fillcolor=lightpink, style="rounded,filled", --- etldoc: label=" layer_boundary | z0 | z1_2 | z3 | z4 | z5 | z6 | z7 | z8 | z9 | z10 | z11 | z12| z13+"] +-- etldoc: label=" layer_boundary | z0 | z1 | z2 | z3 | z4 | z5 | z6 | z7 | z8 | z9 | z10 | z11 | z12| z13+"] CREATE OR REPLACE FUNCTION layer_boundary(bbox geometry, zoom_level int) RETURNS TABLE ( @@ -654,11 +787,17 @@ FROM ( WHERE geometry && bbox AND zoom_level = 0 UNION ALL - -- etldoc: boundary_z1 -> layer_boundary:z1_2 + -- etldoc: boundary_z1 -> layer_boundary:z1 SELECT * FROM boundary_z1 WHERE geometry && bbox - AND zoom_level BETWEEN 1 AND 2 + AND zoom_level = 1 + UNION ALL + -- etldoc: boundary_z2 -> layer_boundary:z2 + SELECT * + FROM boundary_z2 + WHERE geometry && bbox + AND zoom_level = 2 UNION ALL -- etldoc: boundary_z3 -> layer_boundary:z3 SELECT * diff --git a/layers/boundary/etl_diagram.png b/layers/boundary/etl_diagram.png index ddb8842..a4841c2 100644 Binary files a/layers/boundary/etl_diagram.png and b/layers/boundary/etl_diagram.png differ diff --git a/layers/boundary/mapping.yaml b/layers/boundary/mapping.yaml index 0acc08a..76c0f93 100644 --- a/layers/boundary/mapping.yaml +++ b/layers/boundary/mapping.yaml @@ -1,70 +1,82 @@ generalized_tables: - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen11 - border_disp_linestring_gen11: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z2 -> osm_border_disp_linestring_gen_z1 + border_disp_linestring_gen_z1: + source: border_disp_linestring_gen_z2 sql_filter: admin_level = 2 - tolerance: 9600 + tolerance: ZRES2 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen10 - border_disp_linestring_gen10: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z3 -> osm_border_disp_linestring_gen_z2 + border_disp_linestring_gen_z2: + source: border_disp_linestring_gen_z3 sql_filter: admin_level = 2 - tolerance: 4800 + tolerance: ZRES3 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen9 - border_disp_linestring_gen9: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z4 -> osm_border_disp_linestring_gen_z3 + border_disp_linestring_gen_z3: + source: border_disp_linestring_gen_z4 sql_filter: admin_level = 2 - tolerance: 2400 + tolerance: ZRES4 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen8 - border_disp_linestring_gen8: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z5 -> osm_border_disp_linestring_gen_z4 + border_disp_linestring_gen_z4: + source: border_disp_linestring_gen_z5 sql_filter: admin_level = 2 - tolerance: 1200 + tolerance: ZRES5 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen7 - border_disp_linestring_gen7: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z6 -> osm_border_disp_linestring_gen_z5 + border_disp_linestring_gen_z5: + source: border_disp_linestring_gen_z6 sql_filter: admin_level = 2 - tolerance: 600 + tolerance: ZRES6 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen6 - border_disp_linestring_gen6: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z7 -> osm_border_disp_linestring_gen_z6 + border_disp_linestring_gen_z6: + source: border_disp_linestring_gen_z7 sql_filter: admin_level = 2 - tolerance: 300 + tolerance: ZRES7 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen5 - border_disp_linestring_gen5: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z8 -> osm_border_disp_linestring_gen_z7 + border_disp_linestring_gen_z7: + source: border_disp_linestring_gen_z8 sql_filter: admin_level = 2 - tolerance: 160 + tolerance: ZRES8 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen4 - border_disp_linestring_gen4: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z9 -> osm_border_disp_linestring_gen_z8 + border_disp_linestring_gen_z8: + source: border_disp_linestring_gen_z9 sql_filter: admin_level = 2 - tolerance: 80 + tolerance: ZRES9 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen3 - border_disp_linestring_gen3: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z10 -> osm_border_disp_linestring_gen_z9 + border_disp_linestring_gen_z9: + source: border_disp_linestring_gen_z10 sql_filter: admin_level = 2 - tolerance: 40 + tolerance: ZRES10 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen2 - border_disp_linestring_gen2: - source: border_disp_linestring + # etldoc: osm_border_disp_linestring_gen_z11 -> osm_border_disp_linestring_gen_z10 + border_disp_linestring_gen_z10: + source: border_disp_linestring_gen_z11 sql_filter: admin_level = 2 - tolerance: 20 + tolerance: ZRES11 - # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen1 - border_disp_linestring_gen1: + # etldoc: osm_border_disp_linestring_gen_z12 -> osm_border_disp_linestring_gen_z11 + border_disp_linestring_gen_z11: + source: border_disp_linestring_gen_z12 + sql_filter: admin_level = 2 + tolerance: ZRES12 + + # etldoc: osm_border_disp_linestring_gen_z13 -> osm_border_disp_linestring_gen_z12 + border_disp_linestring_gen_z12: + source: border_disp_linestring_gen_z13 + sql_filter: admin_level = 2 + tolerance: ZRES13 + + # etldoc: osm_border_disp_linestring -> osm_border_disp_linestring_gen_z13 + border_disp_linestring_gen_z13: source: border_disp_linestring sql_filter: admin_level = 2 - tolerance: 10 + tolerance: ZRES14 # etldoc: osm_border_disp_relation -> osm_border_disp_linestring border_disp_linestring: diff --git a/layers/landcover/etl_diagram.png b/layers/landcover/etl_diagram.png index ee164fd..55c7972 100644 Binary files a/layers/landcover/etl_diagram.png and b/layers/landcover/etl_diagram.png differ diff --git a/layers/landcover/generalized.sql b/layers/landcover/generalized.sql index 536b0b8..1a2086b 100644 --- a/layers/landcover/generalized.sql +++ b/layers/landcover/generalized.sql @@ -62,7 +62,7 @@ SELECT subclass, CREATE INDEX ON osm_landcover_gen_z13 USING GIST (geometry); --- etldoc: osm_landcover_polygon -> osm_landcover_gen_z12 +-- etldoc: osm_landcover_gen_z13 -> osm_landcover_gen_z12 CREATE TABLE simplify_vw_z12 AS ( SELECT subclass, @@ -111,7 +111,7 @@ SELECT subclass, CREATE INDEX ON osm_landcover_gen_z12 USING GIST (geometry); --- etldoc: osm_landcover_polygon -> osm_landcover_gen_z11 +-- etldoc: osm_landcover_gen_z12 -> osm_landcover_gen_z11 CREATE TABLE simplify_vw_z11 AS ( SELECT subclass, @@ -160,7 +160,7 @@ SELECT subclass, CREATE INDEX ON osm_landcover_gen_z11 USING GIST (geometry); --- etldoc: osm_landcover_polygon -> osm_landcover_gen_z10 +-- etldoc: osm_landcover_gen_z11 -> osm_landcover_gen_z10 CREATE TABLE simplify_vw_z10 AS ( SELECT subclass, @@ -209,7 +209,7 @@ SELECT subclass, CREATE INDEX ON osm_landcover_gen_z10 USING GIST (geometry); --- etldoc: osm_landcover_polygon -> osm_landcover_gen_z9 +-- etldoc: osm_landcover_gen_z10 -> osm_landcover_gen_z9 CREATE TABLE simplify_vw_z9 AS ( SELECT subclass, @@ -270,7 +270,7 @@ SELECT subclass, CREATE INDEX ON osm_landcover_gen_z9 USING GIST (geometry); --- etldoc: osm_landcover_polygon -> osm_landcover_gen_z8 +-- etldoc: osm_landcover_gen_z9 -> osm_landcover_gen_z8 CREATE TABLE simplify_vw_z8 AS ( SELECT subclass, @@ -308,7 +308,7 @@ SELECT subclass, CREATE INDEX ON osm_landcover_gen_z8 USING GIST (geometry); --- etldoc: osm_landcover_polygon -> osm_landcover_gen_z7 +-- etldoc: osm_landcover_gen_z8 -> osm_landcover_gen_z7 CREATE TABLE simplify_vw_z7 AS ( SELECT subclass, diff --git a/layers/landcover/landcover.sql b/layers/landcover/landcover.sql index 75e5d2a..4cffdb4 100644 --- a/layers/landcover/landcover.sql +++ b/layers/landcover/landcover.sql @@ -18,36 +18,237 @@ $$ LANGUAGE SQL IMMUTABLE -- STRICT PARALLEL SAFE; --- etldoc: ne_110m_glaciated_areas -> landcover_z0 +-- ne_50m_antarctic_ice_shelves_polys +-- etldoc: ne_50m_antarctic_ice_shelves_polys -> ne_50m_antarctic_ice_shelves_polys_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_antarctic_ice_shelves_polys_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_antarctic_ice_shelves_polys_gen_z4 AS +( +SELECT + ST_Simplify(geometry, ZRes(6)) as geometry, + 'ice_shelf'::text AS subclass +FROM ne_50m_antarctic_ice_shelves_polys + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_antarctic_ice_shelves_polys_gen_z4_idx ON ne_50m_antarctic_ice_shelves_polys_gen_z4 USING gist (geometry); + +-- ne_110m_glaciated_areas +-- etldoc: ne_110m_glaciated_areas -> ne_110m_glaciated_areas_gen_z1 +DROP MATERIALIZED VIEW IF EXISTS ne_110m_glaciated_areas_gen_z1 CASCADE; +CREATE MATERIALIZED VIEW ne_110m_glaciated_areas_gen_z1 AS +( +SELECT + ST_Simplify(geometry, ZRes(3)) as geometry, + 'glacier'::text AS subclass +FROM ne_110m_glaciated_areas + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_110m_glaciated_areas_gen_z1_idx ON ne_110m_glaciated_areas_gen_z1 USING gist (geometry); + +-- etldoc: ne_110m_glaciated_areas_gen_z1 -> ne_110m_glaciated_areas_gen_z0 +DROP MATERIALIZED VIEW IF EXISTS ne_110m_glaciated_areas_gen_z0 CASCADE; +CREATE MATERIALIZED VIEW ne_110m_glaciated_areas_gen_z0 AS +( +SELECT + ST_Simplify(geometry, ZRes(2)) as geometry, + subclass +FROM ne_110m_glaciated_areas_gen_z1 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_110m_glaciated_areas_gen_z0_idx ON ne_110m_glaciated_areas_gen_z0 USING gist (geometry); + +-- etldoc: ne_50m_antarctic_ice_shelves_polys_gen_z4 -> ne_50m_antarctic_ice_shelves_polys_gen_z3 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_antarctic_ice_shelves_polys_gen_z3 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_antarctic_ice_shelves_polys_gen_z3 AS +( +SELECT + ST_Simplify(geometry, ZRes(5)) as geometry, + subclass +FROM ne_50m_antarctic_ice_shelves_polys_gen_z4 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_antarctic_ice_shelves_polys_gen_z3_idx ON ne_50m_antarctic_ice_shelves_polys_gen_z3 USING gist (geometry); + +-- etldoc: ne_50m_antarctic_ice_shelves_polys_gen_z3 -> ne_50m_antarctic_ice_shelves_polys_gen_z2 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_antarctic_ice_shelves_polys_gen_z2 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_antarctic_ice_shelves_polys_gen_z2 AS +( +SELECT + ST_Simplify(geometry, ZRes(4)) as geometry, + subclass +FROM ne_50m_antarctic_ice_shelves_polys_gen_z3 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_antarctic_ice_shelves_polys_gen_z2_idx ON ne_50m_antarctic_ice_shelves_polys_gen_z2 USING gist (geometry); + +-- ne_50m_glaciated_areas +-- etldoc: ne_50m_glaciated_areas -> ne_50m_glaciated_areas_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_glaciated_areas_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_glaciated_areas_gen_z4 AS +( +SELECT + ST_Simplify(geometry, ZRes(6)) as geometry, + 'glacier'::text AS subclass +FROM ne_50m_glaciated_areas + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_glaciated_areas_gen_z4_idx ON ne_50m_glaciated_areas_gen_z4 USING gist (geometry); + +-- etldoc: ne_50m_glaciated_areas_gen_z4 -> ne_50m_glaciated_areas_gen_z3 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_glaciated_areas_gen_z3 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_glaciated_areas_gen_z3 AS +( +SELECT + ST_Simplify(geometry, ZRes(5)) as geometry, + subclass +FROM ne_50m_glaciated_areas_gen_z4 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_glaciated_areas_gen_z3_idx ON ne_50m_glaciated_areas_gen_z3 USING gist (geometry); + +-- etldoc: ne_50m_glaciated_areas_gen_z3 -> ne_50m_glaciated_areas_gen_z2 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_glaciated_areas_gen_z2 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_glaciated_areas_gen_z2 AS +( +SELECT + ST_Simplify(geometry, ZRes(4)) as geometry, + subclass +FROM ne_50m_glaciated_areas_gen_z3 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_glaciated_areas_gen_z2_idx ON ne_50m_glaciated_areas_gen_z2 USING gist (geometry); + +-- ne_10m_glaciated_areas +-- etldoc: ne_10m_glaciated_areas -> ne_10m_glaciated_areas_gen_z6 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_glaciated_areas_gen_z6 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_glaciated_areas_gen_z6 AS +( +SELECT + ST_Simplify(geometry, ZRes(8)) as geometry, + 'glacier'::text AS subclass +FROM ne_10m_glaciated_areas + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_glaciated_areas_gen_z6_idx ON ne_10m_glaciated_areas_gen_z6 USING gist (geometry); + +-- etldoc: ne_10m_glaciated_areas_gen_z6 -> ne_10m_glaciated_areas_gen_z5 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_glaciated_areas_gen_z5 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_glaciated_areas_gen_z5 AS +( +SELECT + ST_Simplify(geometry, ZRes(7)) as geometry, + subclass +FROM ne_10m_glaciated_areas_gen_z6 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_glaciated_areas_gen_z5_idx ON ne_10m_glaciated_areas_gen_z5 USING gist (geometry); + +-- ne_10m_antarctic_ice_shelves_polys +-- etldoc: ne_10m_antarctic_ice_shelves_polys -> ne_10m_antarctic_ice_shelves_polys_gen_z6 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_antarctic_ice_shelves_polys_gen_z6 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_antarctic_ice_shelves_polys_gen_z6 AS +( +SELECT + ST_Simplify(geometry, ZRes(8)) as geometry, + 'ice_shelf'::text AS subclass +FROM ne_10m_antarctic_ice_shelves_polys + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_antarctic_ice_shelves_polys_gen_z6_idx ON ne_10m_antarctic_ice_shelves_polys_gen_z6 USING gist (geometry); + +-- etldoc: ne_10m_antarctic_ice_shelves_polys_gen_z6 -> ne_10m_antarctic_ice_shelves_polys_gen_z5 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_antarctic_ice_shelves_polys_gen_z5 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_antarctic_ice_shelves_polys_gen_z5 AS +( +SELECT + ST_Simplify(geometry, ZRes(7)) as geometry, + subclass +FROM ne_10m_antarctic_ice_shelves_polys_gen_z6 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_antarctic_ice_shelves_polys_gen_z5_idx ON ne_10m_antarctic_ice_shelves_polys_gen_z5 USING gist (geometry); + +-- etldoc: ne_110m_glaciated_areas_gen_z0 -> landcover_z0 CREATE OR REPLACE VIEW landcover_z0 AS ( -SELECT geometry, 'glacier'::text AS subclass -FROM ne_110m_glaciated_areas +SELECT + geometry, + subclass +FROM ne_110m_glaciated_areas_gen_z0 + ); + +-- etldoc: ne_110m_glaciated_areas_gen_z1 -> landcover_z1 +CREATE OR REPLACE VIEW landcover_z1 AS +( +SELECT + geometry, + subclass +FROM ne_110m_glaciated_areas_gen_z1 ); CREATE OR REPLACE VIEW landcover_z2 AS ( --- etldoc: ne_50m_glaciated_areas -> landcover_z2 -SELECT geometry, 'glacier'::text AS subclass -FROM ne_50m_glaciated_areas +-- etldoc: ne_50m_glaciated_areas_gen_z2 -> landcover_z2 +SELECT + geometry, + subclass +FROM ne_50m_glaciated_areas_gen_z2 UNION ALL --- etldoc: ne_50m_antarctic_ice_shelves_polys -> landcover_z2 -SELECT geometry, 'ice_shelf'::text AS subclass -FROM ne_50m_antarctic_ice_shelves_polys +-- etldoc: ne_50m_antarctic_ice_shelves_polys_gen_z2 -> landcover_z2 +SELECT + geometry, + subclass +FROM ne_50m_antarctic_ice_shelves_polys_gen_z2 + ); + +CREATE OR REPLACE VIEW landcover_z3 AS +( +-- etldoc: ne_50m_glaciated_areas_gen_z3 -> landcover_z3 +SELECT + geometry, + subclass +FROM ne_50m_glaciated_areas_gen_z3 +UNION ALL +-- etldoc: ne_50m_antarctic_ice_shelves_polys_gen_z3 -> landcover_z3 +SELECT + geometry, + subclass +FROM ne_50m_antarctic_ice_shelves_polys_gen_z3 + ); + +CREATE OR REPLACE VIEW landcover_z4 AS +( +-- etldoc: ne_50m_glaciated_areas_gen_z4 -> landcover_z4 +SELECT + geometry, + subclass +FROM ne_50m_glaciated_areas_gen_z4 +UNION ALL +-- etldoc: ne_50m_antarctic_ice_shelves_polys_gen_z4 -> landcover_z4 +SELECT + geometry, + subclass +FROM ne_50m_antarctic_ice_shelves_polys_gen_z4 ); CREATE OR REPLACE VIEW landcover_z5 AS ( --- etldoc: ne_10m_glaciated_areas -> landcover_z5 -SELECT geometry, 'glacier'::text AS subclass -FROM ne_10m_glaciated_areas +-- etldoc: ne_10m_glaciated_areas_gen_z5 -> landcover_z5 +SELECT + geometry, + subclass +FROM ne_10m_glaciated_areas_gen_z5 UNION ALL --- etldoc: ne_10m_antarctic_ice_shelves_polys -> landcover_z5 -SELECT geometry, 'ice_shelf'::text AS subclass -FROM ne_10m_antarctic_ice_shelves_polys +-- etldoc: ne_10m_antarctic_ice_shelves_polys_gen_z5 -> landcover_z5 +SELECT + geometry, + subclass +FROM ne_10m_antarctic_ice_shelves_polys_gen_z5 ); --- etldoc: layer_landcover[shape=record fillcolor=lightpink, style="rounded, filled", label="layer_landcover | z0-z1 | z2-z4 | z5-z6 | z7 | z8 | z9 | z10 | z11 | z12| z13| z14+" ] ; +CREATE OR REPLACE VIEW landcover_z6 AS +( +-- etldoc: ne_10m_glaciated_areas_gen_z6 -> landcover_z6 +SELECT + geometry, + subclass +FROM ne_10m_glaciated_areas_gen_z6 +UNION ALL +-- etldoc: ne_10m_antarctic_ice_shelves_polys_gen_z6 -> landcover_z6 +SELECT + geometry, + subclass +FROM ne_10m_antarctic_ice_shelves_polys_gen_z6 + ); + +-- etldoc: layer_landcover[shape=record fillcolor=lightpink, style="rounded, filled", label="layer_landcover | z0 | z1 | z2 | z3 | z4 | z5 | z6 | z7 | z8 | z9 | z10 | z11 | z12| z13| z14+" ] ; CREATE OR REPLACE FUNCTION layer_landcover(bbox geometry, zoom_level int) RETURNS TABLE @@ -62,25 +263,53 @@ SELECT geometry, landcover_class(subclass) AS class, subclass FROM ( - -- etldoc: landcover_z0 -> layer_landcover:z0_1 + -- etldoc: landcover_z0 -> layer_landcover:z0 SELECT geometry, subclass FROM landcover_z0 - WHERE zoom_level BETWEEN 0 AND 1 + WHERE zoom_level = 0 AND geometry && bbox UNION ALL - -- etldoc: landcover_z2 -> layer_landcover:z2_4 + -- etldoc: landcover_z1 -> layer_landcover:z1 + SELECT geometry, + subclass + FROM landcover_z1 + WHERE zoom_level = 1 + AND geometry && bbox + UNION ALL + -- etldoc: landcover_z2 -> layer_landcover:z2 SELECT geometry, subclass FROM landcover_z2 - WHERE zoom_level BETWEEN 2 AND 4 + WHERE zoom_level = 2 AND geometry && bbox UNION ALL - -- etldoc: landcover_z5 -> layer_landcover:z5_6 + -- etldoc: landcover_z3 -> layer_landcover:z3 + SELECT geometry, + subclass + FROM landcover_z3 + WHERE zoom_level = 3 + AND geometry && bbox + UNION ALL + -- etldoc: landcover_z4 -> layer_landcover:z4 + SELECT geometry, + subclass + FROM landcover_z4 + WHERE zoom_level = 4 + AND geometry && bbox + UNION ALL + -- etldoc: landcover_z5 -> layer_landcover:z5 SELECT geometry, subclass FROM landcover_z5 - WHERE zoom_level BETWEEN 5 AND 6 + WHERE zoom_level = 5 + AND geometry && bbox + UNION ALL + -- etldoc: landcover_z6 -> layer_landcover:z6 + SELECT geometry, + subclass + FROM landcover_z6 + WHERE zoom_level = 6 AND geometry && bbox UNION ALL -- etldoc: osm_landcover_gen_z7 -> layer_landcover:z7 @@ -141,4 +370,4 @@ FROM ( ) AS zoom_levels; $$ LANGUAGE SQL STABLE -- STRICT - PARALLEL SAFE; + PARALLEL SAFE; \ No newline at end of file diff --git a/layers/landuse/etl_diagram.png b/layers/landuse/etl_diagram.png index 6762ce0..a4dfa7c 100644 Binary files a/layers/landuse/etl_diagram.png and b/layers/landuse/etl_diagram.png differ diff --git a/layers/landuse/landuse.sql b/layers/landuse/landuse.sql index 7feaa85..f37c65b 100644 --- a/layers/landuse/landuse.sql +++ b/layers/landuse/landuse.sql @@ -1,146 +1,42 @@ --- etldoc: ne_50m_urban_areas -> landuse_z4 -CREATE OR REPLACE VIEW landuse_z4 AS +-- ne_50m_urban_areas +-- etldoc: ne_50m_urban_areas -> ne_50m_urban_areas_gen_z5 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_urban_areas_gen_z5 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_urban_areas_gen_z5 AS ( -SELECT NULL::bigint AS osm_id, - geometry, +SELECT + NULL::bigint AS osm_id, + ST_Simplify(geometry, ZRes(7)) as geometry, 'residential'::text AS landuse, NULL::text AS amenity, NULL::text AS leisure, NULL::text AS tourism, NULL::text AS place, - NULL::text AS waterway + NULL::text AS waterway, + scalerank FROM ne_50m_urban_areas + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_urban_areas_gen_z5_idx ON ne_50m_urban_areas_gen_z5 USING gist (geometry); + +-- etldoc: ne_50m_urban_areas_gen_z5 -> ne_50m_urban_areas_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_urban_areas_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_urban_areas_gen_z4 AS +( +SELECT + osm_id, + ST_Simplify(geometry, ZRes(6)) as geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway +FROM ne_50m_urban_areas_gen_z5 WHERE scalerank <= 2 - ); - --- etldoc: ne_50m_urban_areas -> landuse_z5 -CREATE OR REPLACE VIEW landuse_z5 AS -( -SELECT NULL::bigint AS osm_id, - geometry, - 'residential'::text AS landuse, - NULL::text AS amenity, - NULL::text AS leisure, - NULL::text AS tourism, - NULL::text AS place, - NULL::text AS waterway -FROM ne_50m_urban_areas - ); - --- etldoc: osm_landuse_polygon_gen7 -> landuse_z6 -CREATE OR REPLACE VIEW landuse_z6 AS -( -SELECT osm_id, - geometry, - landuse, - amenity, - leisure, - tourism, - place, - waterway -FROM osm_landuse_polygon_gen7 - ); - --- etldoc: osm_landuse_polygon_gen6 -> landuse_z8 -CREATE OR REPLACE VIEW landuse_z8 AS -( -SELECT osm_id, - geometry, - landuse, - amenity, - leisure, - tourism, - place, - waterway -FROM osm_landuse_polygon_gen6 - ); - --- etldoc: osm_landuse_polygon_gen5 -> landuse_z9 -CREATE OR REPLACE VIEW landuse_z9 AS -( -SELECT osm_id, - geometry, - landuse, - amenity, - leisure, - tourism, - place, - waterway -FROM osm_landuse_polygon_gen5 - ); - --- etldoc: osm_landuse_polygon_gen4 -> landuse_z10 -CREATE OR REPLACE VIEW landuse_z10 AS -( -SELECT osm_id, - geometry, - landuse, - amenity, - leisure, - tourism, - place, - waterway -FROM osm_landuse_polygon_gen4 - ); - --- etldoc: osm_landuse_polygon_gen3 -> landuse_z11 -CREATE OR REPLACE VIEW landuse_z11 AS -( -SELECT osm_id, - geometry, - landuse, - amenity, - leisure, - tourism, - place, - waterway -FROM osm_landuse_polygon_gen3 - ); - --- etldoc: osm_landuse_polygon_gen2 -> landuse_z12 -CREATE OR REPLACE VIEW landuse_z12 AS -( -SELECT osm_id, - geometry, - landuse, - amenity, - leisure, - tourism, - place, - waterway -FROM osm_landuse_polygon_gen2 - ); - --- etldoc: osm_landuse_polygon_gen1 -> landuse_z13 -CREATE OR REPLACE VIEW landuse_z13 AS -( -SELECT osm_id, - geometry, - landuse, - amenity, - leisure, - tourism, - place, - waterway -FROM osm_landuse_polygon_gen1 - ); - --- etldoc: osm_landuse_polygon -> landuse_z14 -CREATE OR REPLACE VIEW landuse_z14 AS -( -SELECT osm_id, - geometry, - landuse, - amenity, - leisure, - tourism, - place, - waterway -FROM osm_landuse_polygon - ); + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_urban_areas_gen_z4_idx ON ne_50m_urban_areas_gen_z4 USING gist (geometry); -- etldoc: layer_landuse[shape=record fillcolor=lightpink, style="rounded,filled", --- etldoc: label="layer_landuse | z4|z5|z6|z7| z8 | z9 | z10 | z11| z12| z13| z14+" ] ; +-- etldoc: label="layer_landuse | z4| z5| z6| z7| z8| z9| z10| z11| z12| z13| z14+" ] ; CREATE OR REPLACE FUNCTION layer_landuse(bbox geometry, zoom_level int) RETURNS TABLE @@ -162,55 +58,136 @@ SELECT osm_id, NULLIF(waterway, '') ) AS class FROM ( - -- etldoc: landuse_z4 -> layer_landuse:z4 - SELECT * - FROM landuse_z4 + -- etldoc: ne_50m_urban_areas_gen_z4 -> layer_landuse:z4 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM ne_50m_urban_areas_gen_z4 WHERE zoom_level = 4 UNION ALL - -- etldoc: landuse_z5 -> layer_landuse:z5 - SELECT * - FROM landuse_z5 + -- etldoc: ne_50m_urban_areas_gen_z5 -> layer_landuse:z5 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM ne_50m_urban_areas_gen_z5 WHERE zoom_level = 5 UNION ALL - -- etldoc: landuse_z6 -> layer_landuse:z6 - -- etldoc: landuse_z6 -> layer_landuse:z7 - SELECT * - FROM landuse_z6 - WHERE zoom_level BETWEEN 6 AND 7 + -- etldoc: osm_landuse_polygon_gen_z6 -> layer_landuse:z6 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM osm_landuse_polygon_gen_z6 + WHERE zoom_level = 6 UNION ALL - -- etldoc: landuse_z8 -> layer_landuse:z8 - SELECT * - FROM landuse_z8 + -- etldoc: osm_landuse_polygon_gen_z7 -> layer_landuse:z7 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM osm_landuse_polygon_gen_z7 + WHERE zoom_level = 7 + UNION ALL + -- etldoc: osm_landuse_polygon_gen_z8 -> layer_landuse:z8 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM osm_landuse_polygon_gen_z8 WHERE zoom_level = 8 UNION ALL - -- etldoc: landuse_z9 -> layer_landuse:z9 - SELECT * - FROM landuse_z9 + -- etldoc: osm_landuse_polygon_gen_z9 -> layer_landuse:z9 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM osm_landuse_polygon_gen_z9 WHERE zoom_level = 9 UNION ALL - -- etldoc: landuse_z10 -> layer_landuse:z10 - SELECT * - FROM landuse_z10 + -- etldoc: osm_landuse_polygon_gen_z10 -> layer_landuse:z10 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM osm_landuse_polygon_gen_z10 WHERE zoom_level = 10 UNION ALL - -- etldoc: landuse_z11 -> layer_landuse:z11 - SELECT * - FROM landuse_z11 + -- etldoc: osm_landuse_polygon_gen_z11 -> layer_landuse:z11 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM osm_landuse_polygon_gen_z11 WHERE zoom_level = 11 UNION ALL - -- etldoc: landuse_z12 -> layer_landuse:z12 - SELECT * - FROM landuse_z12 + -- etldoc: osm_landuse_polygon_gen_z12 -> layer_landuse:z12 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM osm_landuse_polygon_gen_z12 WHERE zoom_level = 12 UNION ALL - -- etldoc: landuse_z13 -> layer_landuse:z13 - SELECT * - FROM landuse_z13 + -- etldoc: osm_landuse_polygon_gen_z13 -> layer_landuse:z13 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM osm_landuse_polygon_gen_z13 WHERE zoom_level = 13 UNION ALL - -- etldoc: landuse_z14 -> layer_landuse:z14 - SELECT * - FROM landuse_z14 + -- etldoc: osm_landuse_polygon -> layer_landuse:z14 + SELECT osm_id, + geometry, + landuse, + amenity, + leisure, + tourism, + place, + waterway + FROM osm_landuse_polygon WHERE zoom_level >= 14 ) AS zoom_levels WHERE geometry && bbox; diff --git a/layers/landuse/mapping.yaml b/layers/landuse/mapping.yaml index b3970f3..7d8ecf1 100644 --- a/layers/landuse/mapping.yaml +++ b/layers/landuse/mapping.yaml @@ -1,35 +1,41 @@ generalized_tables: - # etldoc: imposm3 -> osm_landuse_polygon_gen7 - landuse_polygon_gen7: - source: landuse_polygon_gen6 + # etldoc: osm_landuse_polygon_gen_z7 -> osm_landuse_polygon_gen_z6 + landuse_polygon_gen_z6: + source: landuse_polygon_gen_z7 + tolerance: ZRES6 + sql_filter: area>power(ZRES6,2) + # etldoc: osm_landuse_polygon_gen_z8 -> osm_landuse_polygon_gen_z7 + landuse_polygon_gen_z7: + source: landuse_polygon_gen_z8 tolerance: ZRES7 - # etldoc: imposm3 -> osm_landuse_polygon_gen6 - landuse_polygon_gen6: - source: landuse_polygon_gen5 + sql_filter: area>power(ZRES6,2) + # etldoc: osm_landuse_polygon_gen_z9 -> osm_landuse_polygon_gen_z8 + landuse_polygon_gen_z8: + source: landuse_polygon_gen_z9 sql_filter: area>power(ZRES6,2) AND (landuse='residential' OR place='suburb' OR place='neighbourhood') tolerance: ZRES8 - # etldoc: imposm3 -> osm_landuse_polygon_gen5 - landuse_polygon_gen5: - source: landuse_polygon_gen4 + # etldoc: osm_landuse_polygon_gen_z10 -> osm_landuse_polygon_gen_z9 + landuse_polygon_gen_z9: + source: landuse_polygon_gen_z10 sql_filter: area>power(ZRES7,2) tolerance: ZRES9 - # etldoc: imposm3 -> osm_landuse_polygon_gen4 - landuse_polygon_gen4: - source: landuse_polygon_gen3 + # etldoc: osm_landuse_polygon_gen_z11 -> osm_landuse_polygon_gen_z10 + landuse_polygon_gen_z10: + source: landuse_polygon_gen_z11 sql_filter: area>power(ZRES8,2) tolerance: ZRES10 - # etldoc: imposm3 -> osm_landuse_polygon_gen3 - landuse_polygon_gen3: - source: landuse_polygon_gen2 + # etldoc: osm_landuse_polygon_gen_z12 -> osm_landuse_polygon_gen_z11 + landuse_polygon_gen_z11: + source: landuse_polygon_gen_z12 sql_filter: area>power(ZRES9,2) tolerance: ZRES11 - # etldoc: imposm3 -> osm_landuse_polygon_gen2 - landuse_polygon_gen2: - source: landuse_polygon_gen1 + # etldoc: osm_landuse_polygon_gen_z13 -> osm_landuse_polygon_gen_z12 + landuse_polygon_gen_z12: + source: landuse_polygon_gen_z13 sql_filter: area>power(ZRES10,2) tolerance: ZRES12 - # etldoc: imposm3 -> osm_landuse_polygon_gen1 - landuse_polygon_gen1: + # etldoc: osm_landuse_polygon -> osm_landuse_polygon_gen_z13 + landuse_polygon_gen_z13: source: landuse_polygon sql_filter: area>power(ZRES11,2) AND ST_IsValid(geometry) tolerance: ZRES13 diff --git a/layers/park/etl_diagram.png b/layers/park/etl_diagram.png index 8c1a744..82e6ccd 100644 Binary files a/layers/park/etl_diagram.png and b/layers/park/etl_diagram.png differ diff --git a/layers/park/mapping.yaml b/layers/park/mapping.yaml index e06cb2c..0fa51e2 100644 --- a/layers/park/mapping.yaml +++ b/layers/park/mapping.yaml @@ -1,48 +1,48 @@ generalized_tables: - # etldoc: imposm3 -> osm_park_polygon_gen8 - park_polygon_gen8: - source: park_polygon_gen7 + # etldoc: osm_park_polygon_gen_z7 -> osm_park_polygon_gen_z6 + park_polygon_gen_z6: + source: park_polygon_gen_z7 sql_filter: area>power(ZRES5,2) tolerance: ZRES8 - # etldoc: imposm3 -> osm_park_polygon_gen7 - park_polygon_gen7: - source: park_polygon_gen6 + # etldoc: osm_park_polygon_gen_z8 -> osm_park_polygon_gen_z7 + park_polygon_gen_z7: + source: park_polygon_gen_z8 sql_filter: area>power(ZRES6,2) tolerance: ZRES8 - # etldoc: imposm3 -> osm_park_polygon_gen6 - park_polygon_gen6: - source: park_polygon_gen5 + # etldoc: osm_park_polygon_gen_z9 -> osm_park_polygon_gen_z8 + park_polygon_gen_z8: + source: park_polygon_gen_z9 sql_filter: area>power(ZRES7,2) tolerance: ZRES9 - # etldoc: imposm3 -> osm_park_polygon_gen5 - park_polygon_gen5: - source: park_polygon_gen4 + # etldoc: osm_park_polygon_gen_z10 -> osm_park_polygon_gen_z9 + park_polygon_gen_z9: + source: park_polygon_gen_z10 sql_filter: area>power(ZRES8,2) tolerance: ZRES10 - # etldoc: imposm3 -> osm_park_polygon_gen4 - park_polygon_gen4: - source: park_polygon_gen3 + # etldoc: osm_park_polygon_gen_z11 -> osm_park_polygon_gen_z10 + park_polygon_gen_z10: + source: park_polygon_gen_z11 sql_filter: area>power(ZRES9,2) tolerance: ZRES11 - # etldoc: imposm3 -> osm_park_polygon_gen3 - park_polygon_gen3: - source: park_polygon_gen2 + # etldoc: osm_park_polygon_gen_z12 -> osm_park_polygon_gen_z11 + park_polygon_gen_z11: + source: park_polygon_gen_z12 sql_filter: area>power(ZRES10,2) tolerance: ZRES11 - # etldoc: imposm3 -> osm_park_polygon_gen2 - park_polygon_gen2: - source: park_polygon_gen1 + # etldoc: osm_park_polygon_gen_z13 -> osm_park_polygon_gen_z12 + park_polygon_gen_z12: + source: park_polygon_gen_z13 sql_filter: area>power(ZRES11,2) tolerance: ZRES12 - # etldoc: imposm3 -> osm_park_polygon_gen1 - park_polygon_gen1: + # etldoc: osm_park_polygon -> osm_park_polygon_gen_z13 + park_polygon_gen_z13: source: park_polygon sql_filter: area>power(ZRES12,2) AND ST_IsValid(geometry) tolerance: ZRES13 diff --git a/layers/park/park.sql b/layers/park/park.sql index f5572f8..91e9193 100644 --- a/layers/park/park.sql +++ b/layers/park/park.sql @@ -37,7 +37,7 @@ FROM ( tags, NULL::int AS rank FROM ( - -- etldoc: osm_park_polygon_gen8 -> layer_park:z6 + -- etldoc: osm_park_polygon_gen_z6 -> layer_park:z6 SELECT osm_id, geometry, name, @@ -47,11 +47,11 @@ FROM ( leisure, boundary, protection_title - FROM osm_park_polygon_gen8 + FROM osm_park_polygon_gen_z6 WHERE zoom_level = 6 AND geometry && bbox UNION ALL - -- etldoc: osm_park_polygon_gen7 -> layer_park:z7 + -- etldoc: osm_park_polygon_gen_z7 -> layer_park:z7 SELECT osm_id, geometry, name, @@ -61,11 +61,11 @@ FROM ( leisure, boundary, protection_title - FROM osm_park_polygon_gen7 + FROM osm_park_polygon_gen_z7 WHERE zoom_level = 7 AND geometry && bbox UNION ALL - -- etldoc: osm_park_polygon_gen6 -> layer_park:z8 + -- etldoc: osm_park_polygon_gen_z8 -> layer_park:z8 SELECT osm_id, geometry, name, @@ -75,11 +75,11 @@ FROM ( leisure, boundary, protection_title - FROM osm_park_polygon_gen6 + FROM osm_park_polygon_gen_z8 WHERE zoom_level = 8 AND geometry && bbox UNION ALL - -- etldoc: osm_park_polygon_gen5 -> layer_park:z9 + -- etldoc: osm_park_polygon_gen_z9 -> layer_park:z9 SELECT osm_id, geometry, name, @@ -89,11 +89,11 @@ FROM ( leisure, boundary, protection_title - FROM osm_park_polygon_gen5 + FROM osm_park_polygon_gen_z9 WHERE zoom_level = 9 AND geometry && bbox UNION ALL - -- etldoc: osm_park_polygon_gen4 -> layer_park:z10 + -- etldoc: osm_park_polygon_gen_z10 -> layer_park:z10 SELECT osm_id, geometry, name, @@ -103,11 +103,11 @@ FROM ( leisure, boundary, protection_title - FROM osm_park_polygon_gen4 + FROM osm_park_polygon_gen_z10 WHERE zoom_level = 10 AND geometry && bbox UNION ALL - -- etldoc: osm_park_polygon_gen3 -> layer_park:z11 + -- etldoc: osm_park_polygon_gen_z11 -> layer_park:z11 SELECT osm_id, geometry, name, @@ -117,11 +117,11 @@ FROM ( leisure, boundary, protection_title - FROM osm_park_polygon_gen3 + FROM osm_park_polygon_gen_z11 WHERE zoom_level = 11 AND geometry && bbox UNION ALL - -- etldoc: osm_park_polygon_gen2 -> layer_park:z12 + -- etldoc: osm_park_polygon_gen_z12 -> layer_park:z12 SELECT osm_id, geometry, name, @@ -131,11 +131,11 @@ FROM ( leisure, boundary, protection_title - FROM osm_park_polygon_gen2 + FROM osm_park_polygon_gen_z12 WHERE zoom_level = 12 AND geometry && bbox UNION ALL - -- etldoc: osm_park_polygon_gen1 -> layer_park:z13 + -- etldoc: osm_park_polygon_gen_z13 -> layer_park:z13 SELECT osm_id, geometry, name, @@ -145,7 +145,7 @@ FROM ( leisure, boundary, protection_title - FROM osm_park_polygon_gen1 + FROM osm_park_polygon_gen_z13 WHERE zoom_level = 13 AND geometry && bbox UNION ALL @@ -184,7 +184,7 @@ FROM ( area DESC )::int AS "rank" FROM ( - -- etldoc: osm_park_polygon_gen8 -> layer_park:z6 + -- etldoc: osm_park_polygon_gen_z6 -> layer_park:z6 SELECT osm_id, geometry_point, name, @@ -195,13 +195,13 @@ FROM ( boundary, protection_title, area - FROM osm_park_polygon_gen8 + FROM osm_park_polygon_gen_z6 WHERE zoom_level = 6 AND geometry_point && bbox AND area > 70000*2^(20-zoom_level) UNION ALL - -- etldoc: osm_park_polygon_gen7 -> layer_park:z7 + -- etldoc: osm_park_polygon_gen_z7 -> layer_park:z7 SELECT osm_id, geometry_point, name, @@ -212,13 +212,13 @@ FROM ( boundary, protection_title, area - FROM osm_park_polygon_gen7 + FROM osm_park_polygon_gen_z7 WHERE zoom_level = 7 AND geometry_point && bbox AND area > 70000*2^(20-zoom_level) UNION ALL - -- etldoc: osm_park_polygon_gen6 -> layer_park:z8 + -- etldoc: osm_park_polygon_gen_z8 -> layer_park:z8 SELECT osm_id, geometry_point, name, @@ -229,13 +229,13 @@ FROM ( boundary, protection_title, area - FROM osm_park_polygon_gen6 + FROM osm_park_polygon_gen_z8 WHERE zoom_level = 8 AND geometry_point && bbox AND area > 70000*2^(20-zoom_level) UNION ALL - -- etldoc: osm_park_polygon_gen5 -> layer_park:z9 + -- etldoc: osm_park_polygon_gen_z9 -> layer_park:z9 SELECT osm_id, geometry_point, name, @@ -246,13 +246,13 @@ FROM ( boundary, protection_title, area - FROM osm_park_polygon_gen5 + FROM osm_park_polygon_gen_z9 WHERE zoom_level = 9 AND geometry_point && bbox AND area > 70000*2^(20-zoom_level) UNION ALL - -- etldoc: osm_park_polygon_gen4 -> layer_park:z10 + -- etldoc: osm_park_polygon_gen_z10 -> layer_park:z10 SELECT osm_id, geometry_point, name, @@ -263,13 +263,13 @@ FROM ( boundary, protection_title, area - FROM osm_park_polygon_gen4 + FROM osm_park_polygon_gen_z10 WHERE zoom_level = 10 AND geometry_point && bbox AND area > 70000*2^(20-zoom_level) UNION ALL - -- etldoc: osm_park_polygon_gen3 -> layer_park:z11 + -- etldoc: osm_park_polygon_gen_z11 -> layer_park:z11 SELECT osm_id, geometry_point, name, @@ -280,13 +280,13 @@ FROM ( boundary, protection_title, area - FROM osm_park_polygon_gen3 + FROM osm_park_polygon_gen_z11 WHERE zoom_level = 11 AND geometry_point && bbox AND area > 70000*2^(20-zoom_level) UNION ALL - -- etldoc: osm_park_polygon_gen2 -> layer_park:z12 + -- etldoc: osm_park_polygon_gen_z12 -> layer_park:z12 SELECT osm_id, geometry_point, name, @@ -297,13 +297,13 @@ FROM ( boundary, protection_title, area - FROM osm_park_polygon_gen2 + FROM osm_park_polygon_gen_z12 WHERE zoom_level = 12 AND geometry_point && bbox AND area > 70000*2^(20-zoom_level) UNION ALL - -- etldoc: osm_park_polygon_gen1 -> layer_park:z13 + -- etldoc: osm_park_polygon_gen_z13 -> layer_park:z13 SELECT osm_id, geometry_point, name, @@ -314,7 +314,7 @@ FROM ( boundary, protection_title, area - FROM osm_park_polygon_gen1 + FROM osm_park_polygon_gen_z13 WHERE zoom_level = 13 AND geometry_point && bbox AND area > 70000*2^(20-zoom_level) diff --git a/layers/park/update_park_polygon.sql b/layers/park/update_park_polygon.sql index 23fe2f6..3f30b6f 100644 --- a/layers/park/update_park_polygon.sql +++ b/layers/park/update_park_polygon.sql @@ -1,41 +1,41 @@ ALTER TABLE osm_park_polygon ADD COLUMN IF NOT EXISTS geometry_point geometry; -ALTER TABLE osm_park_polygon_gen1 +ALTER TABLE osm_park_polygon_gen_z13 ADD COLUMN IF NOT EXISTS geometry_point geometry; -ALTER TABLE osm_park_polygon_gen2 +ALTER TABLE osm_park_polygon_gen_z12 ADD COLUMN IF NOT EXISTS geometry_point geometry; -ALTER TABLE osm_park_polygon_gen3 +ALTER TABLE osm_park_polygon_gen_z11 ADD COLUMN IF NOT EXISTS geometry_point geometry; -ALTER TABLE osm_park_polygon_gen4 +ALTER TABLE osm_park_polygon_gen_z10 ADD COLUMN IF NOT EXISTS geometry_point geometry; -ALTER TABLE osm_park_polygon_gen5 +ALTER TABLE osm_park_polygon_gen_z9 ADD COLUMN IF NOT EXISTS geometry_point geometry; -ALTER TABLE osm_park_polygon_gen6 +ALTER TABLE osm_park_polygon_gen_z8 ADD COLUMN IF NOT EXISTS geometry_point geometry; -ALTER TABLE osm_park_polygon_gen7 +ALTER TABLE osm_park_polygon_gen_z7 ADD COLUMN IF NOT EXISTS geometry_point geometry; -ALTER TABLE osm_park_polygon_gen8 +ALTER TABLE osm_park_polygon_gen_z6 ADD COLUMN IF NOT EXISTS geometry_point geometry; DROP TRIGGER IF EXISTS update_row ON osm_park_polygon; -DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen1; -DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen2; -DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen3; -DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen4; -DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen5; -DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen6; -DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen7; -DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen8; +DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen_z13; +DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen_z12; +DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen_z11; +DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen_z10; +DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen_z9; +DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen_z8; +DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen_z7; +DROP TRIGGER IF EXISTS update_row ON osm_park_polygon_gen_z6; -- etldoc: osm_park_polygon -> osm_park_polygon --- etldoc: osm_park_polygon_gen1 -> osm_park_polygon_gen1 --- etldoc: osm_park_polygon_gen2 -> osm_park_polygon_gen2 --- etldoc: osm_park_polygon_gen3 -> osm_park_polygon_gen3 --- etldoc: osm_park_polygon_gen4 -> osm_park_polygon_gen4 --- etldoc: osm_park_polygon_gen5 -> osm_park_polygon_gen5 --- etldoc: osm_park_polygon_gen6 -> osm_park_polygon_gen6 --- etldoc: osm_park_polygon_gen7 -> osm_park_polygon_gen7 --- etldoc: osm_park_polygon_gen8 -> osm_park_polygon_gen8 +-- etldoc: osm_park_polygon_gen_z13 -> osm_park_polygon_gen_z13 +-- etldoc: osm_park_polygon_gen_z12 -> osm_park_polygon_gen_z12 +-- etldoc: osm_park_polygon_gen_z11 -> osm_park_polygon_gen_z11 +-- etldoc: osm_park_polygon_gen_z10 -> osm_park_polygon_gen_z10 +-- etldoc: osm_park_polygon_gen_z9 -> osm_park_polygon_gen_z9 +-- etldoc: osm_park_polygon_gen_z8 -> osm_park_polygon_gen_z8 +-- etldoc: osm_park_polygon_gen_z7 -> osm_park_polygon_gen_z7 +-- etldoc: osm_park_polygon_gen_z6 -> osm_park_polygon_gen_z6 CREATE OR REPLACE FUNCTION update_osm_park_polygon() RETURNS void AS $$ BEGIN @@ -43,35 +43,35 @@ BEGIN SET tags = update_tags(tags, geometry), geometry_point = st_centroid(geometry); - UPDATE osm_park_polygon_gen1 + UPDATE osm_park_polygon_gen_z13 SET tags = update_tags(tags, geometry), geometry_point = st_centroid(geometry); - UPDATE osm_park_polygon_gen2 + UPDATE osm_park_polygon_gen_z12 SET tags = update_tags(tags, geometry), geometry_point = st_centroid(geometry); - UPDATE osm_park_polygon_gen3 + UPDATE osm_park_polygon_gen_z11 SET tags = update_tags(tags, geometry), geometry_point = st_centroid(geometry); - UPDATE osm_park_polygon_gen4 + UPDATE osm_park_polygon_gen_z10 SET tags = update_tags(tags, geometry), geometry_point = st_centroid(geometry); - UPDATE osm_park_polygon_gen5 + UPDATE osm_park_polygon_gen_z9 SET tags = update_tags(tags, geometry), geometry_point = st_centroid(geometry); - UPDATE osm_park_polygon_gen6 + UPDATE osm_park_polygon_gen_z8 SET tags = update_tags(tags, geometry), geometry_point = st_centroid(geometry); - UPDATE osm_park_polygon_gen7 + UPDATE osm_park_polygon_gen_z7 SET tags = update_tags(tags, geometry), geometry_point = st_centroid(geometry); - UPDATE osm_park_polygon_gen8 + UPDATE osm_park_polygon_gen_z6 SET tags = update_tags(tags, geometry), geometry_point = st_centroid(geometry); @@ -80,14 +80,14 @@ $$ LANGUAGE plpgsql; SELECT update_osm_park_polygon(); CREATE INDEX IF NOT EXISTS osm_park_polygon_point_geom_idx ON osm_park_polygon USING gist (geometry_point); -CREATE INDEX IF NOT EXISTS osm_park_polygon_gen1_point_geom_idx ON osm_park_polygon_gen1 USING gist (geometry_point); -CREATE INDEX IF NOT EXISTS osm_park_polygon_gen2_point_geom_idx ON osm_park_polygon_gen2 USING gist (geometry_point); -CREATE INDEX IF NOT EXISTS osm_park_polygon_gen3_point_geom_idx ON osm_park_polygon_gen3 USING gist (geometry_point); -CREATE INDEX IF NOT EXISTS osm_park_polygon_gen4_point_geom_idx ON osm_park_polygon_gen4 USING gist (geometry_point); -CREATE INDEX IF NOT EXISTS osm_park_polygon_gen5_point_geom_idx ON osm_park_polygon_gen5 USING gist (geometry_point); -CREATE INDEX IF NOT EXISTS osm_park_polygon_gen6_point_geom_idx ON osm_park_polygon_gen6 USING gist (geometry_point); -CREATE INDEX IF NOT EXISTS osm_park_polygon_gen7_point_geom_idx ON osm_park_polygon_gen7 USING gist (geometry_point); -CREATE INDEX IF NOT EXISTS osm_park_polygon_gen8_point_geom_idx ON osm_park_polygon_gen8 USING gist (geometry_point); +CREATE INDEX IF NOT EXISTS osm_park_polygon_gen_z13_point_geom_idx ON osm_park_polygon_gen_z13 USING gist (geometry_point); +CREATE INDEX IF NOT EXISTS osm_park_polygon_gen_z12_point_geom_idx ON osm_park_polygon_gen_z12 USING gist (geometry_point); +CREATE INDEX IF NOT EXISTS osm_park_polygon_gen_z11_point_geom_idx ON osm_park_polygon_gen_z11 USING gist (geometry_point); +CREATE INDEX IF NOT EXISTS osm_park_polygon_gen_z10_point_geom_idx ON osm_park_polygon_gen_z10 USING gist (geometry_point); +CREATE INDEX IF NOT EXISTS osm_park_polygon_gen_z9_point_geom_idx ON osm_park_polygon_gen_z9 USING gist (geometry_point); +CREATE INDEX IF NOT EXISTS osm_park_polygon_gen_z8_point_geom_idx ON osm_park_polygon_gen_z8 USING gist (geometry_point); +CREATE INDEX IF NOT EXISTS osm_park_polygon_gen_z7_point_geom_idx ON osm_park_polygon_gen_z7 USING gist (geometry_point); +CREATE INDEX IF NOT EXISTS osm_park_polygon_gen_z6_point_geom_idx ON osm_park_polygon_gen_z6 USING gist (geometry_point); CREATE OR REPLACE FUNCTION update_osm_park_polygon_row() @@ -109,48 +109,48 @@ EXECUTE PROCEDURE update_osm_park_polygon_row(); CREATE TRIGGER update_row BEFORE INSERT OR UPDATE - ON osm_park_polygon_gen1 + ON osm_park_polygon_gen_z13 FOR EACH ROW EXECUTE PROCEDURE update_osm_park_polygon_row(); CREATE TRIGGER update_row BEFORE INSERT OR UPDATE - ON osm_park_polygon_gen2 + ON osm_park_polygon_gen_z12 FOR EACH ROW EXECUTE PROCEDURE update_osm_park_polygon_row(); CREATE TRIGGER update_row BEFORE INSERT OR UPDATE - ON osm_park_polygon_gen3 + ON osm_park_polygon_gen_z11 FOR EACH ROW EXECUTE PROCEDURE update_osm_park_polygon_row(); CREATE TRIGGER update_row BEFORE INSERT OR UPDATE - ON osm_park_polygon_gen4 + ON osm_park_polygon_gen_z10 FOR EACH ROW EXECUTE PROCEDURE update_osm_park_polygon_row(); CREATE TRIGGER update_row BEFORE INSERT OR UPDATE - ON osm_park_polygon_gen5 + ON osm_park_polygon_gen_z9 FOR EACH ROW EXECUTE PROCEDURE update_osm_park_polygon_row(); CREATE TRIGGER update_row BEFORE INSERT OR UPDATE - ON osm_park_polygon_gen6 + ON osm_park_polygon_gen_z8 FOR EACH ROW EXECUTE PROCEDURE update_osm_park_polygon_row(); CREATE TRIGGER update_row BEFORE INSERT OR UPDATE - ON osm_park_polygon_gen7 + ON osm_park_polygon_gen_z7 FOR EACH ROW EXECUTE PROCEDURE update_osm_park_polygon_row(); CREATE TRIGGER update_row BEFORE INSERT OR UPDATE - ON osm_park_polygon_gen8 + ON osm_park_polygon_gen_z6 FOR EACH ROW EXECUTE PROCEDURE update_osm_park_polygon_row(); diff --git a/layers/transportation/etl_diagram.png b/layers/transportation/etl_diagram.png index ba57d14..cea8f26 100644 Binary files a/layers/transportation/etl_diagram.png and b/layers/transportation/etl_diagram.png differ diff --git a/layers/transportation/mapping.yaml b/layers/transportation/mapping.yaml index 7ad30f9..d8cfe48 100644 --- a/layers/transportation/mapping.yaml +++ b/layers/transportation/mapping.yaml @@ -1,55 +1,61 @@ generalized_tables: -# etldoc: imposm3 -> osm_railway_linestring_gen5 - railway_linestring_gen5: - source: railway_linestring_gen4 +# etldoc: osm_railway_linestring_gen_z9 -> osm_railway_linestring_gen_z8 + railway_linestring_gen_z8: + source: railway_linestring_gen_z9 tolerance: ZRES9 -# etldoc: imposm3 -> osm_railway_linestring_gen4 - railway_linestring_gen4: - source: railway_linestring_gen3 +# etldoc: osm_railway_linestring_gen_z10 -> osm_railway_linestring_gen_z9 + railway_linestring_gen_z9: + source: railway_linestring_gen_z10 tolerance: ZRES10 -# etldoc: imposm3 -> osm_railway_linestring_gen3 - railway_linestring_gen3: - source: railway_linestring_gen2 +# etldoc: osm_railway_linestring_gen_z11 -> osm_railway_linestring_gen_z10 + railway_linestring_gen_z10: + source: railway_linestring_gen_z11 tolerance: ZRES11 -# etldoc: imposm3 -> osm_railway_linestring_gen2 - railway_linestring_gen2: - source: railway_linestring_gen1 +# etldoc: osm_railway_linestring_gen_z12 -> osm_railway_linestring_gen_z11 + railway_linestring_gen_z11: + source: railway_linestring_gen_z12 tolerance: ZRES12 -# etldoc: imposm3 -> osm_railway_linestring_gen1 - railway_linestring_gen1: +# etldoc: osm_railway_linestring -> osm_railway_linestring_gen_z12 + railway_linestring_gen_z12: source: railway_linestring sql_filter: railway IN ('rail', 'narrow_gauge', 'light_rail') AND service='' AND ST_IsValid(geometry) tolerance: ZRES13 -# etldoc: imposm3 -> osm_aerialway_linestring_gen1 - aerialway_linestring_gen1: +# etldoc: osm_aerialway_linestring -> osm_aerialway_linestring_gen_z12 + aerialway_linestring_gen_z12: source: aerialway_linestring sql_filter: ST_IsValid(geometry) tolerance: ZRES13 -# etldoc: imposm3 -> osm_shipway_linestring_gen2 - shipway_linestring_gen2: - source: shipway_linestring_gen1 +# etldoc: osm_shipway_linestring_gen_z12 -> osm_shipway_linestring_gen_z11 + shipway_linestring_gen_z11: + source: shipway_linestring_gen_z12 tolerance: ZRES12 -# etldoc: imposm3 -> osm_shipway_linestring_gen1 - shipway_linestring_gen1: +# etldoc: osm_shipway_linestring -> osm_shipway_linestring_gen_z12 + shipway_linestring_gen_z12: source: shipway_linestring sql_filter: ST_IsValid(geometry) tolerance: ZRES13 -# etldoc: imposm3 -> osm_highway_linestring_gen2 - highway_linestring_gen2: - source: highway_linestring_gen1 +# etldoc: osm_highway_linestring_gen_z10 -> osm_highway_linestring_gen_z9 + highway_linestring_gen_z9: + source: highway_linestring_gen_z10 + sql_filter: (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link')) AND NOT is_area + tolerance: ZRES10 + +# etldoc: osm_highway_linestring_gen_z11 -> osm_highway_linestring_gen_z10 + highway_linestring_gen_z10: + source: highway_linestring_gen_z11 sql_filter: (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link')) AND NOT is_area tolerance: ZRES11 -# etldoc: imposm3 -> osm_highway_linestring_gen1 - highway_linestring_gen1: +# etldoc: osm_highway_linestring -> osm_highway_linestring_gen_z11 + highway_linestring_gen_z11: source: highway_linestring sql_filter: (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link')) AND NOT is_area AND ST_IsValid(geometry) tolerance: ZRES12 diff --git a/layers/transportation/transportation.sql b/layers/transportation/transportation.sql index bef492f..416f8c8 100644 --- a/layers/transportation/transportation.sql +++ b/layers/transportation/transportation.sql @@ -64,7 +64,7 @@ SELECT osm_id, NULLIF(mtb_scale, '') AS mtb_scale, NULLIF(surface, '') AS surface FROM ( - -- etldoc: osm_transportation_merge_linestring_gen7 -> layer_transportation:z4 + -- etldoc: osm_transportation_merge_linestring_gen_z4 -> layer_transportation:z4 SELECT osm_id, geometry, highway, @@ -89,11 +89,11 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_transportation_merge_linestring_gen7 + FROM osm_transportation_merge_linestring_gen_z4 WHERE zoom_level = 4 UNION ALL - -- etldoc: osm_transportation_merge_linestring_gen6 -> layer_transportation:z5 + -- etldoc: osm_transportation_merge_linestring_gen_z5 -> layer_transportation:z5 SELECT osm_id, geometry, highway, @@ -118,11 +118,11 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_transportation_merge_linestring_gen6 + FROM osm_transportation_merge_linestring_gen_z5 WHERE zoom_level = 5 UNION ALL - -- etldoc: osm_transportation_merge_linestring_gen5 -> layer_transportation:z6 + -- etldoc: osm_transportation_merge_linestring_gen_z6 -> layer_transportation:z6 SELECT osm_id, geometry, highway, @@ -147,11 +147,11 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_transportation_merge_linestring_gen5 + FROM osm_transportation_merge_linestring_gen_z6 WHERE zoom_level = 6 UNION ALL - -- etldoc: osm_transportation_merge_linestring_gen4 -> layer_transportation:z7 + -- etldoc: osm_transportation_merge_linestring_gen_z7 -> layer_transportation:z7 SELECT osm_id, geometry, highway, @@ -176,11 +176,11 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_transportation_merge_linestring_gen4 + FROM osm_transportation_merge_linestring_gen_z7 WHERE zoom_level = 7 UNION ALL - -- etldoc: osm_transportation_merge_linestring_gen3 -> layer_transportation:z8 + -- etldoc: osm_transportation_merge_linestring_gen_z8 -> layer_transportation:z8 SELECT osm_id, geometry, highway, @@ -205,12 +205,11 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_transportation_merge_linestring_gen3 + FROM osm_transportation_merge_linestring_gen_z8 WHERE zoom_level = 8 UNION ALL - -- etldoc: osm_highway_linestring_gen2 -> layer_transportation:z9 - -- etldoc: osm_highway_linestring_gen2 -> layer_transportation:z10 + -- etldoc: osm_highway_linestring_gen_z9 -> layer_transportation:z9 SELECT osm_id, geometry, highway, @@ -235,12 +234,12 @@ FROM ( mtb_scale, NULL AS surface, z_order - FROM osm_highway_linestring_gen2 - WHERE zoom_level BETWEEN 9 AND 10 - AND st_length(geometry) > zres(11) + FROM osm_highway_linestring_gen_z9 + WHERE zoom_level = 9 + AND ST_Length(geometry) > ZRes(11) UNION ALL - -- etldoc: osm_highway_linestring_gen1 -> layer_transportation:z11 + -- etldoc: osm_highway_linestring_gen_z10 -> layer_transportation:z10 SELECT osm_id, geometry, highway, @@ -265,14 +264,44 @@ FROM ( mtb_scale, NULL AS surface, z_order - FROM osm_highway_linestring_gen1 + FROM osm_highway_linestring_gen_z10 + WHERE zoom_level = 10 + AND ST_Length(geometry) > ZRes(11) + UNION ALL + + -- etldoc: osm_highway_linestring_gen_z11 -> layer_transportation:z11 + SELECT osm_id, + geometry, + highway, + construction, + NULL AS railway, + NULL AS aerialway, + NULL AS shipway, + NULL AS public_transport, + NULL AS service, + is_bridge, + is_tunnel, + is_ford, + NULL::boolean AS is_ramp, + NULL::int AS is_oneway, + NULL AS man_made, + layer, + NULL::int AS level, + NULL::boolean AS indoor, + bicycle, + foot, + horse, + mtb_scale, + NULL AS surface, + z_order + FROM osm_highway_linestring_gen_z11 WHERE zoom_level = 11 - AND st_length(geometry) > zres(12) + AND ST_Length(geometry) > ZRes(12) UNION ALL - -- etldoc: osm_highway_linestring -> layer_transportation:z12 - -- etldoc: osm_highway_linestring -> layer_transportation:z13 - -- etldoc: osm_highway_linestring -> layer_transportation:z14_ + -- etldoc: osm_highway_linestring -> layer_transportation:z12 + -- etldoc: osm_highway_linestring -> layer_transportation:z13 + -- etldoc: osm_highway_linestring -> layer_transportation:z14_ SELECT osm_id, geometry, highway, @@ -320,7 +349,7 @@ FROM ( ) UNION ALL - -- etldoc: osm_railway_linestring_gen5 -> layer_transportation:z8 + -- etldoc: osm_railway_linestring_gen_z8 -> layer_transportation:z8 SELECT osm_id, geometry, NULL AS highway, @@ -345,14 +374,14 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_railway_linestring_gen5 + FROM osm_railway_linestring_gen_z8 WHERE zoom_level = 8 AND railway = 'rail' AND service = '' AND usage = 'main' UNION ALL - -- etldoc: osm_railway_linestring_gen4 -> layer_transportation:z9 + -- etldoc: osm_railway_linestring_gen_z9 -> layer_transportation:z9 SELECT osm_id, geometry, NULL AS highway, @@ -377,14 +406,14 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_railway_linestring_gen4 + FROM osm_railway_linestring_gen_z9 WHERE zoom_level = 9 AND railway = 'rail' AND service = '' AND usage = 'main' UNION ALL - -- etldoc: osm_railway_linestring_gen3 -> layer_transportation:z10 + -- etldoc: osm_railway_linestring_gen_z10 -> layer_transportation:z10 SELECT osm_id, geometry, NULL AS highway, @@ -409,13 +438,13 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_railway_linestring_gen3 + FROM osm_railway_linestring_gen_z10 WHERE zoom_level = 10 AND railway IN ('rail', 'narrow_gauge') AND service = '' UNION ALL - -- etldoc: osm_railway_linestring_gen2 -> layer_transportation:z11 + -- etldoc: osm_railway_linestring_gen_z11 -> layer_transportation:z11 SELECT osm_id, geometry, NULL AS highway, @@ -440,13 +469,13 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_railway_linestring_gen2 + FROM osm_railway_linestring_gen_z11 WHERE zoom_level = 11 AND railway IN ('rail', 'narrow_gauge', 'light_rail') AND service = '' UNION ALL - -- etldoc: osm_railway_linestring_gen1 -> layer_transportation:z12 + -- etldoc: osm_railway_linestring_gen_z12 -> layer_transportation:z12 SELECT osm_id, geometry, NULL AS highway, @@ -471,14 +500,14 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_railway_linestring_gen1 + FROM osm_railway_linestring_gen_z12 WHERE zoom_level = 12 AND railway IN ('rail', 'narrow_gauge', 'light_rail') AND service = '' UNION ALL - -- etldoc: osm_railway_linestring -> layer_transportation:z13 - -- etldoc: osm_railway_linestring -> layer_transportation:z14_ + -- etldoc: osm_railway_linestring -> layer_transportation:z13 + -- etldoc: osm_railway_linestring -> layer_transportation:z14_ SELECT osm_id, geometry, NULL AS highway, @@ -505,11 +534,12 @@ FROM ( z_order FROM osm_railway_linestring WHERE zoom_level = 13 - AND railway IN ('rail', 'narrow_gauge', 'light_rail') AND service = '' - OR zoom_level >= 14 + AND railway IN ('rail', 'narrow_gauge', 'light_rail') + AND service = '' + OR zoom_level >= 14 UNION ALL - -- etldoc: osm_aerialway_linestring_gen1 -> layer_transportation:z12 + -- etldoc: osm_aerialway_linestring_gen_z12 -> layer_transportation:z12 SELECT osm_id, geometry, NULL AS highway, @@ -534,12 +564,12 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_aerialway_linestring_gen1 + FROM osm_aerialway_linestring_gen_z12 WHERE zoom_level = 12 UNION ALL - -- etldoc: osm_aerialway_linestring -> layer_transportation:z13 - -- etldoc: osm_aerialway_linestring -> layer_transportation:z14_ + -- etldoc: osm_aerialway_linestring -> layer_transportation:z13 + -- etldoc: osm_aerialway_linestring -> layer_transportation:z14_ SELECT osm_id, geometry, NULL AS highway, @@ -568,7 +598,7 @@ FROM ( WHERE zoom_level >= 13 UNION ALL - -- etldoc: osm_shipway_linestring_gen2 -> layer_transportation:z11 + -- etldoc: osm_shipway_linestring_gen_z11 -> layer_transportation:z11 SELECT osm_id, geometry, NULL AS highway, @@ -593,11 +623,11 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_shipway_linestring_gen2 + FROM osm_shipway_linestring_gen_z11 WHERE zoom_level = 11 UNION ALL - -- etldoc: osm_shipway_linestring_gen1 -> layer_transportation:z12 + -- etldoc: osm_shipway_linestring_gen_z12 -> layer_transportation:z12 SELECT osm_id, geometry, NULL AS highway, @@ -622,12 +652,12 @@ FROM ( NULL AS mtb_scale, NULL AS surface, z_order - FROM osm_shipway_linestring_gen1 + FROM osm_shipway_linestring_gen_z12 WHERE zoom_level = 12 UNION ALL - -- etldoc: osm_shipway_linestring -> layer_transportation:z13 - -- etldoc: osm_shipway_linestring -> layer_transportation:z14_ + -- etldoc: osm_shipway_linestring -> layer_transportation:z13 + -- etldoc: osm_shipway_linestring -> layer_transportation:z14_ SELECT osm_id, geometry, NULL AS highway, @@ -660,8 +690,8 @@ FROM ( -- careful to net get false positives here because -- it is possible that closed linestrings appear both as -- highway linestrings and as polygon - -- etldoc: osm_highway_polygon -> layer_transportation:z13 - -- etldoc: osm_highway_polygon -> layer_transportation:z14_ + -- etldoc: osm_highway_polygon -> layer_transportation:z13 + -- etldoc: osm_highway_polygon -> layer_transportation:z14_ SELECT osm_id, geometry, highway, diff --git a/layers/transportation/update_transportation_merge.sql b/layers/transportation/update_transportation_merge.sql index 34fee70..e77cd10 100644 --- a/layers/transportation/update_transportation_merge.sql +++ b/layers/transportation/update_transportation_merge.sql @@ -1,11 +1,3 @@ -DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring CASCADE; -DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen3 CASCADE; -DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen4 CASCADE; -DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen5 CASCADE; -DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen6 CASCADE; -DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen7 CASCADE; - - DROP TRIGGER IF EXISTS trigger_flag_transportation ON osm_highway_linestring; DROP TRIGGER IF EXISTS trigger_refresh ON transportation.updates; @@ -21,6 +13,7 @@ CREATE INDEX IF NOT EXISTS osm_highway_linestring_highway_partial_idx WHERE highway IN ('motorway', 'trunk', 'primary', 'construction'); -- etldoc: osm_highway_linestring -> osm_transportation_merge_linestring +DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring CASCADE; CREATE MATERIALIZED VIEW osm_transportation_merge_linestring AS ( SELECT (ST_Dump(geometry)).geom AS geometry, @@ -52,73 +45,113 @@ CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_highway_partial_i ON osm_transportation_merge_linestring (highway, construction) WHERE highway IN ('motorway', 'trunk', 'primary', 'construction'); --- etldoc: osm_transportation_merge_linestring -> osm_transportation_merge_linestring_gen3 -CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen3 AS +-- etldoc: osm_transportation_merge_linestring -> osm_transportation_merge_linestring_gen_z8 +DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen_z8 CASCADE; +CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z8 AS ( -SELECT ST_Simplify(geometry, 120) AS geometry, osm_id, highway, construction, is_bridge, is_tunnel, is_ford, z_order +SELECT ST_Simplify(geometry, ZRes(10)) AS geometry, + osm_id, + highway, + construction, + is_bridge, + is_tunnel, + is_ford, + z_order FROM osm_transportation_merge_linestring WHERE highway IN ('motorway', 'trunk', 'primary') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary') ) /* DELAY_MATERIALIZED_VIEW_CREATION */; -CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen3_geometry_idx - ON osm_transportation_merge_linestring_gen3 USING gist (geometry); -CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen3_highway_partial_idx - ON osm_transportation_merge_linestring_gen3 (highway, construction) +CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen_z8_geometry_idx + ON osm_transportation_merge_linestring_gen_z8 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen_z8_highway_partial_idx + ON osm_transportation_merge_linestring_gen_z8 (highway, construction) WHERE highway IN ('motorway', 'trunk', 'primary', 'construction'); --- etldoc: osm_transportation_merge_linestring_gen3 -> osm_transportation_merge_linestring_gen4 -CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen4 AS +-- etldoc: osm_transportation_merge_linestring_gen_z8 -> osm_transportation_merge_linestring_gen_z7 +DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen_z7 CASCADE; +CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z7 AS ( -SELECT ST_Simplify(geometry, 200) AS geometry, osm_id, highway, construction, is_bridge, is_tunnel, is_ford, z_order -FROM osm_transportation_merge_linestring_gen3 +SELECT ST_Simplify(geometry, ZRes(9)) AS geometry, + osm_id, + highway, + construction, + is_bridge, + is_tunnel, + is_ford, + z_order +FROM osm_transportation_merge_linestring_gen_z8 WHERE (highway IN ('motorway', 'trunk', 'primary') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary')) AND ST_Length(geometry) > 50 ) /* DELAY_MATERIALIZED_VIEW_CREATION */; -CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen4_geometry_idx - ON osm_transportation_merge_linestring_gen4 USING gist (geometry); -CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen4_highway_partial_idx - ON osm_transportation_merge_linestring_gen4 (highway, construction) +CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen_z7_geometry_idx + ON osm_transportation_merge_linestring_gen_z7 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen_z7_highway_partial_idx + ON osm_transportation_merge_linestring_gen_z7 (highway, construction) WHERE highway IN ('motorway', 'trunk', 'primary', 'construction'); --- etldoc: osm_transportation_merge_linestring_gen4 -> osm_transportation_merge_linestring_gen5 -CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen5 AS +-- etldoc: osm_transportation_merge_linestring_gen_z7 -> osm_transportation_merge_linestring_gen_z6 +DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen_z6 CASCADE; +CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z6 AS ( -SELECT ST_Simplify(geometry, 500) AS geometry, osm_id, highway, construction, is_bridge, is_tunnel, is_ford, z_order -FROM osm_transportation_merge_linestring_gen4 +SELECT ST_Simplify(geometry, ZRes(8)) AS geometry, + osm_id, + highway, + construction, + is_bridge, + is_tunnel, + is_ford, + z_order +FROM osm_transportation_merge_linestring_gen_z7 WHERE (highway IN ('motorway', 'trunk') OR highway = 'construction' AND construction IN ('motorway', 'trunk')) AND ST_Length(geometry) > 100 ) /* DELAY_MATERIALIZED_VIEW_CREATION */; -CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen5_geometry_idx - ON osm_transportation_merge_linestring_gen5 USING gist (geometry); -CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen5_highway_partial_idx - ON osm_transportation_merge_linestring_gen5 (highway, construction) +CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen_z6_geometry_idx + ON osm_transportation_merge_linestring_gen_z6 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen_z6_highway_partial_idx + ON osm_transportation_merge_linestring_gen_z6 (highway, construction) WHERE highway IN ('motorway', 'trunk', 'construction'); --- etldoc: osm_transportation_merge_linestring_gen5 -> osm_transportation_merge_linestring_gen6 -CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen6 AS +-- etldoc: osm_transportation_merge_linestring_gen_z6 -> osm_transportation_merge_linestring_gen_z5 +DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen_z5 CASCADE; +CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z5 AS ( -SELECT ST_Simplify(geometry, 1000) AS geometry, osm_id, highway, construction, is_bridge, is_tunnel, is_ford, z_order -FROM osm_transportation_merge_linestring_gen5 +SELECT ST_Simplify(geometry, ZRes(7)) AS geometry, + osm_id, + highway, + construction, + is_bridge, + is_tunnel, + is_ford, + z_order +FROM osm_transportation_merge_linestring_gen_z6 WHERE (highway IN ('motorway', 'trunk') OR highway = 'construction' AND construction IN ('motorway', 'trunk')) AND ST_Length(geometry) > 500 ) /* DELAY_MATERIALIZED_VIEW_CREATION */; -CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen6_geometry_idx - ON osm_transportation_merge_linestring_gen6 USING gist (geometry); -CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen6_highway_partial_idx - ON osm_transportation_merge_linestring_gen6 (highway, construction) +CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen_z5_geometry_idx + ON osm_transportation_merge_linestring_gen_z5 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen_z5_highway_partial_idx + ON osm_transportation_merge_linestring_gen_z5 (highway, construction) WHERE highway IN ('motorway', 'trunk', 'construction'); --- etldoc: osm_transportation_merge_linestring_gen6 -> osm_transportation_merge_linestring_gen7 -CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen7 AS +-- etldoc: osm_transportation_merge_linestring_gen_z5 -> osm_transportation_merge_linestring_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS osm_transportation_merge_linestring_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z4 AS ( -SELECT ST_Simplify(geometry, 2000) AS geometry, osm_id, highway, construction, is_bridge, is_tunnel, is_ford, z_order -FROM osm_transportation_merge_linestring_gen6 +SELECT ST_Simplify(geometry, ZRes(6)) AS geometry, + osm_id, + highway, + construction, + is_bridge, + is_tunnel, + is_ford, + z_order +FROM osm_transportation_merge_linestring_gen_z5 WHERE (highway = 'motorway' OR highway = 'construction' AND construction = 'motorway') AND ST_Length(geometry) > 1000 ) /* DELAY_MATERIALIZED_VIEW_CREATION */; -CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen7_geometry_idx - ON osm_transportation_merge_linestring_gen7 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen_z4_geometry_idx + ON osm_transportation_merge_linestring_gen_z4 USING gist (geometry); -- Handle updates @@ -146,11 +179,11 @@ DECLARE BEGIN RAISE LOG 'Refresh transportation'; REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring; - REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen3; - REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen4; - REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen5; - REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen6; - REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen7; + REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z8; + REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z7; + REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z6; + REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z5; + REFRESH MATERIALIZED VIEW osm_transportation_merge_linestring_gen_z4; -- noinspection SqlWithoutWhere DELETE FROM transportation.updates; @@ -170,4 +203,4 @@ CREATE CONSTRAINT TRIGGER trigger_refresh ON transportation.updates INITIALLY DEFERRED FOR EACH ROW -EXECUTE PROCEDURE transportation.refresh(); +EXECUTE PROCEDURE transportation.refresh(); \ No newline at end of file diff --git a/layers/transportation_name/etl_diagram.png b/layers/transportation_name/etl_diagram.png index 049f63f..7ed7a04 100644 Binary files a/layers/transportation_name/etl_diagram.png and b/layers/transportation_name/etl_diagram.png differ diff --git a/layers/water/etl_diagram.png b/layers/water/etl_diagram.png index 1ba8125..5563571 100644 Binary files a/layers/water/etl_diagram.png and b/layers/water/etl_diagram.png differ diff --git a/layers/water/mapping.yaml b/layers/water/mapping.yaml index 9987dc5..0e3b865 100644 --- a/layers/water/mapping.yaml +++ b/layers/water/mapping.yaml @@ -1,39 +1,38 @@ generalized_tables: - - # etldoc: imposm3 -> osm_water_polygon_gen6 - water_polygon_gen6: - source: water_polygon_gen5 + # etldoc: osm_water_polygon_gen_z7 -> osm_water_polygon_gen_z6 + water_polygon_gen_z6: + source: water_polygon_gen_z7 sql_filter: area>power(ZRES5,2) tolerance: ZRES7 - # etldoc: imposm3 -> osm_water_polygon_gen5 - water_polygon_gen5: - source: water_polygon_gen4 + # etldoc: osm_water_polygon_gen_z8 -> osm_water_polygon_gen_z7 + water_polygon_gen_z7: + source: water_polygon_gen_z8 sql_filter: area>power(ZRES6,2) tolerance: ZRES8 - # etldoc: imposm3 -> osm_water_polygon_gen4 - water_polygon_gen4: - source: water_polygon_gen3 + # etldoc: osm_water_polygon_gen_z9 -> osm_water_polygon_gen_z8 + water_polygon_gen_z8: + source: water_polygon_gen_z9 sql_filter: area>power(ZRES7,2) tolerance: ZRES9 - # etldoc: imposm3 -> osm_water_polygon_gen3 - water_polygon_gen3: - source: water_polygon_gen2 + # etldoc: osm_water_polygon_gen_z10 -> osm_water_polygon_gen_z9 + water_polygon_gen_z9: + source: water_polygon_gen_z10 sql_filter: area>power(ZRES8,2) tolerance: ZRES10 - # etldoc: imposm3 -> osm_water_polygon_gen2 - water_polygon_gen2: - source: water_polygon_gen1 + # etldoc: osm_water_polygon_gen_z11 -> osm_water_polygon_gen_z10 + water_polygon_gen_z10: + source: water_polygon_gen_z11 sql_filter: area>power(ZRES9,2) tolerance: ZRES11 - # etldoc: imposm3 -> osm_water_polygon_gen1 - water_polygon_gen1: + # etldoc: osm_water_polygon -> osm_water_polygon_gen_z11 + water_polygon_gen_z11: source: water_polygon - sql_filter: area>power(ZRES10,2) AND ST_IsValid(geometry) + sql_filter: area>power(ZRES10,2) tolerance: ZRES12 tunnel_field: &tunnel diff --git a/layers/water/update_water.sql b/layers/water/update_water.sql index 1f3f387..b85ad24 100644 --- a/layers/water/update_water.sql +++ b/layers/water/update_water.sql @@ -26,77 +26,117 @@ TRUNCATE TABLE osm_ocean_polygon; DO $$ BEGIN - DROP TABLE IF EXISTS osm_ocean_polygon_gen1 CASCADE; + DROP TABLE IF EXISTS osm_ocean_polygon_gen_z11 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_ocean_polygon_union -> osm_ocean_polygon_gen1 -DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen1 CASCADE; -CREATE MATERIALIZED VIEW osm_ocean_polygon_gen1 AS +-- etldoc: osm_ocean_polygon_union -> osm_ocean_polygon_gen_z11 +DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen_z11 CASCADE; +CREATE MATERIALIZED VIEW osm_ocean_polygon_gen_z11 AS ( -SELECT ST_Simplify(geometry, 20) AS geometry +SELECT ST_Simplify(geometry, ZRes(13)) AS geometry FROM osm_ocean_polygon_union ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen1_idx ON osm_ocean_polygon_gen1 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen_z11_idx ON osm_ocean_polygon_gen_z11 USING gist (geometry); -- This statement can be deleted after the water importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_ocean_polygon_gen2 CASCADE; + DROP TABLE IF EXISTS osm_ocean_polygon_gen_z10 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_ocean_polygon_union -> osm_ocean_polygon_gen2 -DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen2 CASCADE; -CREATE MATERIALIZED VIEW osm_ocean_polygon_gen2 AS +-- etldoc: osm_ocean_polygon_gen_z11 -> osm_ocean_polygon_gen_z10 +DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen_z10 CASCADE; +CREATE MATERIALIZED VIEW osm_ocean_polygon_gen_z10 AS ( -SELECT ST_Simplify(geometry, 40) AS geometry -FROM osm_ocean_polygon_union +SELECT ST_Simplify(geometry, ZRes(12)) AS geometry +FROM osm_ocean_polygon_gen_z11 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen2_idx ON osm_ocean_polygon_gen2 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen_z10_idx ON osm_ocean_polygon_gen_z10 USING gist (geometry); -- This statement can be deleted after the water importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_ocean_polygon_gen3 CASCADE; + DROP TABLE IF EXISTS osm_ocean_polygon_gen_z9 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_ocean_polygon_union -> osm_ocean_polygon_gen3 -DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen3 CASCADE; -CREATE MATERIALIZED VIEW osm_ocean_polygon_gen3 AS +-- etldoc: osm_ocean_polygon_gen_z10 -> osm_ocean_polygon_gen_z9 +DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen_z9 CASCADE; +CREATE MATERIALIZED VIEW osm_ocean_polygon_gen_z9 AS ( -SELECT ST_Simplify(geometry, 80) AS geometry -FROM osm_ocean_polygon_union +SELECT ST_Simplify(geometry, ZRes(11)) AS geometry +FROM osm_ocean_polygon_gen_z10 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen3_idx ON osm_ocean_polygon_gen3 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen_z9_idx ON osm_ocean_polygon_gen_z9 USING gist (geometry); -- This statement can be deleted after the water importer image stops creating this object as a table DO $$ BEGIN - DROP TABLE IF EXISTS osm_ocean_polygon_gen4 CASCADE; + DROP TABLE IF EXISTS osm_ocean_polygon_gen_z8 CASCADE; EXCEPTION WHEN wrong_object_type THEN END; $$ LANGUAGE plpgsql; --- etldoc: osm_ocean_polygon_union -> osm_ocean_polygon_gen4 -DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen4 CASCADE; -CREATE MATERIALIZED VIEW osm_ocean_polygon_gen4 AS +-- etldoc: osm_ocean_polygon_gen_z9 -> osm_ocean_polygon_gen_z8 +DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen_z8 CASCADE; +CREATE MATERIALIZED VIEW osm_ocean_polygon_gen_z8 AS ( -SELECT ST_Simplify(geometry, 160) AS geometry -FROM osm_ocean_polygon_union +SELECT ST_Simplify(geometry, ZRes(10)) AS geometry +FROM osm_ocean_polygon_gen_z9 ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 USING gist (geometry); +CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen_z8_idx ON osm_ocean_polygon_gen_z8 USING gist (geometry); + + +-- This statement can be deleted after the water importer image stops creating this object as a table +DO +$$ + BEGIN + DROP TABLE IF EXISTS osm_ocean_polygon_gen_z7 CASCADE; + EXCEPTION + WHEN wrong_object_type THEN + END; +$$ LANGUAGE plpgsql; + +-- etldoc: osm_ocean_polygon_gen_z8 -> osm_ocean_polygon_gen_z7 +DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen_z7 CASCADE; +CREATE MATERIALIZED VIEW osm_ocean_polygon_gen_z7 AS +( +SELECT ST_Simplify(geometry, ZRes(9)) AS geometry +FROM osm_ocean_polygon_gen_z8 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen_z7_idx ON osm_ocean_polygon_gen_z7 USING gist (geometry); + + +-- This statement can be deleted after the water importer image stops creating this object as a table +DO +$$ + BEGIN + DROP TABLE IF EXISTS osm_ocean_polygon_gen_z6 CASCADE; + EXCEPTION + WHEN wrong_object_type THEN + END; +$$ LANGUAGE plpgsql; + +-- etldoc: osm_ocean_polygon_gen_z7 -> osm_ocean_polygon_gen_z6 +DROP MATERIALIZED VIEW IF EXISTS osm_ocean_polygon_gen_z6 CASCADE; +CREATE MATERIALIZED VIEW osm_ocean_polygon_gen_z6 AS +( +SELECT ST_Simplify(geometry, ZRes(8)) AS geometry +FROM osm_ocean_polygon_gen_z7 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen_z6_idx ON osm_ocean_polygon_gen_z6 USING gist (geometry); diff --git a/layers/water/water.sql b/layers/water/water.sql index da2d51f..a011dec 100644 --- a/layers/water/water.sql +++ b/layers/water/water.sql @@ -18,220 +18,401 @@ $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE; - - -CREATE OR REPLACE VIEW water_z0 AS +-- ne_10m_ocean +-- etldoc: ne_10m_ocean -> ne_10m_ocean_gen_z5 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_ocean_gen_z5 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_ocean_gen_z5 AS ( --- etldoc: ne_110m_ocean -> water_z0 -SELECT geometry, - 'ocean'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM ne_110m_ocean -UNION ALL --- etldoc: ne_110m_lakes -> water_z0 -SELECT geometry, - 'lake'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM ne_110m_lakes - ); - -CREATE OR REPLACE VIEW water_z1 AS -( --- etldoc: ne_110m_ocean -> water_z1 -SELECT geometry, - 'ocean'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM ne_110m_ocean -UNION ALL --- etldoc: ne_110m_lakes -> water_z1 -SELECT geometry, - 'lake'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM ne_110m_lakes - ); - -CREATE OR REPLACE VIEW water_z2 AS -( --- etldoc: ne_50m_ocean -> water_z2 -SELECT geometry, - 'ocean'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM ne_50m_ocean -UNION ALL --- etldoc: ne_50m_lakes -> water_z2 -SELECT geometry, - 'lake'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM ne_50m_lakes - ); - -CREATE OR REPLACE VIEW water_z4 AS -( --- etldoc: ne_50m_ocean -> water_z4 -SELECT geometry, - 'ocean'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM ne_50m_ocean -UNION ALL --- etldoc: ne_10m_lakes -> water_z4 -SELECT geometry, - 'lake'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM ne_10m_lakes - ); - -CREATE OR REPLACE VIEW water_z5 AS -( --- etldoc: ne_10m_ocean -> water_z5 -SELECT geometry, +SELECT ST_Simplify(geometry, ZRes(7)) AS geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel FROM ne_10m_ocean -UNION ALL --- etldoc: ne_10m_lakes -> water_z5 -SELECT geometry, + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_ocean_gen_z5_idx ON ne_10m_ocean_gen_z5 USING gist (geometry); + +-- ne_10m_lakes +-- etldoc: ne_10m_lakes -> ne_10m_lakes_gen_z5 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_lakes_gen_z5 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_lakes_gen_z5 AS +( +SELECT ST_Simplify(geometry, ZRes(7)) AS geometry, 'lake'::text AS class, NULL::boolean AS is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel FROM ne_10m_lakes + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_lakes_gen_z5_idx ON ne_10m_lakes_gen_z5 USING gist (geometry); + +-- etldoc: ne_10m_lakes -> ne_10m_lakes_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_lakes_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_lakes_gen_z4 AS +( +SELECT ST_Simplify(geometry, ZRes(6)) AS geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_10m_lakes_gen_z5 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_lakes_gen_z4_idx ON ne_10m_lakes_gen_z4 USING gist (geometry); + +-- ne_50m_ocean +-- etldoc: ne_50m_ocean -> ne_50m_ocean_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_ocean_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_ocean_gen_z4 AS +( +SELECT ST_Simplify(geometry, ZRes(6)) AS geometry, + 'ocean'::text AS class, + NULL::boolean AS is_intermittent, + NULL::boolean AS is_bridge, + NULL::boolean AS is_tunnel +FROM ne_50m_ocean + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_ocean_gen_z4_idx ON ne_50m_ocean_gen_z4 USING gist (geometry); + +-- etldoc: ne_50m_ocean_gen_z4 -> ne_50m_ocean_gen_z3 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_ocean_gen_z3 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_ocean_gen_z3 AS +( +SELECT ST_Simplify(geometry, ZRes(5)) AS geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_50m_ocean_gen_z4 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_ocean_gen_z3_idx ON ne_50m_ocean_gen_z3 USING gist (geometry); + +-- etldoc: ne_50m_ocean_gen_z3 -> ne_50m_ocean_gen_z2 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_ocean_gen_z2 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_ocean_gen_z2 AS +( +SELECT ST_Simplify(geometry, ZRes(4)) AS geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_50m_ocean_gen_z3 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_ocean_gen_z2_idx ON ne_50m_ocean_gen_z2 USING gist (geometry); + +-- ne_50m_lakes +-- etldoc: ne_50m_lakes -> ne_50m_lakes_gen_z3 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_lakes_gen_z3 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_lakes_gen_z3 AS +( +SELECT ST_Simplify(geometry, ZRes(5)) AS geometry, + 'lakes'::text AS class, + NULL::boolean AS is_intermittent, + NULL::boolean AS is_bridge, + NULL::boolean AS is_tunnel +FROM ne_50m_lakes + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_lakes_gen_z3_idx ON ne_50m_lakes_gen_z3 USING gist (geometry); + +-- etldoc: ne_50m_lakes_gen_z3 -> ne_50m_lakes_gen_z2 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_lakes_gen_z2 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_lakes_gen_z2 AS +( +SELECT ST_Simplify(geometry, ZRes(4)) AS geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_50m_lakes_gen_z3 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_lakes_gen_z2_idx ON ne_50m_lakes_gen_z2 USING gist (geometry); + +--ne_110m_ocean +-- etldoc: ne_110m_ocean -> ne_110m_ocean_gen_z1 +DROP MATERIALIZED VIEW IF EXISTS ne_110m_ocean_gen_z1 CASCADE; +CREATE MATERIALIZED VIEW ne_110m_ocean_gen_z1 AS +( +SELECT ST_Simplify(geometry, ZRes(3)) AS geometry, + 'ocean'::text AS class, + NULL::boolean AS is_intermittent, + NULL::boolean AS is_bridge, + NULL::boolean AS is_tunnel +FROM ne_110m_ocean + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_110m_ocean_gen_z1_idx ON ne_110m_ocean_gen_z1 USING gist (geometry); + +-- etldoc: ne_110m_ocean_gen_z1 -> ne_110m_ocean_gen_z0 +DROP MATERIALIZED VIEW IF EXISTS ne_110m_ocean_gen_z0 CASCADE; +CREATE MATERIALIZED VIEW ne_110m_ocean_gen_z0 AS +( +SELECT ST_Simplify(geometry, ZRes(2)) AS geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_110m_ocean_gen_z1 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_110m_ocean_gen_z0_idx ON ne_110m_ocean_gen_z0 USING gist (geometry); + + +-- ne_110m_lakes +-- etldoc: ne_110m_lakes -> ne_110m_lakes_gen_z1 +DROP MATERIALIZED VIEW IF EXISTS ne_110m_lakes_gen_z1 CASCADE; +CREATE MATERIALIZED VIEW ne_110m_lakes_gen_z1 AS +( +SELECT ST_Simplify(geometry, ZRes(3)) AS geometry, + 'lakes'::text AS class, + NULL::boolean AS is_intermittent, + NULL::boolean AS is_bridge, + NULL::boolean AS is_tunnel +FROM ne_110m_lakes + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_110m_lakes_gen_z1_idx ON ne_110m_lakes_gen_z1 USING gist (geometry); + +-- etldoc: ne_110m_lakes_gen_z1 -> ne_110m_lakes_gen_z0 +DROP MATERIALIZED VIEW IF EXISTS ne_110m_lakes_gen_z0 CASCADE; +CREATE MATERIALIZED VIEW ne_110m_lakes_gen_z0 AS +( +SELECT ST_Simplify(geometry, ZRes(2)) AS geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_110m_lakes_gen_z1 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_110m_lakes_gen_z0_idx ON ne_110m_lakes_gen_z0 USING gist (geometry); + + +CREATE OR REPLACE VIEW water_z0 AS +( +-- etldoc: ne_110m_ocean_gen_z0 -> water_z0 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_110m_ocean_gen_z0 +UNION ALL +-- etldoc: ne_110m_lakes_gen_z0 -> water_z0 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_110m_lakes_gen_z0 + ); + +CREATE OR REPLACE VIEW water_z1 AS +( +-- etldoc: ne_110m_ocean_gen_z1 -> water_z1 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_110m_ocean_gen_z1 +UNION ALL +-- etldoc: ne_110m_lakes_gen_z1 -> water_z1 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_110m_lakes_gen_z1 + ); + +CREATE OR REPLACE VIEW water_z2 AS +( +-- etldoc: ne_50m_ocean_gen_z2 -> water_z2 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_50m_ocean_gen_z2 +UNION ALL +-- etldoc: ne_50m_lakes_gen_z2 -> water_z2 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_50m_lakes_gen_z2 + ); + +CREATE OR REPLACE VIEW water_z3 AS +( +-- etldoc: ne_50m_ocean_gen_z3 -> water_z3 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_50m_ocean_gen_z3 +UNION ALL +-- etldoc: ne_50m_lakes_gen_z3 -> water_z3 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_50m_lakes_gen_z3 + ); + +CREATE OR REPLACE VIEW water_z4 AS +( +-- etldoc: ne_50m_ocean_gen_z4 -> water_z4 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_50m_ocean_gen_z4 +UNION ALL +-- etldoc: ne_10m_lakes_gen_z4 -> water_z4 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_10m_lakes_gen_z4 + ); + +CREATE OR REPLACE VIEW water_z5 AS +( +-- etldoc: ne_10m_ocean_gen_z5 -> water_z5 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_10m_ocean_gen_z5 +UNION ALL +-- etldoc: ne_10m_lakes_gen_z5 -> water_z5 +SELECT geometry, + class, + is_intermittent, + is_bridge, + is_tunnel +FROM ne_10m_lakes_gen_z5 ); CREATE OR REPLACE VIEW water_z6 AS ( --- etldoc: osm_ocean_polygon_gen4 -> water_z6 +-- etldoc: osm_ocean_polygon_gen_z6 -> water_z6 SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_ocean_polygon_gen4 +FROM osm_ocean_polygon_gen_z6 UNION ALL --- etldoc: osm_water_polygon_gen6 -> water_z6 +-- etldoc: osm_water_polygon_gen_z6 -> water_z6 SELECT geometry, water_class(waterway) AS class, is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_water_polygon_gen6 +FROM osm_water_polygon_gen_z6 WHERE "natural" != 'bay' ); CREATE OR REPLACE VIEW water_z7 AS ( --- etldoc: osm_ocean_polygon_gen4 -> water_z7 +-- etldoc: osm_ocean_polygon_gen_z7 -> water_z7 SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_ocean_polygon_gen4 +FROM osm_ocean_polygon_gen_z7 UNION ALL --- etldoc: osm_water_polygon_gen5 -> water_z7 +-- etldoc: osm_water_polygon_gen_z7 -> water_z7 SELECT geometry, water_class(waterway) AS class, is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_water_polygon_gen5 +FROM osm_water_polygon_gen_z7 WHERE "natural" != 'bay' ); CREATE OR REPLACE VIEW water_z8 AS ( --- etldoc: osm_ocean_polygon_gen4 -> water_z8 +-- etldoc: osm_ocean_polygon_gen_z8 -> water_z8 SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_ocean_polygon_gen4 +FROM osm_ocean_polygon_gen_z8 UNION ALL --- etldoc: osm_water_polygon_gen4 -> water_z8 +-- etldoc: osm_water_polygon_gen_z8 -> water_z8 SELECT geometry, water_class(waterway) AS class, is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_water_polygon_gen4 +FROM osm_water_polygon_gen_z8 WHERE "natural" != 'bay' ); CREATE OR REPLACE VIEW water_z9 AS ( --- etldoc: osm_ocean_polygon_gen3 -> water_z9 +-- etldoc: osm_ocean_polygon_gen_z9 -> water_z9 SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_ocean_polygon_gen3 +FROM osm_ocean_polygon_gen_z9 UNION ALL --- etldoc: osm_water_polygon_gen3 -> water_z9 +-- etldoc: osm_water_polygon_gen_z9 -> water_z9 SELECT geometry, water_class(waterway) AS class, is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_water_polygon_gen3 +FROM osm_water_polygon_gen_z9 WHERE "natural" != 'bay' ); CREATE OR REPLACE VIEW water_z10 AS ( --- etldoc: osm_ocean_polygon_gen2 -> water_z10 +-- etldoc: osm_ocean_polygon_gen_z10 -> water_z10 SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_ocean_polygon_gen2 +FROM osm_ocean_polygon_gen_z10 UNION ALL --- etldoc: osm_water_polygon_gen2 -> water_z10 +-- etldoc: osm_water_polygon_gen_z10 -> water_z10 SELECT geometry, water_class(waterway) AS class, is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_water_polygon_gen2 +FROM osm_water_polygon_gen_z10 WHERE "natural" != 'bay' ); CREATE OR REPLACE VIEW water_z11 AS ( --- etldoc: osm_ocean_polygon_gen1 -> water_z11 +-- etldoc: osm_ocean_polygon_gen_z11 -> water_z11 SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_ocean_polygon_gen1 +FROM osm_ocean_polygon_gen_z11 UNION ALL --- etldoc: osm_water_polygon_gen1 -> water_z11 +-- etldoc: osm_water_polygon_gen_z11 -> water_z11 SELECT geometry, water_class(waterway) AS class, is_intermittent, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel -FROM osm_water_polygon_gen1 +FROM osm_water_polygon_gen_z11 WHERE "natural" != 'bay' ); @@ -255,48 +436,8 @@ FROM osm_water_polygon WHERE "natural" != 'bay' ); -CREATE OR REPLACE VIEW water_z13 AS -( --- etldoc: osm_ocean_polygon_union -> water_z13 -SELECT geometry, - 'ocean'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM osm_ocean_polygon_union -UNION ALL --- etldoc: osm_water_polygon -> water_z13 -SELECT geometry, - water_class(waterway) AS class, - is_intermittent, - is_bridge, - is_tunnel -FROM osm_water_polygon -WHERE "natural" != 'bay' - ); - -CREATE OR REPLACE VIEW water_z14 AS -( --- etldoc: osm_ocean_polygon_union -> water_z14 -SELECT geometry, - 'ocean'::text AS class, - NULL::boolean AS is_intermittent, - NULL::boolean AS is_bridge, - NULL::boolean AS is_tunnel -FROM osm_ocean_polygon_union -UNION ALL --- etldoc: osm_water_polygon -> water_z14 -SELECT geometry, - water_class(waterway) AS class, - is_intermittent, - is_bridge, - is_tunnel -FROM osm_water_polygon -WHERE "natural" != 'bay' - ); - -- etldoc: layer_water [shape=record fillcolor=lightpink, style="rounded,filled", --- etldoc: label="layer_water | z0|z1|z2|z3 | z4|z5|z6|z7| z8 | z9 | z10 | z11 | z12| z13| z14+" ] ; +-- etldoc: label="layer_water | z0|z1|z2|z3 | z4|z5|z6|z7| z8 | z9 | z10 | z11 | z12+" ] ; CREATE OR REPLACE FUNCTION layer_water(bbox geometry, zoom_level int) RETURNS TABLE @@ -324,10 +465,14 @@ FROM ( WHERE zoom_level = 1 UNION ALL -- etldoc: water_z2 -> layer_water:z2 - -- etldoc: water_z2 -> layer_water:z3 SELECT * FROM water_z2 - WHERE zoom_level BETWEEN 2 AND 3 + WHERE zoom_level = 2 + UNION ALL + -- etldoc: water_z3 -> layer_water:z3 + SELECT * + FROM water_z3 + WHERE zoom_level = 3 UNION ALL -- etldoc: water_z4 -> layer_water:z4 SELECT * @@ -372,17 +517,7 @@ FROM ( -- etldoc: water_z12 -> layer_water:z12 SELECT * FROM water_z12 - WHERE zoom_level = 12 - UNION ALL - -- etldoc: water_z13 -> layer_water:z13 - SELECT * - FROM water_z13 - WHERE zoom_level = 13 - UNION ALL - -- etldoc: water_z14 -> layer_water:z14_ - SELECT * - FROM water_z14 - WHERE zoom_level >= 14 + WHERE zoom_level >= 12 ) AS zoom_levels WHERE geometry && bbox; $$ LANGUAGE SQL STABLE diff --git a/layers/water_name/etl_diagram.png b/layers/water_name/etl_diagram.png index 8a2ae1c..5792d42 100644 Binary files a/layers/water_name/etl_diagram.png and b/layers/water_name/etl_diagram.png differ diff --git a/layers/waterway/etl_diagram.png b/layers/waterway/etl_diagram.png index 51e77bc..7619531 100644 Binary files a/layers/waterway/etl_diagram.png and b/layers/waterway/etl_diagram.png differ diff --git a/layers/waterway/update_important_waterway.sql b/layers/waterway/update_important_waterway.sql index f608834..ae044cd 100644 --- a/layers/waterway/update_important_waterway.sql +++ b/layers/waterway/update_important_waterway.sql @@ -36,41 +36,50 @@ FROM ( CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_names ON osm_important_waterway_linestring (name); CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_geometry_idx ON osm_important_waterway_linestring USING gist (geometry); --- etldoc: osm_important_waterway_linestring -> osm_important_waterway_linestring_gen1 -CREATE OR REPLACE VIEW osm_important_waterway_linestring_gen1_view AS -SELECT ST_Simplify(geometry, 60) AS geometry, name, name_en, name_de, tags +-- etldoc: osm_important_waterway_linestring -> osm_important_waterway_linestring_gen_z11 +DROP MATERIALIZED VIEW IF EXISTS osm_important_waterway_linestring_gen_z11 CASCADE; +CREATE MATERIALIZED VIEW osm_important_waterway_linestring_gen_z11 AS +( +SELECT ST_Simplify(geometry, ZRes(12)) AS geometry, + name, + name_en, + name_de, + tags FROM osm_important_waterway_linestring -WHERE ST_Length(geometry) > 1000; +WHERE ST_Length(geometry) > 1000 + ); +CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z11_name_idx ON osm_important_waterway_linestring_gen_z11 (name); +CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z11_geometry_idx ON osm_important_waterway_linestring_gen_z11 USING gist (geometry); -CREATE TABLE IF NOT EXISTS osm_important_waterway_linestring_gen1 AS -SELECT * -FROM osm_important_waterway_linestring_gen1_view; -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen1_name_idx ON osm_important_waterway_linestring_gen1 (name); -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen1_geometry_idx ON osm_important_waterway_linestring_gen1 USING gist (geometry); +-- etldoc: osm_important_waterway_linestring_gen_z11 -> osm_important_waterway_linestring_gen_z10 +DROP MATERIALIZED VIEW IF EXISTS osm_important_waterway_linestring_gen_z10 CASCADE; +CREATE MATERIALIZED VIEW osm_important_waterway_linestring_gen_z10 AS +( +SELECT ST_Simplify(geometry, ZRes(11)) AS geometry, + name, + name_en, + name_de, + tags +FROM osm_important_waterway_linestring_gen_z11 +WHERE ST_Length(geometry) > 4000 + ); +CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z10_name_idx ON osm_important_waterway_linestring_gen_z10 (name); +CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z10_geometry_idx ON osm_important_waterway_linestring_gen_z10 USING gist (geometry); --- etldoc: osm_important_waterway_linestring_gen1 -> osm_important_waterway_linestring_gen2 -CREATE OR REPLACE VIEW osm_important_waterway_linestring_gen2_view AS -SELECT ST_Simplify(geometry, 100) AS geometry, name, name_en, name_de, tags -FROM osm_important_waterway_linestring_gen1 -WHERE ST_Length(geometry) > 4000; - -CREATE TABLE IF NOT EXISTS osm_important_waterway_linestring_gen2 AS -SELECT * -FROM osm_important_waterway_linestring_gen2_view; -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen2_name_idx ON osm_important_waterway_linestring_gen2 (name); -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen2_geometry_idx ON osm_important_waterway_linestring_gen2 USING gist (geometry); - --- etldoc: osm_important_waterway_linestring_gen2 -> osm_important_waterway_linestring_gen3 -CREATE OR REPLACE VIEW osm_important_waterway_linestring_gen3_view AS -SELECT ST_Simplify(geometry, 200) AS geometry, name, name_en, name_de, tags -FROM osm_important_waterway_linestring_gen2 -WHERE ST_Length(geometry) > 8000; - -CREATE TABLE IF NOT EXISTS osm_important_waterway_linestring_gen3 AS -SELECT * -FROM osm_important_waterway_linestring_gen3_view; -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen3_name_idx ON osm_important_waterway_linestring_gen3 (name); -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen3_geometry_idx ON osm_important_waterway_linestring_gen3 USING gist (geometry); +-- etldoc: osm_important_waterway_linestring_gen_z10 -> osm_important_waterway_linestring_gen_z9 +DROP MATERIALIZED VIEW IF EXISTS osm_important_waterway_linestring_gen_z9 CASCADE; +CREATE MATERIALIZED VIEW osm_important_waterway_linestring_gen_z9 AS +( +SELECT ST_Simplify(geometry, ZRes(10)) AS geometry, + name, + name_en, + name_de, + tags +FROM osm_important_waterway_linestring_gen_z10 +WHERE ST_Length(geometry) > 8000 + ); +CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z9_name_idx ON osm_important_waterway_linestring_gen_z9 (name); +CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z9_geometry_idx ON osm_important_waterway_linestring_gen_z9 USING gist (geometry); -- Handle updates @@ -178,47 +187,14 @@ BEGIN GROUP BY w.name, w.name_en, w.name_de, slice_language_tags(w.tags) ) AS waterway_union; - -- REFRESH sm_important_waterway_linestring_gen1 - DELETE - FROM osm_important_waterway_linestring_gen1 AS w - USING changes_compact AS c - WHERE w.name = c.name - AND w.name_en IS NOT DISTINCT FROM c.name_en - AND w.name_de IS NOT DISTINCT FROM c.name_de - AND w.tags IS NOT DISTINCT FROM c.tags; + -- REFRESH osm_important_waterway_linestring_gen_z11 + REFRESH MATERIALIZED VIEW osm_important_waterway_linestring_gen_z11; - INSERT INTO osm_important_waterway_linestring_gen1 - SELECT w.* - FROM osm_important_waterway_linestring_gen1_view AS w - NATURAL JOIN changes_compact AS c; + -- REFRESH osm_important_waterway_linestring_gen_z10 + REFRESH MATERIALIZED VIEW osm_important_waterway_linestring_gen_z10; - -- REFRESH osm_important_waterway_linestring_gen2 - DELETE - FROM osm_important_waterway_linestring_gen2 AS w - USING changes_compact AS c - WHERE w.name = c.name - AND w.name_en IS NOT DISTINCT FROM c.name_en - AND w.name_de IS NOT DISTINCT FROM c.name_de - AND w.tags IS NOT DISTINCT FROM c.tags; - - INSERT INTO osm_important_waterway_linestring_gen2 - SELECT w.* - FROM osm_important_waterway_linestring_gen2_view AS w - NATURAL JOIN changes_compact AS c; - - -- REFRESH osm_important_waterway_linestring_gen3 - DELETE - FROM osm_important_waterway_linestring_gen3 AS w - USING changes_compact AS c - WHERE w.name = c.name - AND w.name_en IS NOT DISTINCT FROM c.name_en - AND w.name_de IS NOT DISTINCT FROM c.name_de - AND w.tags IS NOT DISTINCT FROM c.tags; - - INSERT INTO osm_important_waterway_linestring_gen3 - SELECT w.* - FROM osm_important_waterway_linestring_gen3_view AS w - NATURAL JOIN changes_compact AS c; + -- REFRESH osm_important_waterway_linestring_gen_z9 + REFRESH MATERIALIZED VIEW osm_important_waterway_linestring_gen_z9; DROP TABLE changes_compact; -- noinspection SqlWithoutWhere diff --git a/layers/waterway/waterway.sql b/layers/waterway/waterway.sql index a917bae..22ce2a7 100644 --- a/layers/waterway/waterway.sql +++ b/layers/waterway/waterway.sql @@ -7,11 +7,12 @@ SELECT CASE $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE; - --- etldoc: ne_110m_rivers_lake_centerlines -> waterway_z3 -CREATE OR REPLACE VIEW waterway_z3 AS +-- ne_110m_rivers_lake_centerlines +-- etldoc: ne_110m_rivers_lake_centerlines -> ne_110m_rivers_lake_centerlines_gen_z3 +DROP MATERIALIZED VIEW IF EXISTS ne_110m_rivers_lake_centerlines_gen_z3 CASCADE; +CREATE MATERIALIZED VIEW ne_110m_rivers_lake_centerlines_gen_z3 AS ( -SELECT geometry, +SELECT ST_Simplify(geometry, ZRes(5)) as geometry, 'river'::text AS class, NULL::text AS name, NULL::text AS name_en, @@ -22,12 +23,15 @@ SELECT geometry, NULL::boolean AS is_intermittent FROM ne_110m_rivers_lake_centerlines WHERE featurecla = 'River' - ); + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_110m_rivers_lake_centerlines_gen_z3_idx ON ne_110m_rivers_lake_centerlines_gen_z3 USING gist (geometry); --- etldoc: ne_50m_rivers_lake_centerlines -> waterway_z4 -CREATE OR REPLACE VIEW waterway_z4 AS +-- ne_50m_rivers_lake_centerlines +-- etldoc: ne_50m_rivers_lake_centerlines -> ne_50m_rivers_lake_centerlines_gen_z5 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_rivers_lake_centerlines_gen_z5 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_rivers_lake_centerlines_gen_z5 AS ( -SELECT geometry, +SELECT ST_Simplify(geometry, ZRes(7)) as geometry, 'river'::text AS class, NULL::text AS name, NULL::text AS name_en, @@ -38,12 +42,32 @@ SELECT geometry, NULL::boolean AS is_intermittent FROM ne_50m_rivers_lake_centerlines WHERE featurecla = 'River' - ); + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_rivers_lake_centerlines_gen_z5_idx ON ne_50m_rivers_lake_centerlines_gen_z5 USING gist (geometry); --- etldoc: ne_10m_rivers_lake_centerlines -> waterway_z6 -CREATE OR REPLACE VIEW waterway_z6 AS +-- etldoc: ne_50m_rivers_lake_centerlines_gen_z5 -> ne_50m_rivers_lake_centerlines_gen_z4 +DROP MATERIALIZED VIEW IF EXISTS ne_50m_rivers_lake_centerlines_gen_z4 CASCADE; +CREATE MATERIALIZED VIEW ne_50m_rivers_lake_centerlines_gen_z4 AS ( -SELECT geometry, +SELECT ST_Simplify(geometry, ZRes(6)) as geometry, + class, + name, + name_en, + name_de, + tags, + is_bridge, + is_tunnel, + is_intermittent +FROM ne_50m_rivers_lake_centerlines_gen_z5 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_50m_rivers_lake_centerlines_gen_z4_idx ON ne_50m_rivers_lake_centerlines_gen_z4 USING gist (geometry); + +-- ne_10m_rivers_lake_centerlines +-- etldoc: ne_10m_rivers_lake_centerlines -> ne_10m_rivers_lake_centerlines_gen_z8 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_rivers_lake_centerlines_gen_z8 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_rivers_lake_centerlines_gen_z8 AS +( +SELECT ST_Simplify(geometry, ZRes(10)) as geometry, 'river'::text AS class, NULL::text AS name, NULL::text AS name_en, @@ -54,9 +78,135 @@ SELECT geometry, NULL::boolean AS is_intermittent FROM ne_10m_rivers_lake_centerlines WHERE featurecla = 'River' + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_rivers_lake_centerlines_gen_z8_idx ON ne_10m_rivers_lake_centerlines_gen_z8 USING gist (geometry); + +-- etldoc: ne_10m_rivers_lake_centerlines_gen_z8 -> ne_10m_rivers_lake_centerlines_gen_z7 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_rivers_lake_centerlines_gen_z7 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_rivers_lake_centerlines_gen_z7 AS +( +SELECT ST_Simplify(geometry, ZRes(9)) as geometry, + class, + name, + name_en, + name_de, + tags, + is_bridge, + is_tunnel, + is_intermittent +FROM ne_10m_rivers_lake_centerlines_gen_z8 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_rivers_lake_centerlines_gen_z7_idx ON ne_10m_rivers_lake_centerlines_gen_z7 USING gist (geometry); + +-- etldoc: ne_10m_rivers_lake_centerlines_gen_z7 -> ne_10m_rivers_lake_centerlines_gen_z6 +DROP MATERIALIZED VIEW IF EXISTS ne_10m_rivers_lake_centerlines_gen_z6 CASCADE; +CREATE MATERIALIZED VIEW ne_10m_rivers_lake_centerlines_gen_z6 AS +( +SELECT ST_Simplify(geometry, ZRes(8)) as geometry, + class, + name, + name_en, + name_de, + tags, + is_bridge, + is_tunnel, + is_intermittent +FROM ne_10m_rivers_lake_centerlines_gen_z7 + ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; +CREATE INDEX IF NOT EXISTS ne_10m_rivers_lake_centerlines_gen_z6_idx ON ne_10m_rivers_lake_centerlines_gen_z6 USING gist (geometry); + + +-- etldoc: ne_110m_rivers_lake_centerlines_gen_z3 -> waterway_z3 +CREATE OR REPLACE VIEW waterway_z3 AS +( +SELECT geometry, + class, + name, + name_en, + name_de, + tags, + is_bridge, + is_tunnel, + is_intermittent +FROM ne_110m_rivers_lake_centerlines_gen_z3 ); --- etldoc: osm_important_waterway_linestring_gen3 -> waterway_z9 +-- etldoc: ne_50m_rivers_lake_centerlines_gen_z4 -> waterway_z4 +CREATE OR REPLACE VIEW waterway_z4 AS +( +SELECT geometry, + class, + name, + name_en, + name_de, + tags, + is_bridge, + is_tunnel, + is_intermittent +FROM ne_50m_rivers_lake_centerlines_gen_z4 + ); + +-- etldoc: ne_50m_rivers_lake_centerlines_gen_z5 -> waterway_z5 +CREATE OR REPLACE VIEW waterway_z5 AS +( +SELECT geometry, + class, + name, + name_en, + name_de, + tags, + is_bridge, + is_tunnel, + is_intermittent +FROM ne_50m_rivers_lake_centerlines_gen_z5 + ); + +-- etldoc: ne_10m_rivers_lake_centerlines_gen_z6 -> waterway_z6 +CREATE OR REPLACE VIEW waterway_z6 AS +( +SELECT geometry, + class, + name, + name_en, + name_de, + tags, + is_bridge, + is_tunnel, + is_intermittent +FROM ne_10m_rivers_lake_centerlines_gen_z6 + ); + +-- etldoc: ne_10m_rivers_lake_centerlines_gen_z7 -> waterway_z7 +CREATE OR REPLACE VIEW waterway_z7 AS +( +SELECT geometry, + class, + name, + name_en, + name_de, + tags, + is_bridge, + is_tunnel, + is_intermittent +FROM ne_10m_rivers_lake_centerlines_gen_z7 + ); + + -- etldoc: ne_10m_rivers_lake_centerlines_gen_z8 -> waterway_z8 +CREATE OR REPLACE VIEW waterway_z8 AS +( +SELECT geometry, + class, + name, + name_en, + name_de, + tags, + is_bridge, + is_tunnel, + is_intermittent +FROM ne_10m_rivers_lake_centerlines_gen_z8 + ); + +-- etldoc: osm_important_waterway_linestring_gen_z9 -> waterway_z9 CREATE OR REPLACE VIEW waterway_z9 AS ( SELECT geometry, @@ -68,10 +218,10 @@ SELECT geometry, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_intermittent -FROM osm_important_waterway_linestring_gen3 +FROM osm_important_waterway_linestring_gen_z9 ); --- etldoc: osm_important_waterway_linestring_gen2 -> waterway_z10 +-- etldoc: osm_important_waterway_linestring_gen_z10 -> waterway_z10 CREATE OR REPLACE VIEW waterway_z10 AS ( SELECT geometry, @@ -83,10 +233,10 @@ SELECT geometry, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_intermittent -FROM osm_important_waterway_linestring_gen2 +FROM osm_important_waterway_linestring_gen_z10 ); --- etldoc:osm_important_waterway_linestring_gen1 -> waterway_z11 +-- etldoc:osm_important_waterway_linestring_gen_z11 -> waterway_z11 CREATE OR REPLACE VIEW waterway_z11 AS ( SELECT geometry, @@ -98,7 +248,7 @@ SELECT geometry, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_intermittent -FROM osm_important_waterway_linestring_gen1 +FROM osm_important_waterway_linestring_gen_z11 ); -- etldoc: osm_waterway_linestring -> waterway_z12 @@ -149,7 +299,7 @@ FROM osm_waterway_linestring ); -- etldoc: layer_waterway[shape=record fillcolor=lightpink, style="rounded,filled", --- etldoc: label="layer_waterway | z3 | z4-z5 | z6-8 | z9 | z10 | z11 | z12| z13| z14+" ]; +-- etldoc: label="layer_waterway | z3 | z4 | z5 | z6 | z7 | z8 | z9 | z10 | z11 | z12| z13| z14+" ]; CREATE OR REPLACE FUNCTION layer_waterway(bbox geometry, zoom_level int) RETURNS TABLE @@ -179,15 +329,30 @@ FROM ( FROM waterway_z3 WHERE zoom_level = 3 UNION ALL - -- etldoc: waterway_z4 -> layer_waterway:z4_5 + -- etldoc: waterway_z4 -> layer_waterway:z4 SELECT * FROM waterway_z4 - WHERE zoom_level BETWEEN 4 AND 5 + WHERE zoom_level = 4 UNION ALL - -- etldoc: waterway_z6 -> layer_waterway:z6_8 + -- etldoc: waterway_z5 -> layer_waterway:z5 + SELECT * + FROM waterway_z5 + WHERE zoom_level = 5 + UNION ALL + -- etldoc: waterway_z6 -> layer_waterway:z6 SELECT * FROM waterway_z6 - WHERE zoom_level BETWEEN 6 AND 8 + WHERE zoom_level = 6 + UNION ALL + -- etldoc: waterway_z7 -> layer_waterway:z7 + SELECT * + FROM waterway_z7 + WHERE zoom_level = 7 + UNION ALL + -- etldoc: waterway_z8 -> layer_waterway:z8 + SELECT * + FROM waterway_z8 + WHERE zoom_level = 8 UNION ALL -- etldoc: waterway_z9 -> layer_waterway:z9 SELECT *