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:
@@ -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> z3 |<z4_5> z4-z5 |<z6_8> z6-8 | <z9> z9 |<z10> z10 |<z11> z11 |<z12> z12|<z13> z13|<z14> z14+" ];
|
||||
-- etldoc: label="layer_waterway | <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_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 *
|
||||
|
||||
Reference in New Issue
Block a user