kopia lustrzana https://github.com/openmaptiles/openmaptiles
Merge pull request #677 from lun/321-highway-construction
Add roads under constructionpull/604/head^2
commit
c5b58057cb
|
@ -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'
|
||||
|
@ -17,9 +17,19 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT) RE
|
|||
WHEN highway IN ('secondary', 'secondary_link') THEN 'secondary'
|
||||
WHEN highway IN ('tertiary', 'tertiary_link') THEN 'tertiary'
|
||||
WHEN highway IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor'
|
||||
WHEN highway IN ('service', 'track') THEN highway
|
||||
WHEN highway IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR public_transport IN ('platform') THEN 'path'
|
||||
WHEN highway = 'raceway' THEN 'raceway'
|
||||
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 = '' 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,
|
||||
|
@ -330,7 +330,7 @@ indoor INT, surface TEXT) AS $$
|
|||
-- etldoc: osm_highway_polygon -> layer_transportation:z14_
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
highway, NULL AS construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
|
||||
public_transport, NULL AS service,
|
||||
CASE WHEN man_made IN ('bridge') THEN TRUE
|
||||
ELSE FALSE
|
||||
|
|
|
@ -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
|
||||
|
@ -187,18 +190,19 @@ tables:
|
|||
- tertiary_link
|
||||
- unclassified
|
||||
- residential
|
||||
- road
|
||||
- living_street
|
||||
- raceway
|
||||
- track
|
||||
- service
|
||||
- path
|
||||
- cycleway
|
||||
- bridleway
|
||||
- footway
|
||||
- corridor
|
||||
- road
|
||||
- pedestrian
|
||||
- path
|
||||
- footway
|
||||
- cycleway
|
||||
- steps
|
||||
- bridleway
|
||||
- corridor
|
||||
- service
|
||||
- track
|
||||
- raceway
|
||||
- construction
|
||||
public_transport:
|
||||
- platform
|
||||
man_made:
|
||||
|
|
|
@ -14,9 +14,10 @@ layer:
|
|||
fields:
|
||||
class:
|
||||
description: |
|
||||
Distinguish between more and less important roads or railways.
|
||||
Distinguish between more and less important roads or railways and roads under construction.
|
||||
Class is derived from the value of the
|
||||
[`highway`](http://wiki.openstreetmap.org/wiki/Key:highway),
|
||||
[`construction`](http://wiki.openstreetmap.org/wiki/Key:construction),
|
||||
[`railway`](http://wiki.openstreetmap.org/wiki/Key:railway),
|
||||
[`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway),
|
||||
[`route`](http://wiki.openstreetmap.org/wiki/Key:route) tag (for
|
||||
|
@ -33,6 +34,16 @@ layer:
|
|||
- track
|
||||
- path
|
||||
- raceway
|
||||
- motorway_construction
|
||||
- trunk_construction
|
||||
- primary_construction
|
||||
- secondary_construction
|
||||
- tertiary_construction
|
||||
- minor_construction
|
||||
- service_construction
|
||||
- track_construction
|
||||
- path_construction
|
||||
- raceway_construction
|
||||
- rail
|
||||
- transit
|
||||
- cable_car
|
||||
|
|
|
@ -22,84 +22,88 @@ 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
|
||||
ST_LineMerge(ST_Collect(geometry)) AS geometry,
|
||||
highway,
|
||||
highway, construction,
|
||||
min(z_order) AS z_order
|
||||
FROM osm_highway_linestring
|
||||
WHERE highway IN ('motorway','trunk', 'primary') AND ST_IsValid(geometry)
|
||||
group by highway
|
||||
WHERE (highway IN ('motorway','trunk', 'primary') OR highway = 'construction' AND construction IN ('motorway','trunk', 'primary'))
|
||||
AND ST_IsValid(geometry)
|
||||
group by highway, construction
|
||||
) AS highway_union
|
||||
);
|
||||
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');
|
||||
ON osm_transportation_merge_linestring(highway, construction)
|
||||
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');
|
||||
ON osm_transportation_merge_linestring_gen3(highway, construction)
|
||||
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');
|
||||
ON osm_transportation_merge_linestring_gen4(highway, construction)
|
||||
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');
|
||||
ON osm_transportation_merge_linestring_gen5(highway, construction)
|
||||
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');
|
||||
ON osm_transportation_merge_linestring_gen6(highway, construction)
|
||||
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);
|
||||
|
|
|
@ -19,9 +19,9 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
|
|||
when length(coalesce(ref, ''))>0
|
||||
then 'road'
|
||||
end as network,
|
||||
highway_class(highway, '') AS class,
|
||||
highway_class(highway, '', construction) AS class,
|
||||
CASE
|
||||
WHEN highway IS NOT NULL AND highway_class(highway, '') = 'path'
|
||||
WHEN highway IS NOT NULL AND highway_class(highway, '', construction) = 'path'
|
||||
THEN highway
|
||||
ELSE NULL
|
||||
END AS subclass,
|
||||
|
@ -70,6 +70,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
|
|||
"tags",
|
||||
ref,
|
||||
highway,
|
||||
construction,
|
||||
network,
|
||||
z_order,
|
||||
layer,
|
||||
|
@ -78,7 +79,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
|
|||
FROM osm_transportation_name_linestring
|
||||
WHERE zoom_level = 12
|
||||
AND LineLabel(zoom_level, COALESCE(NULLIF(name, ''), ref), geometry)
|
||||
AND highway_class(highway, '') NOT IN ('minor', 'track', 'path')
|
||||
AND highway_class(highway, '', construction) NOT IN ('minor', 'track', 'path')
|
||||
AND NOT highway_is_link(highway)
|
||||
UNION ALL
|
||||
|
||||
|
@ -92,6 +93,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
|
|||
"tags",
|
||||
ref,
|
||||
highway,
|
||||
construction,
|
||||
network,
|
||||
z_order,
|
||||
layer,
|
||||
|
@ -100,7 +102,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
|
|||
FROM osm_transportation_name_linestring
|
||||
WHERE zoom_level = 13
|
||||
AND LineLabel(zoom_level, COALESCE(NULLIF(name, ''), ref), geometry)
|
||||
AND highway_class(highway, '') NOT IN ('track', 'path')
|
||||
AND highway_class(highway, '', construction) NOT IN ('track', 'path')
|
||||
UNION ALL
|
||||
|
||||
-- etldoc: osm_transportation_name_linestring -> layer_transportation_name:z14_
|
||||
|
@ -113,6 +115,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
|
|||
"tags",
|
||||
ref,
|
||||
highway,
|
||||
construction,
|
||||
network,
|
||||
z_order,
|
||||
layer,
|
||||
|
|
|
@ -29,7 +29,7 @@ layer:
|
|||
- road (default)
|
||||
class:
|
||||
description: |
|
||||
Distinguish between more and less important roads.
|
||||
Distinguish between more and less important roads and roads under construction.
|
||||
values:
|
||||
- motorway
|
||||
- trunk
|
||||
|
@ -41,6 +41,16 @@ layer:
|
|||
- track
|
||||
- path
|
||||
- raceway
|
||||
- motorway_construction
|
||||
- trunk_construction
|
||||
- primary_construction
|
||||
- secondary_construction
|
||||
- tertiary_construction
|
||||
- minor_construction
|
||||
- service_construction
|
||||
- track_construction
|
||||
- path_construction
|
||||
- raceway_construction
|
||||
- rail
|
||||
- transit
|
||||
subclass:
|
||||
|
|
|
@ -24,6 +24,7 @@ CREATE MATERIALIZED VIEW osm_transportation_name_network AS (
|
|||
else hl.ref
|
||||
end as ref,
|
||||
hl.highway,
|
||||
hl.construction,
|
||||
CASE WHEN highway IN ('footway', 'steps') THEN layer
|
||||
ELSE NULL::int
|
||||
END AS layer,
|
||||
|
@ -53,6 +54,7 @@ CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS (
|
|||
tags || get_basic_names(tags, geometry) AS "tags",
|
||||
ref,
|
||||
highway,
|
||||
construction,
|
||||
"level",
|
||||
layer,
|
||||
indoor,
|
||||
|
@ -68,6 +70,7 @@ CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS (
|
|||
AS "tags",
|
||||
ref,
|
||||
highway,
|
||||
construction,
|
||||
"level",
|
||||
layer,
|
||||
indoor,
|
||||
|
@ -77,56 +80,56 @@ CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS (
|
|||
WHERE ("rank"=1 OR "rank" is null)
|
||||
AND (name <> '' OR ref <> '')
|
||||
AND NULLIF(highway, '') IS NOT NULL
|
||||
group by name, name_en, name_de, ref, highway, "level", layer, indoor, network_type
|
||||
group by name, name_en, name_de, ref, highway, construction, "level", layer, indoor, network_type
|
||||
) AS highway_union
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_geometry_idx ON osm_transportation_name_linestring USING gist(geometry);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_highway_partial_idx
|
||||
ON osm_transportation_name_linestring(highway)
|
||||
WHERE highway IN ('motorway','trunk');
|
||||
ON osm_transportation_name_linestring(highway, construction)
|
||||
WHERE highway IN ('motorway','trunk', 'construction');
|
||||
|
||||
-- etldoc: osm_transportation_name_linestring -> osm_transportation_name_linestring_gen1
|
||||
CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen1 AS (
|
||||
SELECT ST_Simplify(geometry, 50) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, network, z_order
|
||||
SELECT ST_Simplify(geometry, 50) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, construction, network, z_order
|
||||
FROM osm_transportation_name_linestring
|
||||
WHERE highway IN ('motorway','trunk') AND ST_Length(geometry) > 8000
|
||||
WHERE (highway IN ('motorway','trunk') OR highway = 'construction' AND construction IN ('motorway','trunk')) AND ST_Length(geometry) > 8000
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen1_geometry_idx ON osm_transportation_name_linestring_gen1 USING gist(geometry);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen1_highway_partial_idx
|
||||
ON osm_transportation_name_linestring_gen1(highway)
|
||||
WHERE highway IN ('motorway','trunk');
|
||||
ON osm_transportation_name_linestring_gen1(highway, construction)
|
||||
WHERE highway IN ('motorway','trunk', 'construction');
|
||||
|
||||
-- etldoc: osm_transportation_name_linestring_gen1 -> osm_transportation_name_linestring_gen2
|
||||
CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen2 AS (
|
||||
SELECT ST_Simplify(geometry, 120) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, network, z_order
|
||||
SELECT ST_Simplify(geometry, 120) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, construction, network, z_order
|
||||
FROM osm_transportation_name_linestring_gen1
|
||||
WHERE highway IN ('motorway','trunk') AND ST_Length(geometry) > 14000
|
||||
WHERE (highway IN ('motorway','trunk') OR highway = 'construction' AND construction IN ('motorway','trunk')) AND ST_Length(geometry) > 14000
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen2_geometry_idx ON osm_transportation_name_linestring_gen2 USING gist(geometry);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen2_highway_partial_idx
|
||||
ON osm_transportation_name_linestring_gen2(highway)
|
||||
WHERE highway = 'motorway';
|
||||
ON osm_transportation_name_linestring_gen2(highway, construction)
|
||||
WHERE highway IN ('motorway','trunk', 'construction');
|
||||
|
||||
-- etldoc: osm_transportation_name_linestring_gen2 -> osm_transportation_name_linestring_gen3
|
||||
CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen3 AS (
|
||||
SELECT ST_Simplify(geometry, 200) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, network, z_order
|
||||
SELECT ST_Simplify(geometry, 200) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, construction, network, z_order
|
||||
FROM osm_transportation_name_linestring_gen2
|
||||
WHERE highway = 'motorway' AND ST_Length(geometry) > 20000
|
||||
WHERE (highway = 'motorway' OR highway = 'construction' AND construction = 'motorway') AND ST_Length(geometry) > 20000
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen3_geometry_idx ON osm_transportation_name_linestring_gen3 USING gist(geometry);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen3_highway_partial_idx
|
||||
ON osm_transportation_name_linestring_gen3(highway)
|
||||
WHERE highway = 'motorway';
|
||||
ON osm_transportation_name_linestring_gen3(highway, construction)
|
||||
WHERE highway IN ('motorway', 'construction');
|
||||
|
||||
-- etldoc: osm_transportation_name_linestring_gen3 -> osm_transportation_name_linestring_gen4
|
||||
CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen4 AS (
|
||||
SELECT ST_Simplify(geometry, 500) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, network, z_order
|
||||
SELECT ST_Simplify(geometry, 500) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, construction, network, z_order
|
||||
FROM osm_transportation_name_linestring_gen3
|
||||
WHERE highway = 'motorway' AND ST_Length(geometry) > 20000
|
||||
WHERE (highway = 'motorway' OR highway = 'construction' AND construction = 'motorway') AND ST_Length(geometry) > 20000
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen4_geometry_idx ON osm_transportation_name_linestring_gen4 USING gist(geometry);
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue