Skip to content

Commit

Permalink
Copy roads_sql subqueries to tunnels.
Browse files Browse the repository at this point in the history
  • Loading branch information
StyXman committed Nov 2, 2024
1 parent 86019fb commit f679df9
Showing 1 changed file with 22 additions and 13 deletions.
35 changes: 22 additions & 13 deletions project.mml
Original file line number Diff line number Diff line change
Expand Up @@ -438,8 +438,14 @@ Layer:
<<: *extents
Datasource:
<<: *osm2pgsql
# This query is quite large, having to deal with both roads, railways. To
# allow for ways that are both railways and roads, a UNION ALL is present.
# NOTE: There are 3 similar queries: here and in the roads-casing and bridges layers. Any change introduced
# in this query must be considered for inclusion in the other two. Changes in the WHERE clause should be
# particularly thought through.

# This is one of the most complex layers, so it bears explaining in some detail
# It is necessary to
# - Have roads and railways in the same layer to get ordering right
# - Return two linestrings for ways which are both a road and railway
table: |-
(SELECT
way,
Expand All @@ -453,27 +459,29 @@ Layer:
preserved,
layernotnull
FROM ( -- subselect that contains both roads and rail
SELECT
SELECT
way,
'highway_' || (CASE WHEN highway = 'path' THEN carto_path_type(bicycle, horse) ELSE highway END) AS feature,
tracktype,
CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', 'grass_paver', 'gravel', 'ground',
'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay', 'ice', 'snow') THEN 'unpaved'
WHEN surface IN ('paved', 'asphalt', 'cobblestone', 'cobblestone:flattened', 'sett', 'concrete', 'concrete:lanes',
WHEN surface IN ('paved', 'asphalt', 'cobblestone', 'cobblestone:flattened', 'sett', 'concrete', 'concrete:lanes',
'concrete:plates', 'paving_stones', 'metal', 'wood', 'unhewn_cobblestone') THEN 'paved'
END AS int_surface,
carto_highway_int_access(highway, access, foot, bicycle, horse, tags->'motorcar', tags->'motor_vehicle', tags->'vehicle') AS int_access,
construction,
CASE
WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text
WHEN service IN ('parking_aisle', 'drive-through', 'driveway') OR leisure IN ('slipway') THEN 'INT-minor'::text
ELSE 'INT-normal'::text
END AS service,
CASE
WHEN highway IN ('motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') THEN 'yes'
ELSE 'no'
END AS link,
'no' as preserved,
COALESCE(layer,0) AS layernotnull,
NULL AS preserved,
COALESCE(layer, 0) AS layernotnull,
osm_id,
z_order
FROM planet_osm_line
WHERE (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes')
Expand All @@ -486,16 +494,17 @@ Layer:
WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service'
ELSE railway END) AS feature,
tracktype,
'null',
NULL,
NULL AS int_surface,
NULL AS access,
construction,
CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,
'no' AS link,
(CASE
NULL AS service,
NULL AS link,
CASE
WHEN tags->'railway:preserved' = 'yes' THEN 'yes'
ELSE 'no'
END) AS preserved,
COALESCE(layer,0) AS layernotnull,
END AS preserved,
COALESCE(layer, 0) AS layernotnull,
osm_id,
z_order
FROM planet_osm_line
WHERE (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes')
Expand Down

0 comments on commit f679df9

Please sign in to comment.