diff --git a/project.mml b/project.mml index 2a685232c8..4073747ab0 100644 --- a/project.mml +++ b/project.mml @@ -2220,7 +2220,6 @@ Layer: way, name, COALESCE( - 'railway_' || CASE WHEN railway IN ('level_crossing', 'crossing') AND way_area IS NULL THEN railway END, 'amenity_' || CASE WHEN amenity IN ('bench', 'waste_basket', 'waste_disposal') AND way_area IS NULL THEN amenity END, 'historic_' || CASE WHEN historic IN ('wayside_cross', 'wayside_shrine') AND way_area IS NULL THEN historic END, 'man_made_' || CASE WHEN man_made IN ('cross') AND way_area IS NULL THEN man_made END, @@ -2278,6 +2277,29 @@ Layer: properties: cache-features: true minzoom: 14 + - id: level-crossing-casing + geometry: point + <<: *extents + Datasource: + <<: *osm2pgsql + table: &level-crossing_sql |- + (SELECT DISTINCT ON (crossing.way) + 'railway_' || crossing.railway AS feature, + crossing.way AS way, + crossing.access AS access, + crossing.railway AS type, + crossing.railway AS railway, + track.railway AS int_lc_type + FROM planet_osm_point crossing + JOIN planet_osm_line track + ON ST_DWithin(crossing.way, track.way, 0.1) -- Assumes Mercator + WHERE crossing.railway IN ('crossing', 'level_crossing') + AND track.railway IS NOT NULL AND track.railway <> 'tram' + ORDER BY crossing.way + ) AS level_crossing_sql + properties: + cache-features: true + minzoom: 14 - id: text-low-priority geometry: point <<: *extents diff --git a/style/amenity-points.mss b/style/amenity-points.mss index a985fc81c3..ab62e0283a 100644 --- a/style/amenity-points.mss +++ b/style/amenity-points.mss @@ -1471,7 +1471,8 @@ } } -#amenity-low-priority { +#amenity-low-priority, +#level-crossing-casing { [feature = 'man_made_cross'][zoom >= 16], [feature = 'historic_wayside_cross'][zoom >= 16] { marker-file: url('symbols/man_made/cross.svg');