Waterway zoomlevel 6 - 8 corresponding with water (#1291)

This PR is solving https://github.com/openmaptiles/openmaptiles/issues/406, partially also https://github.com/openmaptiles/openmaptiles/issues/320.
It is changing source of data for zoomlevel 6 - 8 in `waterway` layer to OSM (relation `waterway = river`), this way it corresponds with `water` layer.
Testing on Europe, z0 - z9 tiles increase size from 20.7 MB to 21.4 MB. We can discuss the level of generalization, but I think this size change is not critical.
pull/1294/head^2
Eva Jelinkova 2021-11-10 20:26:14 +01:00 zatwierdzone przez GitHub
rodzic 1be440404b
commit 26cfe69a9c
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
4 zmienionych plików z 71 dodań i 34 usunięć

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 249 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 225 KiB

Wyświetl plik

@ -42,3 +42,26 @@ tables:
- canal
- drain
- ditch
# etldoc: imposm3 -> osm_waterway_relation
waterway_relation:
type: relation_member
columns:
- name: osm_id
type: id
- name: member
type: member_id
- name: role
type: member_role
- name: geometry
type: geometry
- key: waterway
name: waterway
type: string
- key: name
name: name
type: string
- name: tags
type: hstore_tags
mapping:
waterway: [river]

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 8.0 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 12 KiB

Wyświetl plik

@ -62,30 +62,43 @@ 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,
-- osm_waterway_relation
-- etldoc: osm_waterway_relation -> waterway_relation
DROP TABLE IF EXISTS waterway_relation CASCADE;
CREATE TABLE waterway_relation AS (
SELECT ST_Union(geometry) AS geometry,
name,
slice_language_tags(tags) AS tags
FROM osm_waterway_relation
WHERE name <> ''
AND (role = 'main_stream' OR role = '')
AND ST_GeometryType(geometry) = 'ST_LineString'
AND ST_IsClosed(geometry) = FALSE
GROUP BY name, slice_language_tags(tags)
);
CREATE INDEX IF NOT EXISTS waterway_relation_geometry_idx ON waterway_relation USING gist (geometry);
-- etldoc: waterway_relation -> waterway_relation_gen_z8
DROP MATERIALIZED VIEW IF EXISTS waterway_relation_gen_z8 CASCADE;
CREATE MATERIALIZED VIEW waterway_relation_gen_z8 AS (
SELECT ST_Simplify(geometry, ZRes(10)) AS geometry,
'river'::text AS class,
NULL::text AS name,
name,
NULL::text AS name_en,
NULL::text AS name_de,
NULL::hstore AS tags,
tags,
NULL::boolean AS is_bridge,
NULL::boolean AS is_tunnel,
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);
FROM waterway_relation
WHERE ST_Length(geometry) > 300000
) /* DELAY_MATERIALIZED_VIEW_CREATION */ ;
CREATE INDEX IF NOT EXISTS waterway_relation_gen_z8_geometry_idx ON waterway_relation_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,
-- etldoc: waterway_relation_gen_z8 -> waterway_relation_gen_z7
DROP MATERIALIZED VIEW IF EXISTS waterway_relation_gen_z7 CASCADE;
CREATE MATERIALIZED VIEW waterway_relation_gen_z7 AS (
SELECT ST_Simplify(geometry, ZRes(9)) AS geometry,
class,
name,
name_en,
@ -94,15 +107,15 @@ SELECT ST_Simplify(geometry, ZRes(9)) as geometry,
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);
FROM waterway_relation_gen_z8
WHERE ST_Length(geometry) > 400000
) /* DELAY_MATERIALIZED_VIEW_CREATION */ ;
CREATE INDEX IF NOT EXISTS waterway_relation_gen_z7_geometry_idx ON waterway_relation_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,
-- etldoc: waterway_relation_gen_z7 -> waterway_relation_gen_z6
DROP MATERIALIZED VIEW IF EXISTS waterway_relation_gen_z6 CASCADE;
CREATE MATERIALIZED VIEW waterway_relation_gen_z6 AS (
SELECT ST_Simplify(geometry, ZRes(8)) AS geometry,
class,
name,
name_en,
@ -111,9 +124,10 @@ SELECT ST_Simplify(geometry, ZRes(8)) as geometry,
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);
FROM waterway_relation_gen_z7
WHERE ST_Length(geometry) > 500000
) /* DELAY_MATERIALIZED_VIEW_CREATION */ ;
CREATE INDEX IF NOT EXISTS waterway_relation_gen_z6_geometry_idx ON waterway_relation_gen_z6 USING gist (geometry);
-- etldoc: ne_110m_rivers_lake_centerlines_gen_z3 -> waterway_z3
@ -161,7 +175,7 @@ SELECT geometry,
FROM ne_50m_rivers_lake_centerlines_gen_z5
);
-- etldoc: ne_10m_rivers_lake_centerlines_gen_z6 -> waterway_z6
-- etldoc: waterway_relation_gen_z6 -> waterway_z6
CREATE OR REPLACE VIEW waterway_z6 AS
(
SELECT geometry,
@ -173,10 +187,10 @@ SELECT geometry,
is_bridge,
is_tunnel,
is_intermittent
FROM ne_10m_rivers_lake_centerlines_gen_z6
FROM waterway_relation_gen_z6
);
-- etldoc: ne_10m_rivers_lake_centerlines_gen_z7 -> waterway_z7
-- etldoc: waterway_relation_gen_z7 -> waterway_z7
CREATE OR REPLACE VIEW waterway_z7 AS
(
SELECT geometry,
@ -188,10 +202,10 @@ SELECT geometry,
is_bridge,
is_tunnel,
is_intermittent
FROM ne_10m_rivers_lake_centerlines_gen_z7
FROM waterway_relation_gen_z7
);
-- etldoc: ne_10m_rivers_lake_centerlines_gen_z8 -> waterway_z8
-- etldoc: waterway_relation_gen_z8 -> waterway_z8
CREATE OR REPLACE VIEW waterway_z8 AS
(
SELECT geometry,
@ -203,7 +217,7 @@ SELECT geometry,
is_bridge,
is_tunnel,
is_intermittent
FROM ne_10m_rivers_lake_centerlines_gen_z8
FROM waterway_relation_gen_z8
);
-- etldoc: osm_important_waterway_linestring_gen_z9 -> waterway_z9