From d5b683a0d16f76bbde96b32c20dd00ef38fb8abe Mon Sep 17 00:00:00 2001 From: lukasmartinelli Date: Thu, 6 Oct 2016 08:45:00 +0200 Subject: [PATCH] =?UTF-8?q?Add=20boundaries=20=C3=A0=20la=20NaturalEarth?= =?UTF-8?q?=20tiles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data.yml | 38 ++++++++++++++++++++++++ schema/create_schema.sh | 1 + schema/layers/boundary.sql | 60 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 schema/layers/boundary.sql diff --git a/data.yml b/data.yml index 5773808a..47b7b0fb 100644 --- a/data.yml +++ b/data.yml @@ -51,6 +51,44 @@ Layer: properties: "buffer-size": 4 srs: +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over + - id: boundary + Datasource: + dbname: osm + extent: -20037508.34,-20037508.34,20037508.34,20037508.34 + geometry_field: geom + geometry_table: '' + host: db + key_field: '' + key_field_as_attribute: '' + max_size: 512 + password: osm + port: 5432 + srid: '' + table: |- + ( SELECT * + FROM ( + SELECT * FROM boundary_z0 WHERE z(!scale_denominator!) = 0 + UNION ALL + SELECT * FROM boundary_z1 WHERE z(!scale_denominator!) BETWEEN 1 AND 2 + UNION ALL + SELECT * FROM boundary_z3 WHERE z(!scale_denominator!) BETWEEN 3 AND 4 + UNION ALL + SELECT * FROM boundary_z5 WHERE z(!scale_denominator!) BETWEEN 5 AND 6 + UNION ALL + SELECT * FROM boundary_z7 WHERE z(!scale_denominator!) >= 7 + ) AS admin + WHERE geom && !bbox! + ) AS data + type: postgis + user: osm + description: Buildings + fields: + admin_level: Number + class: String + scalerank: Number + properties: + "buffer-size": 4 + srs: +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over - id: building Datasource: dbname: osm diff --git a/schema/create_schema.sh b/schema/create_schema.sh index 12cc35fe..20b127c3 100755 --- a/schema/create_schema.sh +++ b/schema/create_schema.sh @@ -18,6 +18,7 @@ function main() { exec_psql_file "$VT_UTIL_DIR/postgis-vt-util.sql" exec_psql_file "layers/water.sql" exec_psql_file "layers/building.sql" + exec_psql_file "layers/boundary.sql" } main diff --git a/schema/layers/boundary.sql b/schema/layers/boundary.sql new file mode 100644 index 00000000..74b7fa29 --- /dev/null +++ b/schema/layers/boundary.sql @@ -0,0 +1,60 @@ +CREATE OR REPLACE FUNCTION boundary_class(featureclass VARCHAR) RETURNS VARCHAR +AS $$ +BEGIN + RETURN CASE + WHEN featureclass ILIKE 'line of control%' THEN 'control' + WHEN featureclass ILIKE 'disputed%' THEN 'dispute' + WHEN featureclass ILIKE 'lease%' THEN 'lease' + WHEN featureclass ILIKE 'overlay%' THEN 'overlay' + ELSE 'boundary' + END; +END; +$$ LANGUAGE plpgsql IMMUTABLE; + +CREATE OR REPLACE VIEW boundary_z0 AS ( + SELECT geom, 0 AS admin_level, scalerank, + boundary_class(featurecla) AS class + FROM ne_110m_admin_0_boundary_lines_land +); + +CREATE OR REPLACE VIEW boundary_z1 AS ( + SELECT geom, 0 AS admin_level, scalerank, + boundary_class(featurecla) AS class + FROM ne_50m_admin_0_boundary_lines_land + UNION ALL + SELECT geom, 1 AS admin_level, scalerank, + boundary_class(featurecla) AS class + FROM ne_50m_admin_1_states_provinces_lines + WHERE scalerank <= 2 +); + +CREATE OR REPLACE VIEW boundary_z3 AS ( + SELECT geom, 0 AS admin_level, scalerank, + boundary_class(featurecla) AS class + FROM ne_50m_admin_0_boundary_lines_land + UNION ALL + SELECT geom, 1 AS admin_level, scalerank, + boundary_class(featurecla) AS class + FROM ne_50m_admin_1_states_provinces_lines +); + +CREATE OR REPLACE VIEW boundary_z5 AS ( + SELECT geom, 0 AS admin_level, scalerank, + boundary_class(featurecla) AS class + FROM ne_10m_admin_0_boundary_lines_land + UNION ALL + SELECT geom, 1 AS admin_level, scalerank, + boundary_class(featurecla) AS class + FROM ne_10m_admin_1_states_provinces_lines_shp + WHERE scalerank <= 7 +); + +CREATE OR REPLACE VIEW boundary_z7 AS ( + SELECT geom, 0 AS admin_level, scalerank, + boundary_class(featurecla) AS class + FROM ne_10m_admin_0_boundary_lines_land + UNION ALL + SELECT geom, 1 AS admin_level, scalerank, + boundary_class(featurecla) AS class + FROM ne_10m_admin_1_states_provinces_lines_shp +);