Tue, 15 Sep 2020 17:36:45 +0300
ulkoilureitit
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: 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: 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: rail-layer-1 geometry: linestring Datasource: <<: *osm2pgsql table: *rail_sql - id: place-major geometry: point Datasource: <<: *osm2pgsql table: |- (SELECT way, name, bilingual_name, place FROM planet_osm_point WHERE "place" IN ('city', 'town') ) AS place_major properties: minzoom: 6 maxzoom: 15 - id: train-stations geometry: point Datasource: <<: *osm2pgsql table: |- (SELECT way, name, bilingual_name, railway, tags->'railway:ref' AS ref 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