kopia lustrzana https://github.com/openmaptiles/openmaptiles
layers/transportation/: differentiate roads under construction (#321)
rodzic
45a50a5bd0
commit
0636466cfd
|
@ -9,7 +9,7 @@ $$ LANGUAGE SQL IMMUTABLE STRICT;
|
|||
|
||||
-- The classes for highways are derived from the classes used in ClearTables
|
||||
-- https://github.com/ClearTables/ClearTables/blob/master/transportation.lua
|
||||
CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT) RETURNS TEXT AS $$
|
||||
CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, construction TEXT) RETURNS TEXT AS $$
|
||||
SELECT CASE
|
||||
WHEN highway IN ('motorway', 'motorway_link') THEN 'motorway'
|
||||
WHEN highway IN ('trunk', 'trunk_link') THEN 'trunk'
|
||||
|
@ -18,7 +18,18 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT) RE
|
|||
WHEN highway IN ('tertiary', 'tertiary_link') THEN 'tertiary'
|
||||
WHEN highway IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor'
|
||||
WHEN highway IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR public_transport IN ('platform') THEN 'path'
|
||||
WHEN highway IN ('service', 'track', 'raceway', 'construction') THEN highway
|
||||
WHEN highway IN ('service', 'track', 'raceway') THEN highway
|
||||
WHEN highway = 'construction' THEN CASE
|
||||
WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction'
|
||||
WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction'
|
||||
WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction'
|
||||
WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction'
|
||||
WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction'
|
||||
WHEN construction IS NULL OR construction IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction'
|
||||
WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR public_transport IN ('platform') THEN 'path_construction'
|
||||
WHEN construction IN ('service', 'track', 'raceway') THEN CONCAT(highway, '_construction')
|
||||
ELSE NULL
|
||||
END
|
||||
ELSE NULL
|
||||
END;
|
||||
$$ LANGUAGE SQL IMMUTABLE;
|
||||
|
|
|
@ -12,7 +12,7 @@ indoor INT, surface TEXT) AS $$
|
|||
SELECT
|
||||
osm_id, geometry,
|
||||
CASE
|
||||
WHEN NULLIF(highway, '') IS NOT NULL OR NULLIF(public_transport, '') IS NOT NULL THEN highway_class(highway, public_transport)
|
||||
WHEN NULLIF(highway, '') IS NOT NULL OR NULLIF(public_transport, '') IS NOT NULL THEN highway_class(highway, public_transport, construction)
|
||||
WHEN NULLIF(railway, '') IS NOT NULL THEN railway_class(railway)
|
||||
WHEN NULLIF(aerialway, '') IS NOT NULL THEN aerialway
|
||||
WHEN NULLIF(shipway, '') IS NOT NULL THEN shipway
|
||||
|
@ -21,7 +21,7 @@ indoor INT, surface TEXT) AS $$
|
|||
CASE
|
||||
WHEN railway IS NOT NULL THEN railway
|
||||
WHEN (highway IS NOT NULL OR public_transport IS NOT NULL)
|
||||
AND highway_class(highway, public_transport) = 'path'
|
||||
AND highway_class(highway, public_transport, construction) = 'path'
|
||||
THEN COALESCE(NULLIF(public_transport, ''), highway)
|
||||
ELSE NULL
|
||||
END AS subclass,
|
||||
|
@ -39,13 +39,13 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_transportation_merge_linestring_gen7 -> layer_transportation:z4
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, NULL AS service,
|
||||
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
|
||||
NULL::boolean AS is_ford,
|
||||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL AS surface,
|
||||
NULL AS surface,
|
||||
z_order
|
||||
FROM osm_transportation_merge_linestring_gen7
|
||||
WHERE zoom_level = 4
|
||||
|
@ -54,7 +54,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_transportation_merge_linestring_gen6 -> layer_transportation:z5
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, NULL AS service,
|
||||
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
|
||||
NULL::boolean AS is_ford,
|
||||
|
@ -68,7 +68,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_transportation_merge_linestring_gen5 -> layer_transportation:z6
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, NULL AS service,
|
||||
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
|
||||
NULL::boolean AS is_ford,
|
||||
|
@ -82,7 +82,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_transportation_merge_linestring_gen4 -> layer_transportation:z7
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, NULL AS service,
|
||||
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
|
||||
NULL::boolean AS is_ford,
|
||||
|
@ -96,7 +96,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_transportation_merge_linestring_gen3 -> layer_transportation:z8
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, NULL AS service,
|
||||
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
|
||||
NULL::boolean AS is_ford,
|
||||
|
@ -111,7 +111,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_highway_linestring_gen2 -> layer_transportation:z10
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, NULL AS service,
|
||||
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
|
||||
NULL::boolean AS is_ford,
|
||||
|
@ -126,7 +126,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_highway_linestring_gen1 -> layer_transportation:z11
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, NULL AS service,
|
||||
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
|
||||
NULL::boolean AS is_ford,
|
||||
|
@ -143,7 +143,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_highway_linestring -> layer_transportation:z14_
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, man_made,
|
||||
layer,
|
||||
|
@ -158,12 +158,12 @@ indoor INT, surface TEXT) AS $$
|
|||
FROM osm_highway_linestring
|
||||
WHERE NOT is_area AND (
|
||||
zoom_level = 12 AND (
|
||||
highway_class(highway, public_transport) NOT IN ('track', 'path', 'minor')
|
||||
highway_class(highway, public_transport, construction) NOT IN ('track', 'path', 'minor')
|
||||
OR highway IN ('unclassified', 'residential')
|
||||
) AND man_made <> 'pier'
|
||||
OR zoom_level = 13
|
||||
AND (
|
||||
highway_class(highway, public_transport) NOT IN ('track', 'path') AND man_made <> 'pier'
|
||||
highway_class(highway, public_transport, construction) NOT IN ('track', 'path') AND man_made <> 'pier'
|
||||
OR
|
||||
man_made = 'pier' AND NOT ST_IsClosed(geometry)
|
||||
)
|
||||
|
@ -179,7 +179,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_railway_linestring_gen5 -> layer_transportation:z8
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS highway, NULL AS construction, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
|
||||
NULL::boolean AS is_ford,
|
||||
|
@ -194,7 +194,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_railway_linestring_gen4 -> layer_transportation:z9
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS highway, NULL AS construction, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
|
||||
NULL::boolean AS is_ford,
|
||||
|
@ -209,7 +209,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_railway_linestring_gen3 -> layer_transportation:z10
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS highway, NULL AS construction, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
|
@ -222,7 +222,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_railway_linestring_gen2 -> layer_transportation:z11
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS highway, NULL AS construction, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
|
@ -235,7 +235,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_railway_linestring_gen1 -> layer_transportation:z12
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS highway, NULL AS construction, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
|
@ -249,7 +249,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_railway_linestring -> layer_transportation:z14_
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS highway, NULL AS construction, railway, NULL AS aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
|
@ -263,7 +263,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_aerialway_linestring_gen1 -> layer_transportation:z12
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, NULL as railway, aerialway, NULL AS shipway,
|
||||
NULL AS highway, NULL AS construction, NULL as railway, aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
|
@ -276,7 +276,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_aerialway_linestring -> layer_transportation:z14_
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, NULL as railway, aerialway, NULL AS shipway,
|
||||
NULL AS highway, NULL AS construction, NULL as railway, aerialway, NULL AS shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
|
@ -288,7 +288,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_shipway_linestring_gen2 -> layer_transportation:z11
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway,
|
||||
NULL AS highway, NULL AS construction, NULL AS railway, NULL AS aerialway, shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
|
@ -300,7 +300,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_shipway_linestring_gen1 -> layer_transportation:z12
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway,
|
||||
NULL AS highway, NULL AS construction, NULL AS railway, NULL AS aerialway, shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
|
@ -313,7 +313,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_shipway_linestring -> layer_transportation:z14_
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway,
|
||||
NULL AS highway, NULL AS construction, NULL AS railway, NULL AS aerialway, shipway,
|
||||
NULL AS public_transport, service_value(service) AS service,
|
||||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
|
|
|
@ -45,13 +45,13 @@ generalized_tables:
|
|||
# etldoc: imposm3 -> osm_highway_linestring_gen2
|
||||
highway_linestring_gen2:
|
||||
source: highway_linestring_gen1
|
||||
sql_filter: highway IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link') AND NOT is_area
|
||||
sql_filter: (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link')) AND NOT is_area
|
||||
tolerance: ZRES11
|
||||
|
||||
# etldoc: imposm3 -> osm_highway_linestring_gen1
|
||||
highway_linestring_gen1:
|
||||
source: highway_linestring
|
||||
sql_filter: highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') AND NOT is_area AND ST_IsValid(geometry)
|
||||
sql_filter: (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link')) AND NOT is_area AND ST_IsValid(geometry)
|
||||
tolerance: ZRES12
|
||||
|
||||
name_field: &name
|
||||
|
@ -150,6 +150,9 @@ tables:
|
|||
- name: highway
|
||||
key: highway
|
||||
type: string
|
||||
- name: construction
|
||||
key: construction
|
||||
type: string
|
||||
- *ref
|
||||
- *network
|
||||
- *z_order
|
||||
|
|
|
@ -22,14 +22,14 @@ CREATE INDEX IF NOT EXISTS osm_highway_linestring_highway_idx
|
|||
-- Improve performance of the sql below
|
||||
CREATE INDEX IF NOT EXISTS osm_highway_linestring_highway_partial_idx
|
||||
ON osm_highway_linestring(highway)
|
||||
WHERE highway IN ('motorway','trunk', 'primary');
|
||||
WHERE highway IN ('motorway','trunk', 'primary', 'construction');
|
||||
|
||||
-- etldoc: osm_highway_linestring -> osm_transportation_merge_linestring
|
||||
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring AS (
|
||||
SELECT
|
||||
(ST_Dump(geometry)).geom AS geometry,
|
||||
NULL::bigint AS osm_id,
|
||||
highway,
|
||||
highway, construction,
|
||||
z_order
|
||||
FROM (
|
||||
SELECT
|
||||
|
@ -37,7 +37,8 @@ CREATE MATERIALIZED VIEW osm_transportation_merge_linestring AS (
|
|||
highway,
|
||||
min(z_order) AS z_order
|
||||
FROM osm_highway_linestring
|
||||
WHERE highway IN ('motorway','trunk', 'primary') AND ST_IsValid(geometry)
|
||||
WHERE (highway IN ('motorway','trunk', 'primary') OR highway = 'construction' AND construction IN ('motorway','trunk', 'primary'))
|
||||
AND ST_IsValid(geometry)
|
||||
group by highway
|
||||
) AS highway_union
|
||||
);
|
||||
|
@ -45,61 +46,64 @@ CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_geometry_idx
|
|||
ON osm_transportation_merge_linestring USING gist(geometry);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_highway_partial_idx
|
||||
ON osm_transportation_merge_linestring(highway)
|
||||
WHERE highway IN ('motorway','trunk', 'primary');
|
||||
WHERE highway IN ('motorway','trunk', 'primary', 'construction');
|
||||
|
||||
-- etldoc: osm_transportation_merge_linestring -> osm_transportation_merge_linestring_gen3
|
||||
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen3 AS (
|
||||
SELECT ST_Simplify(geometry, 120) AS geometry, osm_id, highway, z_order
|
||||
SELECT ST_Simplify(geometry, 120) AS geometry, osm_id, highway, construction, z_order
|
||||
FROM osm_transportation_merge_linestring
|
||||
WHERE highway IN ('motorway','trunk', 'primary')
|
||||
OR highway = 'construction' AND construction IN ('motorway','trunk', 'primary')
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen3_geometry_idx
|
||||
ON osm_transportation_merge_linestring_gen3 USING gist(geometry);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen3_highway_partial_idx
|
||||
ON osm_transportation_merge_linestring_gen3(highway)
|
||||
WHERE highway IN ('motorway','trunk', 'primary');
|
||||
WHERE highway IN ('motorway','trunk', 'primary', 'construction');
|
||||
|
||||
-- etldoc: osm_transportation_merge_linestring_gen3 -> osm_transportation_merge_linestring_gen4
|
||||
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen4 AS (
|
||||
SELECT ST_Simplify(geometry, 200) AS geometry, osm_id, highway, z_order
|
||||
SELECT ST_Simplify(geometry, 200) AS geometry, osm_id, highway, construction, z_order
|
||||
FROM osm_transportation_merge_linestring_gen3
|
||||
WHERE highway IN ('motorway','trunk', 'primary') AND ST_Length(geometry) > 50
|
||||
WHERE (highway IN ('motorway','trunk', 'primary') OR highway = 'construction' AND construction IN ('motorway','trunk', 'primary'))
|
||||
AND ST_Length(geometry) > 50
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen4_geometry_idx
|
||||
ON osm_transportation_merge_linestring_gen4 USING gist(geometry);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen4_highway_partial_idx
|
||||
ON osm_transportation_merge_linestring_gen4(highway)
|
||||
WHERE highway IN ('motorway','trunk', 'primary');
|
||||
WHERE highway IN ('motorway','trunk', 'primary', 'construction');
|
||||
|
||||
-- etldoc: osm_transportation_merge_linestring_gen4 -> osm_transportation_merge_linestring_gen5
|
||||
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen5 AS (
|
||||
SELECT ST_Simplify(geometry, 500) AS geometry, osm_id, highway, z_order
|
||||
SELECT ST_Simplify(geometry, 500) AS geometry, osm_id, highway, construction, z_order
|
||||
FROM osm_transportation_merge_linestring_gen4
|
||||
WHERE highway IN ('motorway','trunk') AND ST_Length(geometry) > 100
|
||||
WHERE (highway IN ('motorway','trunk') OR highway = 'construction' AND construction IN ('motorway','trunk'))
|
||||
AND ST_Length(geometry) > 100
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen5_geometry_idx
|
||||
ON osm_transportation_merge_linestring_gen5 USING gist(geometry);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen5_highway_partial_idx
|
||||
ON osm_transportation_merge_linestring_gen5(highway)
|
||||
WHERE highway IN ('motorway', 'trunk');
|
||||
WHERE highway IN ('motorway','trunk', 'construction');
|
||||
|
||||
-- etldoc: osm_transportation_merge_linestring_gen5 -> osm_transportation_merge_linestring_gen6
|
||||
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen6 AS (
|
||||
SELECT ST_Simplify(geometry, 1000) AS geometry, osm_id, highway, z_order
|
||||
SELECT ST_Simplify(geometry, 1000) AS geometry, osm_id, highway, construction, z_order
|
||||
FROM osm_transportation_merge_linestring_gen5
|
||||
WHERE highway IN ('motorway','trunk') AND ST_Length(geometry) > 500
|
||||
WHERE (highway IN ('motorway','trunk') OR highway = 'construction' AND construction IN ('motorway','trunk')) AND ST_Length(geometry) > 500
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen6_geometry_idx
|
||||
ON osm_transportation_merge_linestring_gen6 USING gist(geometry);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen6_highway_partial_idx
|
||||
ON osm_transportation_merge_linestring_gen6(highway)
|
||||
WHERE highway IN ('motorway','trunk');
|
||||
WHERE highway IN ('motorway','trunk', 'construction');
|
||||
|
||||
-- etldoc: osm_transportation_merge_linestring_gen6 -> osm_transportation_merge_linestring_gen7
|
||||
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen7 AS (
|
||||
SELECT ST_Simplify(geometry, 2000) AS geometry, osm_id, highway, z_order
|
||||
SELECT ST_Simplify(geometry, 2000) AS geometry, osm_id, highway, construction, z_order
|
||||
FROM osm_transportation_merge_linestring_gen6
|
||||
WHERE highway IN ('motorway') AND ST_Length(geometry) > 1000
|
||||
WHERE (highway = 'motorway' OR highway = 'construction' AND construction = 'motorway') AND ST_Length(geometry) > 1000
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen7_geometry_idx
|
||||
ON osm_transportation_merge_linestring_gen7 USING gist(geometry);
|
||||
|
|
Ładowanie…
Reference in New Issue