Add boundaries à la NaturalEarth tiles

pull/24/head
lukasmartinelli 2016-10-06 08:45:00 +02:00
rodzic 217d5015c2
commit d5b683a0d1
3 zmienionych plików z 99 dodań i 0 usunięć

Wyświetl plik

@ -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

Wyświetl plik

@ -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

Wyświetl plik

@ -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
);