project.mml

Sat, 26 Sep 2020 01:31:37 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Sat, 26 Sep 2020 01:31:37 +0300
changeset 7
be0aa4b6aac9
parent 6
0575190fa5fc
permissions
-rw-r--r--

added square.svg from osm-carto

scale: 1
metatile: 2
name: 
description: A general-purpose OpenStreetMap mapnik style, in CartoCSS
bounds: &world
	- -180
	- -85.05112877980659
	- 180
	- 85.05112877980659
center:
	- 0
	- 0
	- 4
format: png
interactivity: false
minzoom: 0
maxzoom: 22
srs: "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over"

# Various parts to be included later on
_parts:
	# Extents are used for tilemill, and don't actually make it to the generated XML
	extents: &extents
		extent: *world
		srs-name: "900913"
		srs: "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over"
	osm2pgsql: &osm2pgsql
		type: "postgis"
		dbname: "gis"
		key_field: ""
		geometry_field: "way"
		extent: "-20037508,-20037508,20037508,20037508"

Stylesheet:
	- style/style.mss
	- style/roads.mss
	- style/buildings.mss
	- style/places.mss
	- style/shapefiles.mss
	- style/amenity.mss
	- style/roadref.mss
Layer:
	- id: landcover
		geometry: polygon
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					(CASE WHEN
						"landuse" IN ('grass', 'meadow', 'recreation_ground')
						OR ("leisure" IN ('park', 'playground', 'arena', 'stadium', 'sports_centre') AND landuse IS NULL)
						OR "natural" = 'scrub'
						THEN 'grass'
						ELSE CASE WHEN ("landuse" IN ('commercial', 'retail') OR "amenity" IN ('bus_station', 'ferry_terminal'))
							THEN 'commercial'
							ELSE CASE WHEN ("natural" = 'wood' OR "landuse" = 'forest')
								THEN 'forest'
								ELSE CASE WHEN ("natural" = 'water' OR "landuse" IN ('reservoir'))
									THEN 'water'
									ELSE CASE WHEN ("landuse" IN ('religious', 'cemetery') OR "amenity" = 'grave_yard')
										THEN 'religious'
										ELSE CASE WHEN ("landuse" = 'railway')
											THEN 'industrial'
											ELSE CASE WHEN ("natural" = 'wetland')
												THEN 'wetland'
												ELSE "landuse"
											END
										END
									END
								END
							END
						END
					END) AS feature,
					way_area/NULLIF(POW(!scale_denominator!*0.001*0.28,2),0) AS way_pixels,
					way_area
					FROM planet_osm_polygon
					WHERE (landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial', 'meadow', 'grass', 'vineyard', 'orchard', 'religious', 'railway', 'construction', 'cemetery')
						OR "natural" IN ('wood', 'wetland', 'mud', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub', 'water'))
						OR "leisure" IN ('park', 'playground', 'arena', 'stadium', 'sports_centre')
						OR "amenity" IN ('bus_station', 'ferry_terminal', 'grave_yard')
						AND way_area > 0.01*!pixel_width!::real*!pixel_height!::real
						AND building IS NULL
					ORDER BY way_area DESC, feature
				) AS landcover
		properties:
			cache-features: true
			minzoom: 5
	- id: inland-water
		geometry: polygon
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way
					FROM planet_osm_polygon
					WHERE ("natural" = 'water' OR landuse IN ('reservoir', 'basin') OR waterway = 'riverbank')
				) AS landcover
		properties:
			cache-features: true
			minzoom: 5
	- id: ocean-lz
		geometry: polygon
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
						way
					FROM simplified_water_polygons
				) AS ocean_lz
		properties:
			maxzoom: 9
	- id: civic-services
		geometry: polygon
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way
					FROM planet_osm_polygon
					WHERE ("amenity" IN ('hospital', 'community_centre', 'fire_station', 'school', 'university', 'kindergarten', 'childcare', 'social_facility') OR landuse IN ('civic_services', 'civic_admin'))
				) AS civic_services
		properties:
			cache-features: true
			minzoom: 5
	- id: aerodrome
		geometry: polygon
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way
					FROM planet_osm_polygon
					WHERE aeroway = 'aerodrome'
				) AS aerodrome
		properties:
			minzoom: 10
	- id: runway
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					aeroway,
					ref
					FROM planet_osm_line
					WHERE aeroway IN ('runway', 'taxiway')
				) AS aerodrome
		properties:
			minzoom: 10
	- id: ocean
		geometry: polygon
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
						way
					FROM water_polygons
				) AS ocean
		properties:
			minzoom: 10
	- id: coastline
		geometry: line
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT way FROM planet_osm_line WHERE "natural" = 'coastline') AS coastlines
		properties:
			minzoom: 12
	- id: buildings
		geometry: polygon
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					building
					FROM planet_osm_polygon
					WHERE building IS NOT NULL
				) AS landcover
		properties:
			cache-features: true
			minzoom: 14
	- id: road-casing-low-zoom
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: &road_low_zoom_sql |-
				(SELECT
					way,
					highway
					FROM planet_osm_roads
					WHERE "highway" IN ('primary', 'trunk')
						AND (tags->"access" IS NULL OR tags->"access" NOT IN ('private', 'no'))
					ORDER BY
					CASE
						WHEN highway = 'trunk' THEN 37
						WHEN highway = 'primary' THEN 36
					END ASC NULLS LAST
				) AS road
		properties:
			minzoom: 4
			maxzoom: 9
	- id: road-low-zoom
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: *road_low_zoom_sql
		properties:
			minzoom: 4
			maxzoom: 9
	- id: foot-routes-layer-n1
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: &foot_routes_sql |-
				(SELECT
					way,
					osm_way_id,
					route,
					COALESCE(layer::integer, 0) AS layer
					FROM planet_osm_routes
					WHERE "route" IN ('hiking', 'foot', 'bicycle_lcn', 'bicycle_rcn', 'bicycle_ncn', 'bicycle_icn')
					ORDER BY
					CASE
						WHEN route = 'bicycle_icn' THEN 30
						WHEN route = 'bicycle_ncn' THEN 31
						WHEN route = 'bicycle_rcn' THEN 32
						WHEN route = 'bicycle_lcn' THEN 33
						WHEN route = 'foot' THEN 34
						WHEN route = 'hiking' THEN 35
					END DESC NULLS LAST
				) AS foot_routes
		properties:
			minzoom: 14
	- id: road-casing-layer-n1
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: &road_sql |-
				(SELECT
					way,
					(CASE WHEN "highway" IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary')
						THEN 'road_major'
						ELSE CASE WHEN "highway" IN ('motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link', 'residential', 'unclassified', 'living_street')
							THEN 'road_minor'
							ELSE CASE WHEN "highway" IN ('path', 'footway', 'cycleway', 'track', 'steps', 'pedestrian', 'platform')
								THEN 'road_path'
								ELSE 'road_' || "highway"
							END
						END
					END) AS feature,
					name,
					minority_name, 
					highway,
					COALESCE(layer::integer, 0) AS layer
					FROM planet_osm_line
					WHERE "highway" IS NOT NULL
						AND (tags->"access" IS NULL OR tags->"access" NOT IN ('private', 'no'))
					ORDER BY
					CASE
						WHEN highway = 'motorway' THEN 38
						WHEN highway = 'trunk' THEN 37
						WHEN highway = 'primary' THEN 36
						WHEN highway = 'secondary' THEN 35
						WHEN highway = 'tertiary' THEN 34
						
						WHEN highway = 'motorway_link' THEN 28
						WHEN highway = 'trunk_link' THEN 27
						WHEN highway = 'primary_link' THEN 26
						WHEN highway = 'secondary_link' THEN 25
						WHEN highway = 'tertiary_link' THEN 24
						
						WHEN highway = 'residential' THEN 10
						WHEN highway = 'unclassified' THEN 10
						WHEN highway = 'path' THEN 8
						WHEN highway = 'footway' THEN 8
						WHEN highway = 'cycleway' THEN 8
						WHEN highway = 'service' THEN 5
						
						WHEN highway = 'runway' THEN 6
						WHEN highway = 'taxiway' THEN 5
					END ASC NULLS LAST
				) AS road
		properties:
			minzoom: 10
	- id: road-layer-n1
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: *road_sql
		properties:
			minzoom: 10
	- id: bus-route-layer-n1
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: &bus_routes_sql |-
				(SELECT DISTINCT
					way,
					COALESCE(layer::integer, 0) AS layer
					FROM planet_osm_routes
					WHERE "route" = 'bus'
				) AS bus_routes
		properties:
			minzoom: 15
	- id: rail-layer-n1
		geometry: linestring
		Datasource:
			<<: *osm2pgsql
			table: &rail_sql |-
				(SELECT
					way,
					name,
					minority_name,
					service,
					COALESCE(layer::integer, 0) AS layer,
					tags->'electrified' AS electrified,
					tags->'usage' AS usage
					FROM planet_osm_line
					WHERE "railway" = 'rail'
					ORDER BY
					CASE
						WHEN service IS NULL THEN 20
						WHEN service IS NOT NULL THEN 30
					END DESC NULLS LAST
				) AS rail
	- id: road-casing
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: *road_sql
		properties:
			minzoom: 12
	- id: foot-routes
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: *foot_routes_sql
		properties:
			minzoom: 14
	- id: road
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: *road_sql
		properties:
			minzoom: 12
	- id: bus-route
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: *bus_routes_sql
		properties:
			minzoom: 15
	- id: rail
		geometry: linestring
		Datasource:
			<<: *osm2pgsql
			table: *rail_sql
	- id: bridge-area
		geometry: polygon
		Datasource:
			<<: *osm2pgsql
			table: &bridge_area_sql |-
				(SELECT
					way,
					name,
					bilingual_name,
					'0' AS natural
					FROM planet_osm_polygon
					WHERE "man_made" = 'bridge'
				) AS bridge_area
		properties:
			minzoom: 12
	- id: foot-routes-layer-1
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: *foot_routes_sql
		properties:
			minzoom: 14
	- id: road-casing-layer-1
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: *road_sql
		properties:
			minzoom: 12
	- id: road-layer-1
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: *road_sql
		properties:
			minzoom: 12
	- id: bus-route-layer-1
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: *bus_routes_sql
		properties:
			minzoom: 15
	- id: rail-layer-1
		geometry: linestring
		Datasource:
			<<: *osm2pgsql
			table: *rail_sql
	- id: place-major
		geometry: point
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					place,
					capital
					FROM planet_osm_point
					WHERE "place" IN ('city', 'town')
					ORDER BY population DESC NULLS LAST
				) AS place_major
		properties:
			minzoom: 6
			maxzoom: 15
	- id: train-stations
		geometry: point
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					railway,
					COALESCE(tags->'network', 'FI:local') AS network,
					tags->'railway:ref' AS ref,
					(CASE WHEN tags->'station' = 'subway' THEN 1 ELSE 0 END) AS subway
					FROM planet_osm_point
					WHERE "railway" IN ('station', 'halt')
				) AS train_stations
	- id: place-medium
		geometry: point
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					place
					FROM planet_osm_point
					WHERE "place" IN ('suburb', 'borough', 'village')
				) AS place_medium
		properties:
			minzoom: 12
			maxzoom: 17
	- id: stations
		geometry: point
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					COALESCE(
						'amenity_' || CASE WHEN amenity IN ('bus_station') THEN amenity END
					) AS feature
					FROM
					(
						SELECT
						ST_PointOnSurface(way) AS way,
							name,
							bilingual_name,
							amenity
							FROM planet_osm_polygon
							WHERE way && !bbox!
								AND way_area < 768000*POW(!scale_denominator!*0.001*0.28,2)
						UNION ALL
						SELECT
							way,
							bilingual_name,
							name,
							amenity
							FROM planet_osm_point
							WHERE way && !bbox!
					) AS station_subquery
					WHERE (
						"amenity" IN ('bus_station')
					)
				) AS stations
		properties:
			minzoom: 13
	- id: place-natural
		geometry: polygon
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					place,
					way_area/NULLIF(POW(!scale_denominator!*0.001*0.28,2),0) AS way_pixels,
					way_area
					FROM planet_osm_polygon
					WHERE (
						"place" IN ('island', 'peninsula', 'isthmus', 'islet')
						OR "natural" IN ('peak', 'hill', 'fell')
					)
				) AS place_natural
		properties:
			minzoom: 8
	- id: place-minor
		geometry: point
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					(CASE WHEN ("place" = 'locality' OR "natural" IN ('peak', 'hill', 'fell')) THEN 1 ELSE 0 END) AS natural
					FROM planet_osm_point
					WHERE (
						"place" IN ('neighbourhood', 'quarter', 'farm', 'hamlet', 'locality')
						OR "natural" IN ('peak', 'hill', 'fell')
					)
				) AS place_medium
		properties:
			minzoom: 15
	- id: train-sites
		geometry: point
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					railway,
					tags->'railway:ref' AS ref
					FROM planet_osm_point
					WHERE "railway" IN ('site', 'yard', 'crossover', 'junction', 'technical_station', 'service_station')
				) AS train_stations
	- id: poi-name
		geometry: polygon
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					0 as natural
					FROM
					(
						SELECT
						ST_PointOnSurface(way) AS way,
							name,
					bilingual_name,
							man_made,
							building,
							leisure,
							amenity,
							historic
							FROM planet_osm_polygon
							WHERE way && !bbox!
								AND way_area < 768000*POW(!scale_denominator!*0.001*0.28,2)
						UNION ALL
						SELECT
							way,
							name,
					bilingual_name,
							building,
							man_made,
							leisure,
							amenity,
							historic
							FROM planet_osm_point
							WHERE way && !bbox!
					) AS poi_name_subquery
					WHERE (
						"man_made" IN ('bridge')
						OR "amenity" IN ('hospital', 'university', 'exhibition_centre')
						OR "leisure" IN ('stadium')
						OR "historic" IN ('castle')
					)
				) AS poi_name
		properties:
			minzoom: 15
	- id: poi-name-medium
		geometry: polygon
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					shop,
					0 as natural
					FROM
					(
						SELECT
						ST_PointOnSurface(way) AS way,
							name,
							bilingual_name,
							amenity,
							shop
							FROM planet_osm_polygon
							WHERE way && !bbox!
								AND way_area < 768000*POW(!scale_denominator!*0.001*0.28,2)
						UNION ALL
						SELECT
							way,
							name,
							bilingual_name,
							shop,
							amenity
							FROM planet_osm_point
							WHERE way && !bbox!
					) AS poi_name_subquery
					WHERE (
						"amenity" IN ('school', 'marketplace', 'fire_station')
						OR "shop" = 'mall'
					)
				) AS poi_name_medium
		properties:
			minzoom: 16
	- id: aerodrome-name
		geometry: point
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					aeroway,
					name,
					bilingual_name,
					ref
					FROM
					(
						SELECT
						ST_PointOnSurface(way) AS way,
							aeroway,
							name,
							bilingual_name,
							COALESCE(tags->'iata', tags->'icao', ref) as ref
							FROM planet_osm_polygon
							WHERE way && !bbox!
								AND way_area < 768000*POW(!scale_denominator!*0.001*0.28,2)
						UNION ALL
						SELECT
							way,
							aeroway,
							name,
							bilingual_name,
							COALESCE(tags->'iata', tags->'icao', ref) as ref
							FROM planet_osm_point
							WHERE way && !bbox!
					) AS station_subquery
					WHERE "aeroway" = 'aerodrome'
				) AS stations
		properties:
			minzoom: 9
	
	- id: poi-name-minor
		geometry: polygon
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					bilingual_name,
					0 as natural
					FROM
					(
						SELECT
						ST_PointOnSurface(way) AS way,
							name,
							bilingual_name,
							highway,
							area,
							amenity
							FROM planet_osm_polygon
							WHERE way && !bbox!
								AND way_area < 768000*POW(!scale_denominator!*0.001*0.28,2)
						UNION ALL
						SELECT
							way,
							name,
							bilingual_name,
							highway,
							NULL as area,
							amenity
							FROM planet_osm_point
							WHERE way && !bbox!
					) AS poi_name_subquery
					WHERE (
						"amenity" IN ('kindergarten', 'social_facility')
						OR ("highway" IN ('footway', 'pedestrian') AND area = 'yes')
					)
				) AS poi_name_medium
		properties:
			minzoom: 17
	- id: train-milestones
		geometry: point
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					tags->'railway:position' AS position,
					railway
					FROM planet_osm_point
					WHERE "railway" = 'milestone'
				) AS train_milestones
	- id: road-text
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: *road_sql
		properties:
			minzoom: 14
	- id: road-text-minority
		geometry: line
		Datasource:
			<<: *osm2pgsql
			table: *road_sql
		properties:
			minzoom: 14
	- id: foot-routes-text
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					name,
					ref,
					route
					FROM planet_osm_routes
					WHERE "route" IN ('hiking', 'foot', 'bicycle_lcn', 'bicycle_rcn', 'bicycle_ncn', 'bicycle_icn')
					ORDER BY
					CASE
						WHEN route = 'bicycle_icn' THEN 30
						WHEN route = 'bicycle_ncn' THEN 31
						WHEN route = 'bicycle_rcn' THEN 32
						WHEN route = 'bicycle_lcn' THEN 33
						WHEN route = 'foot' THEN 34
						WHEN route = 'hiking' THEN 35
					END DESC NULLS LAST
				) AS foot_routes
		properties:
			minzoom: 15
	- id: roads-text-ref
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: &road-ref-sql |-
				(SELECT
						way,
						highway,
						refs,
						ref_1,
						ref_2,
						ref_3,
						ref_4,
						ref_5,
						ref_6,
						ref_class_1,
						ref_class_2,
						ref_class_3,
						ref_class_4,
						ref_class_5,
						ref_class_6,
						ref_length_1,
						ref_length_2,
						ref_length_3,
						ref_length_4,
						ref_length_5,
						ref_length_6
					FROM (
						SELECT
								osm_id,
								way,
								highway,
								array_to_string(refs, E'\n') AS refs,
								refs[1] as ref_1,
								refs[2] as ref_2,
								refs[3] as ref_3,
								refs[4] as ref_4,
								refs[5] as ref_5,
								refs[6] as ref_6,
								ref_classes[1] as ref_class_1,
								ref_classes[2] as ref_class_2,
								ref_classes[3] as ref_class_3,
								ref_classes[4] as ref_class_4,
								ref_classes[5] as ref_class_5,
								ref_classes[6] as ref_class_6,
								ref_widths[1] as ref_length_1,
								ref_widths[2] as ref_length_2,
								ref_widths[3] as ref_length_3,
								ref_widths[4] as ref_length_4,
								ref_widths[5] as ref_length_5,
								ref_widths[6] as ref_length_6
							FROM (
								SELECT
										osm_id,
										way,
										highway,
										string_to_array(ref, ';') AS refs,
										string_to_array(ref_class, ';') AS ref_classes,
										string_to_array(ref_width, ';') AS ref_widths
									FROM planet_osm_line
									WHERE (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary'))
										AND ref IS NOT NULL
							) AS p) AS q
					ORDER BY
						CASE
							WHEN highway = 'motorway' THEN 38
							WHEN highway = 'trunk' THEN 37
							WHEN highway = 'primary' THEN 36
							WHEN highway = 'secondary' THEN 35
							WHEN highway = 'tertiary' THEN 34
							WHEN highway = 'taxiway' THEN 5
						END DESC NULLS LAST,
						refs,
						osm_id
				) AS roads_text_ref
		properties:
			minzoom: 8
	- id: roads-text-ref2
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: *road-ref-sql
		properties:
			minzoom: 10
	- id: roads-text-ref3
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: *road-ref-sql
		properties:
			minzoom: 10
	- id: roads-text-ref4
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: *road-ref-sql
		properties:
			minzoom: 10
	- id: roads-text-ref5
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: *road-ref-sql
		properties:
			minzoom: 10
	- id: roads-text-ref6
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: *road-ref-sql
		properties:
			minzoom: 10
	- id: railway-platform-ref
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					COALESCE(tags->'local_ref', ref) AS ref
					FROM planet_osm_line
					WHERE "railway" = 'platform_edge'
					ORDER BY ref
				) AS railway_platform_edge_ref
		properties:
			minzoom: 17
	- id: commuter-train-ref
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					ref
					FROM planet_osm_routes
					WHERE "route" = 'train' AND length(ref) = 1 AND network = 'HSL'
					ORDER BY ref
				) AS commuter_trains
		properties:
			minzoom: 15
	- id: bus-ref
		geometry: linestring
		<<: *extents
		Datasource:
			<<: *osm2pgsql
			table: |-
				(SELECT
					way,
					ref
					FROM planet_osm_routes
					WHERE "route" = 'bus' AND ref IS NOT NULL
					ORDER BY ref
				) AS commuter_trains
		properties:
			minzoom: 17

mercurial