Refactor schema, one _gen_z view per zoom. (#1045)
* Refactor layer aeroway. * Refactor layer boundary. * Refactor layer landcover. * Refactor layer landuse. * Refactor layer park. * Refactor layer transportation. * Refactor layer water. * Refactor layer waterway. * Re-generate water* layers etl_diagrams. * Regenerate etl_diagrams for waterway. * Cast NULL to text.
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 366 KiB |
@@ -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,
|
||||
|
||||
@@ -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_1> z0-z1 | <z2_4> z2-z4 | <z5_6> z5-z6 |<z7> z7 |<z8> z8 |<z9> z9 |<z10> z10 |<z11> z11 |<z12> z12|<z13> z13|<z14_> 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> z0 | <z1> z1 | <z2> z2 | <z3> z3 | <z4> z4 | <z5> z5 | <z6> z6 |<z7> z7 |<z8> z8 |<z9> z9 |<z10> z10 |<z11> z11 |<z12> z12|<z13> z13|<z14_> 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;
|
||||
Reference in New Issue
Block a user