From 136e1db4d18510929eb10d177be8371ef583b56a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20La=C5=BEa?= Date: Mon, 18 Mar 2024 13:23:38 +0100 Subject: [PATCH] Fix maritime low zooms (#1644) This PR fixes boundary layer at low zoom levels: -z4 - remove maritime boundary (Peru, northern and southern end of boundary between Canada and Alaska). -z1-z4 - do not mix disputed boundary from NE and OSM - linestrings got duplicated. Use only NE data (z0-z4), then OSM data (z5+) --- layers/boundary/boundary.sql | 60 +------------------------------- layers/boundary/etl_diagram.png | Bin 931599 -> 777556 bytes 2 files changed, 1 insertion(+), 59 deletions(-) diff --git a/layers/boundary/boundary.sql b/layers/boundary/boundary.sql index 3d242645..4adc0a93 100644 --- a/layers/boundary/boundary.sql +++ b/layers/boundary/boundary.sql @@ -150,38 +150,10 @@ CREATE MATERIALIZED VIEW osm_border_linestring_gen_z4 AS ( SELECT ST_Simplify(geometry, ZRes(5)) AS geometry, adm0_l, adm0_r, admin_level, disputed, name, claimed_by, maritime FROM osm_border_linestring_gen_z5 -WHERE admin_level = 2 AND (maritime OR disputed) +WHERE admin_level = 2 AND maritime ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; CREATE INDEX IF NOT EXISTS osm_border_linestring_gen_z4_idx ON osm_border_linestring_gen_z4 USING gist (geometry); --- etldoc: osm_border_linestring_gen_z4 -> osm_border_disp_linestring_gen_z3 -DROP MATERIALIZED VIEW IF EXISTS osm_border_disp_linestring_gen_z3 CASCADE; -CREATE MATERIALIZED VIEW osm_border_disp_linestring_gen_z3 AS -( -SELECT ST_Simplify(geometry, ZRes(4)) AS geometry, adm0_l, adm0_r, admin_level, TRUE AS disputed, name, claimed_by, maritime -FROM osm_border_linestring_gen_z4 -WHERE disputed -- AND admin_level = 2 - ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_disp_linestring_gen_z3_idx ON osm_border_disp_linestring_gen_z3 USING gist (geometry); - --- etldoc: osm_border_disp_linestring_gen_z3 -> osm_border_disp_linestring_gen_z2 -DROP MATERIALIZED VIEW IF EXISTS osm_border_disp_linestring_gen_z2 CASCADE; -CREATE MATERIALIZED VIEW osm_border_disp_linestring_gen_z2 AS -( -SELECT ST_Simplify(geometry, ZRes(3)) AS geometry, adm0_l, adm0_r, admin_level, TRUE AS disputed, name, claimed_by, maritime -FROM osm_border_disp_linestring_gen_z3 - ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_disp_linestring_gen_z2_idx ON osm_border_disp_linestring_gen_z2 USING gist (geometry); - --- etldoc: osm_border_disp_linestring_gen_z2 -> osm_border_disp_linestring_gen_z1 -DROP MATERIALIZED VIEW IF EXISTS osm_border_disp_linestring_gen_z1 CASCADE; -CREATE MATERIALIZED VIEW osm_border_disp_linestring_gen_z1 AS -( -SELECT ST_Simplify(geometry, ZRes(2)) AS geometry, adm0_l, adm0_r, admin_level, TRUE AS disputed, name, claimed_by, maritime -FROM osm_border_disp_linestring_gen_z2 - ) /* DELAY_MATERIALIZED_VIEW_CREATION */ ; -CREATE INDEX IF NOT EXISTS osm_border_disp_linestring_gen_z1_idx ON osm_border_disp_linestring_gen_z1 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; @@ -370,16 +342,6 @@ SELECT geometry, claimed_by, maritime FROM ne_10m_admin_1_states_provinces_lines_gen_z1 -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_z1 ); CREATE INDEX IF NOT EXISTS boundary_z1_idx ON boundary_z1 USING gist (geometry); @@ -409,16 +371,6 @@ SELECT geometry, 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 ); CREATE INDEX IF NOT EXISTS boundary_z2_idx ON boundary_z2 USING gist (geometry); @@ -447,16 +399,6 @@ SELECT geometry, claimed_by, maritime FROM ne_10m_admin_1_states_provinces_lines_gen_z3 -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_z3 ); CREATE INDEX IF NOT EXISTS boundary_z3_idx ON boundary_z3 USING gist (geometry); diff --git a/layers/boundary/etl_diagram.png b/layers/boundary/etl_diagram.png index 50848a083f4e5d28d04bff86bd7bba2886030584..03fc8a05e247b2924d8fae33974430888b6cb9d1 100644 GIT binary patch literal 777556 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