This is an automated email from the git hooks/post-receive script. sebastic pushed a commit to branch master in repository openstreetmap-carto.
commit 88de0f2fa8bb5458de40d6dfebe59967bec80461 Author: Bas Couwenberg <sebas...@xs4all.nl> Date: Sun Aug 30 16:57:02 2015 +0200 Imported Upstream version 2.33.0 --- amenity-points.mss | 49 ++++---------- get-shapefiles.sh | 12 ++-- landcover.mss | 88 ++++++++++++++++--------- preview.png | Bin 80167 -> 79761 bytes project.mml | 26 ++++---- project.yaml | 66 +++++++++++++------ roads.mss | 131 ++++++++++++++++---------------------- symbols/forest.png | Bin 190 -> 17339 bytes symbols/musical_instrument-14.svg | 24 +++++++ water.mss | 33 ---------- 10 files changed, 215 insertions(+), 214 deletions(-) diff --git a/amenity-points.mss b/amenity-points.mss index 6acb333..07e4e11 100644 --- a/amenity-points.mss +++ b/amenity-points.mss @@ -751,6 +751,13 @@ marker-fill: @shop-icon; } + [feature = 'shop_musical_instrument'][zoom >= 17] { + marker-file: url('symbols/musical_instrument-14.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } + [feature = 'shop_kiosk'], [feature = 'shop_newsagent'] { [zoom >= 17] { @@ -1145,24 +1152,6 @@ text-placement: interior; } - [feature = 'natural_wood'][is_building = 'no'] { - [zoom >= 8][way_pixels > 3000], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - [way_pixels > 12000] { text-size: @landcover-font-size-big; } - [way_pixels > 48000] { text-size: @landcover-font-size-bigger; } - text-fill: darken(@wood, 40%); - text-face-name: @landcover-face-name; - text-halo-radius: 1; - text-halo-fill: rgba(255,255,255,0.6); - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] {text-wrap-width: @landcover-wrap-width-size-big; } - [way_pixels > 48000] {text-wrap-width: @landcover-wrap-width-size-bigger; } - text-placement: interior; - } - } - [feature = 'natural_peak'][zoom >= 13], [feature = 'natural_volcano'][zoom >= 13], [feature = 'natural_saddle'][zoom >= 15], @@ -1492,6 +1481,7 @@ } [feature = 'landuse_meadow'][is_building = 'no'], + [feature = 'natural_grassland'][is_building = 'no'], [feature = 'landuse_grass'][is_building = 'no'] { [zoom >= 10][way_pixels > 3000], [zoom >= 17] { @@ -1528,6 +1518,7 @@ } } + [feature = 'natural_wood'][is_building = 'no'], [feature = 'landuse_forest'][is_building = 'no'] { [zoom >= 8][way_pixels > 3000], [zoom >= 17] { @@ -1535,7 +1526,7 @@ text-size: @landcover-font-size; [way_pixels > 12000] { text-size: @landcover-font-size-big; } [way_pixels > 48000] { text-size: @landcover-font-size-bigger; } - text-fill: darken(@forest, 30%); + text-fill: @forest-text; text-face-name: @landcover-face-name; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); @@ -1966,6 +1957,7 @@ [feature = 'shop_kiosk'], [feature = 'shop_mobile_phone'], [feature = 'shop_motorcycle'], + [feature = 'shop_musical_instrument'], [feature = 'shop_newsagent'], [feature = 'shop_jewelry'], [feature = 'shop_jewellery'], @@ -2130,25 +2122,6 @@ } } - - [feature = 'natural_grassland'][is_building = 'no'] { - [zoom >= 10][way_pixels > 3000], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - [way_pixels > 12000] { text-size: @landcover-font-size-big; } - [way_pixels > 48000] { text-size: @landcover-font-size-bigger; } - text-fill: darken(@grass, 50%); - text-face-name: @landcover-face-name; - text-halo-radius: 1; - text-halo-fill: rgba(255,255,255,0.6); - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] {text-wrap-width: @landcover-wrap-width-size-big; } - [way_pixels > 48000] {text-wrap-width: @landcover-wrap-width-size-bigger; } - text-placement: interior; - } - } - [feature = 'natural_scrub'][is_building = 'no'] { [zoom >= 10][way_pixels > 3000], [zoom >= 17] { diff --git a/get-shapefiles.sh b/get-shapefiles.sh index 9e9b7ca..152eea5 100755 --- a/get-shapefiles.sh +++ b/get-shapefiles.sh @@ -13,7 +13,7 @@ mkdir -p data/ne_10m_populated_places mkdir -p data/land-polygons-split-3857 # world_boundaries -echo "dowloading world_boundaries..." +echo "downloading world_boundaries..." curl -z "data/world_boundaries-spherical.tgz" -L -o "data/world_boundaries-spherical.tgz" "http://planet.openstreetmap.org/historical-shapefiles/world_boundaries-spherical.tgz" echo "expanding world_boundaries..." tar -xzf data/world_boundaries-spherical.tgz -C data/ @@ -31,7 +31,7 @@ unzip $UNZIP_OPTS data/simplified-land-polygons-complete-3857.zip \ -d data/ # ne_110m_admin_0_boundary_lines_land -echo "dowloading ne_110m_admin_0_boundary_lines_land..." +echo "downloading ne_110m_admin_0_boundary_lines_land..." curl -z data/ne_110m_admin_0_boundary_lines_land.zip -L -o data/ne_110m_admin_0_boundary_lines_land.zip http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_boundary_lines_land.zip echo "expanding ne_110m_admin_0_boundary_lines_land..." unzip $UNZIP_OPTS data/ne_110m_admin_0_boundary_lines_land.zip \ @@ -42,7 +42,7 @@ unzip $UNZIP_OPTS data/ne_110m_admin_0_boundary_lines_land.zip \ -d data/ne_110m_admin_0_boundary_lines_land/ # ne_10m_populated_places -echo "dowloading ne_10m_populated_places..." +echo "downloading ne_10m_populated_places..." curl -z data/ne_10m_populated_places.zip -L -o data/ne_10m_populated_places.zip http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip echo "expanding ne_10m_populated_places..." unzip $UNZIP_OPTS data/ne_10m_populated_places.zip \ @@ -54,7 +54,7 @@ unzip $UNZIP_OPTS data/ne_10m_populated_places.zip \ -d data/ne_10m_populated_places/ # land-polygons-split-3857 -echo "dowloading land-polygons-split-3857..." +echo "downloading land-polygons-split-3857..." curl -z "data/land-polygons-split-3857.zip" -L -o "data/land-polygons-split-3857.zip" "http://data.openstreetmapdata.com/land-polygons-split-3857.zip" echo "expanding land-polygons-split-3857..." unzip $UNZIP_OPTS data/land-polygons-split-3857.zip \ @@ -66,7 +66,7 @@ unzip $UNZIP_OPTS data/land-polygons-split-3857.zip \ -d data/ # antarctica-icesheet-polygons-3857 -echo "dowloading antarctica-icesheet-polygons-3857..." +echo "downloading antarctica-icesheet-polygons-3857..." curl -z "data/antarctica-icesheet-polygons-3857.zip" -L -o "data/antarctica-icesheet-polygons-3857.zip" "http://data.openstreetmapdata.com/antarctica-icesheet-polygons-3857.zip" echo "expanding antarctica-icesheet-polygons-3857..." unzip $UNZIP_OPTS data/antarctica-icesheet-polygons-3857.zip \ @@ -77,7 +77,7 @@ unzip $UNZIP_OPTS data/antarctica-icesheet-polygons-3857.zip \ -d data/ # antarctica-icesheet-outlines-3857 -echo "dowloading antarctica-icesheet-outlines-3857..." +echo "downloading antarctica-icesheet-outlines-3857..." curl -z "data/antarctica-icesheet-outlines-3857.zip" -L -o "data/antarctica-icesheet-outlines-3857.zip" "http://data.openstreetmapdata.com/antarctica-icesheet-outlines-3857.zip" echo "expanding antarctica-icesheet-outlines-3857..." unzip $UNZIP_OPTS data/antarctica-icesheet-outlines-3857.zip \ diff --git a/landcover.mss b/landcover.mss index f03d722..86a2f62 100644 --- a/landcover.mss +++ b/landcover.mss @@ -1,11 +1,11 @@ // --- Parks, woods, other green things --- -@forest: #a0cf85; @grass: #cdebb0; // also meadow, common, garden, village_green, conservation @golf_course: #b5e3b5; -@park: #cdf7c9; // also recreation_ground -@wood: #aed1a0; @scrub: #b5e3b5; +@forest: #add19e; // Lch(80,30,135) +@forest-text: #46673b; // Lch(40,30,135) +@park: #c8facc; // Lch(94,30,145) also recreation_ground @orchard: #aedfa3; // --- sports --- @@ -49,7 +49,8 @@ @place_of_worship: #cdccc9; @place_of_worship_outline: #111; @playground: #ccfff1; -@power: #bbb; +@power: darken(@industrial, 5%); +@power-line: darken(@industrial-line, 5%); @rest_area: #efc8c8; // also services @sand: #f5e9c6; @educational_areas_and_hospital: #f0f0d8; @@ -210,6 +211,7 @@ } [feature = 'landuse_meadow'], + [feature = 'natural_grassland'], [feature = 'landuse_grass'] { [zoom >= 10] { polygon-fill: @grass; @@ -260,18 +262,13 @@ } } - [feature = 'landuse_forest'] { + [feature = 'landuse_forest'], + [feature = 'natural_wood'] { [zoom >= 8] { polygon-fill: @forest; [way_pixels >= 4] { polygon-gamma: 0.75; } [way_pixels >= 64] { polygon-gamma: 0.3; } } - [zoom >= 14] { - polygon-pattern-file: url('symbols/forest.png'); - [way_pixels >= 4] { polygon-pattern-gamma: 0.75; } - [way_pixels >= 64] { polygon-pattern-gamma: 0.3; } - } - } [feature = 'landuse_farmyard'][zoom >= 10] { @@ -356,11 +353,17 @@ [feature = 'power_generator'][zoom >= 10], [feature = 'power_sub_station'][zoom >= 13], [feature = 'power_substation'][zoom >= 13] { + polygon-fill: @industrial; + [zoom >= 15] { polygon-fill: @power; - [zoom >= 12] { - line-width: 0.4; - line-color: darken(@power, 40%); + } + [zoom >= 16] { + line-width: 0.5; + line-color: @power-line; + [name != ''] { + line-width: 0.7; } + } [way_pixels >= 4] { polygon-gamma: 0.75; } [way_pixels >= 64] { polygon-gamma: 0.3; } } @@ -388,14 +391,6 @@ } } - [feature = 'natural_wood'] { - [zoom >= 8] { - polygon-fill: @wood; - [way_pixels >= 4] { polygon-gamma: 0.75; } - [way_pixels >= 64] { polygon-gamma: 0.3; } - } - } - [feature = 'natural_bare_rock'][zoom >= 9] { polygon-fill: @bare_ground; [way_pixels >= 4] { polygon-gamma: 0.75; } @@ -433,12 +428,6 @@ [way_pixels >= 64] { polygon-gamma: 0.3; } } - [feature = 'natural_grassland'][zoom >= 10] { - polygon-fill: @grass; - [way_pixels >= 4] { polygon-gamma: 0.75; } - [way_pixels >= 64] { polygon-gamma: 0.3; } - } - [feature = 'natural_scrub'] { [zoom >= 10] { polygon-fill: @scrub; @@ -453,7 +442,7 @@ } [feature = 'wetland_swamp'][zoom >= 8] { - polygon-fill: @wood; + polygon-fill: @forest; [way_pixels >= 4] { polygon-gamma: 0.75; } [way_pixels >= 64] { polygon-gamma: 0.3; } } @@ -585,8 +574,47 @@ } } +#landcover-area-symbols { + [int_wetland != null][zoom >= 10] { + polygon-pattern-file: url('symbols/wetland.png'); + polygon-pattern-alignment: global; + } + [zoom >= 14] { + [int_wetland = 'marsh'], + [int_wetland = 'saltmarsh'], + [int_wetland = 'wet_meadow'], + [int_wetland = 'fen'] { + polygon-pattern-file: url('symbols/wetland_marsh.png'); + polygon-pattern-alignment: global; + } + [int_wetland = 'reedbed'] { + polygon-pattern-file: url('symbols/wetland_reed.png'); + polygon-pattern-alignment: global; + } + [int_wetland = 'mangrove'] { + polygon-pattern-file: url('symbols/wetland_mangrove.png'); + polygon-pattern-alignment: global; + } + [int_wetland = 'swamp'] { + polygon-pattern-file: url('symbols/wetland_swamp.png'); + polygon-pattern-alignment: global; + } + [int_wetland = 'bog'], + [int_wetland = 'string_bog'] { + polygon-pattern-file: url('symbols/wetland_bog.png'); + polygon-pattern-alignment: global; + } + } + //Also landuse = forest, converted in the SQL + [natural = 'wood'][zoom >= 13]::wood { + polygon-pattern-file: url('symbols/forest.png'); // Lch(55,30,135) + polygon-pattern-alignment: global; + opacity: 0.4; // The entire layer has opacity to handle overlapping forests + } +} + #landuse-overlay { - [landuse = 'military'][zoom >= 10]::landuse { + [landuse = 'military'][zoom >= 10] { polygon-pattern-file: url('symbols/military_red_hatch.png'); polygon-pattern-alignment: global; line-color: @military; diff --git a/preview.png b/preview.png index 88a31a1..8983b55 100644 Binary files a/preview.png and b/preview.png differ diff --git a/project.mml b/project.mml index 9aa3cca..3189cc4 100644 --- a/project.mml +++ b/project.mml @@ -271,15 +271,15 @@ "advanced": {} }, { - "name": "water-areas-overlay", + "name": "landcover-area-symbols", "srs-name": "900913", "geometry": "polygon", "class": "", - "id": "water-areas-overlay", + "id": "landcover-area-symbols", "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT\n way,\n CASE WHEN \"natural\" IN ('marsh', 'mud') THEN \"natural\" ELSE wetland END AS int_wetland\n FROM planet_osm_polygon\n WHERE \"natural\" IN ('marsh', 'mud', 'wetland')\n AND building IS NULL\n AND way_area > 0.01*!pixel_width!::real*!pixel_height!::real\n ORDER BY z_order, way_area DESC\n) AS water_areas_overlay", + "table": "(SELECT\n way,\n COALESCE(\"natural\", CASE WHEN landuse = 'forest' THEN 'wood' ELSE NULL END) AS \"natural\",\n CASE WHEN \"natural\" IN ('marsh', 'mud') \n THEN \"natural\" \n ELSE CASE WHEN (\"natural\" = 'wetland' AND wetland IS NULL) \n THEN 'wetland' \n ELSE CASE WHEN (\"natural\" = 'wetland')\n THEN wetland\n ELSE NULL\n END \n END\n END AS int_wetland\n FROM planet_osm_polygon [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -561,7 +561,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n horse, foot, bicycle, tracktype, access, construction,\n service, oneway, link, layernotnull\n FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n foot,\n [...] + "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n horse, foot, bicycle, tracktype, int_surface, access, construction,\n service, oneway, link, layernotnull\n FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -614,7 +614,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT\n way, landuse, leisure\n FROM planet_osm_polygon\n WHERE landuse = 'military'\n AND building IS NULL\n) AS landuse_overlay", + "table": "(SELECT\n way, landuse\n FROM planet_osm_polygon\n WHERE landuse = 'military'\n AND building IS NULL\n) AS landuse_overlay", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -795,7 +795,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n horse, foot, bicycle, tracktype, access, construction,\n service, oneway, link, layernotnull\n FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n foot,\n [...] + "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n horse, foot, bicycle, tracktype, int_surface, access, construction,\n service, oneway, link, layernotnull\n FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -847,7 +847,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n horse, foot, bicycle, tracktype, access, construction,\n service, oneway, link, layernotnull\n FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n foot,\n [...] + "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n horse, foot, bicycle, tracktype, int_surface, access, construction,\n service, oneway, link, layernotnull\n FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -925,7 +925,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT\n way,\n COALESCE(\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway end)),\n ('railway_' || (CASE WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' WHEN railway IN ('rail', 'tram', 'light_rail', 'funicular', 'narrow_gauge') THEN railway ELSE NULL END))\n ) AS feature,\n CASE WHEN tunnel = 'yes' OR tunnel = 'building_ [...] + "table": "(SELECT\n way,\n COALESCE(\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway end)),\n ('railway_' || (CASE WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' WHEN railway IN ('rail', 'tram', 'light_rail', 'funicular', 'narrow_gauge') THEN railway ELSE NULL END))\n ) AS feature,\n CASE WHEN tunnel = 'yes' OR tunnel = 'building_ [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -978,7 +978,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n horse, foot, bicycle, tracktype, access, construction,\n service, oneway, link, layernotnull\n FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n foot,\n [...] + "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n horse, foot, bicycle, tracktype, int_surface, access, construction,\n service, oneway, link, layernotnull\n FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -1423,7 +1423,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT\n way,\n COALESCE(\n 'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END,\n 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sha [...] + "table": "(SELECT\n way,\n COALESCE(\n 'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END,\n 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sha [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -1449,7 +1449,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT\n way,\n COALESCE(\n 'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END,\n 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sha [...] + "table": "(SELECT\n way,\n COALESCE(\n 'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END,\n 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sha [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -1711,7 +1711,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT\n way,\n way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n COALESCE(\n 'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', 'museum', 'zoo', 'information', 'picnic_site') THEN tourism ELSE NULL END,\n 'amenity_' || [...] + "table": "(SELECT\n way,\n way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n COALESCE(\n 'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', 'museum', 'zoo', 'information', 'picnic_site') THEN tourism ELSE NULL END,\n 'amenity_' || [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -1763,7 +1763,7 @@ "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", "Datasource": { "extent": "-20037508,-20037508,20037508,20037508", - "table": "(SELECT\n way,\n way_pixels,\n feature,\n access,\n CONCAT(\n name,\n CASE WHEN name IS NOT NULL AND elevation IS NOT NULL THEN E'\\n' ELSE NULL END,\n CASE WHEN elevation IS NOT NULL THEN CONCAT(REPLACE(ROUND(elevation)::TEXT, '-', U&'\\2212'), U&'\\00A0', 'm') ELSE NULL END\n ) AS name,\n CASE\n WHEN \"natural\" IN ('peak', 'volcano', 'saddle') THEN elevation\n ELSE NULL\n END AS score,\n operator,\n ref,\n [...] + "table": "(SELECT\n way,\n way_pixels,\n feature,\n access,\n CONCAT(\n name,\n CASE WHEN name IS NOT NULL AND elevation IS NOT NULL THEN E'\\n' ELSE NULL END,\n CASE WHEN elevation IS NOT NULL THEN CONCAT(REPLACE(ROUND(elevation)::TEXT, '-', U&'\\2212'), U&'\\00A0', 'm') ELSE NULL END\n ) AS name,\n CASE\n WHEN \"natural\" IN ('peak', 'volcano', 'saddle') THEN elevation\n ELSE NULL\n END AS score,\n operator,\n ref,\n [...] "geometry_field": "way", "type": "postgis", "key_field": "", diff --git a/project.yaml b/project.yaml index 582bc72..22dcf90 100644 --- a/project.yaml +++ b/project.yaml @@ -260,8 +260,8 @@ Layer: properties: minzoom: 4 advanced: {} - - id: "water-areas-overlay" - name: "water-areas-overlay" + - id: "landcover-area-symbols" + name: "landcover-area-symbols" class: "" geometry: "polygon" <<: *extents @@ -270,13 +270,23 @@ Layer: table: |- (SELECT way, - CASE WHEN "natural" IN ('marsh', 'mud') THEN "natural" ELSE wetland END AS int_wetland + COALESCE("natural", CASE WHEN landuse = 'forest' THEN 'wood' ELSE NULL END) AS "natural", + CASE WHEN "natural" IN ('marsh', 'mud') + THEN "natural" + ELSE CASE WHEN ("natural" = 'wetland' AND wetland IS NULL) + THEN 'wetland' + ELSE CASE WHEN ("natural" = 'wetland') + THEN wetland + ELSE NULL + END + END + END AS int_wetland FROM planet_osm_polygon - WHERE "natural" IN ('marsh', 'mud', 'wetland') + WHERE ("natural" IN ('marsh', 'mud', 'wetland', 'wood') OR landuse = 'forest') AND building IS NULL AND way_area > 0.01*!pixel_width!::real*!pixel_height!::real ORDER BY z_order, way_area DESC - ) AS water_areas_overlay + ) AS landcover_area_symbols properties: minzoom: 10 advanced: {} @@ -461,7 +471,7 @@ Layer: # an order is generated in SQL. table: |- (SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature, - horse, foot, bicycle, tracktype, access, construction, + horse, foot, bicycle, tracktype, int_surface, access, construction, service, oneway, link, layernotnull FROM ( -- subselect that contains both roads and rail/aero SELECT @@ -471,6 +481,8 @@ Layer: foot, bicycle, tracktype, + CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', + 'grass_paver', 'gravel', 'ground', 'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay') THEN 'unpaved' ELSE 'paved' END AS int_surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -504,6 +516,7 @@ Layer: foot, bicycle, tracktype, + 'null', CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text @@ -567,7 +580,8 @@ Layer: ORDER BY layernotnull, prio, - CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END + CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END, + CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 2 END ) AS tunnels properties: group-by: "layernotnull" @@ -598,7 +612,7 @@ Layer: <<: *osm2pgsql table: |- (SELECT - way, landuse, leisure + way, landuse FROM planet_osm_polygon WHERE landuse = 'military' AND building IS NULL @@ -732,7 +746,7 @@ Layer: <<: *osm2pgsql table: |- (SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature, - horse, foot, bicycle, tracktype, access, construction, + horse, foot, bicycle, tracktype, int_surface, access, construction, service, oneway, link, layernotnull FROM ( -- subselect that contains both roads and rail/aero SELECT @@ -742,6 +756,8 @@ Layer: foot, bicycle, tracktype, + CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', + 'grass_paver', 'gravel', 'ground', 'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay') THEN 'unpaved' ELSE 'paved' END AS int_surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -777,6 +793,7 @@ Layer: foot, bicycle, tracktype, + 'null', CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text @@ -842,7 +859,8 @@ Layer: ORDER BY layernotnull, prio, - CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END + CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END, + CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 2 END ) AS roads_casing properties: minzoom: 10 @@ -880,7 +898,7 @@ Layer: <<: *osm2pgsql table: |- (SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature, - horse, foot, bicycle, tracktype, access, construction, + horse, foot, bicycle, tracktype, int_surface, access, construction, service, oneway, link, layernotnull FROM ( -- subselect that contains both roads and rail/aero SELECT @@ -890,6 +908,8 @@ Layer: foot, bicycle, tracktype, + CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', + 'grass_paver', 'gravel', 'ground', 'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay') THEN 'unpaved' ELSE 'paved' END AS int_surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -925,6 +945,7 @@ Layer: foot, bicycle, tracktype, + 'null', CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text @@ -990,7 +1011,8 @@ Layer: ORDER BY layernotnull, prio, - CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END + CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END, + CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 2 END ) AS roads_fill properties: minzoom: 10 @@ -1058,7 +1080,9 @@ Layer: ('railway_' || (CASE WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' WHEN railway IN ('rail', 'tram', 'light_rail', 'funicular', 'narrow_gauge') THEN railway ELSE NULL END)) ) AS feature, CASE WHEN tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes' THEN 'yes' ELSE 'no' END AS int_tunnel, - CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' ELSE 'no' END AS link + CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' ELSE 'no' END AS link, + CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', + 'grass_paver', 'gravel', 'ground', 'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay') THEN 'unpaved' ELSE 'paved' END AS int_surface FROM planet_osm_roads WHERE highway IS NOT NULL OR (railway IS NOT NULL AND railway != 'preserved' @@ -1101,7 +1125,7 @@ Layer: <<: *osm2pgsql table: |- (SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature, - horse, foot, bicycle, tracktype, access, construction, + horse, foot, bicycle, tracktype, int_surface, access, construction, service, oneway, link, layernotnull FROM ( -- subselect that contains both roads and rail/aero SELECT @@ -1111,6 +1135,8 @@ Layer: foot, bicycle, tracktype, + CASE WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', + 'grass_paver', 'gravel', 'ground', 'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay') THEN 'unpaved' ELSE 'paved' END AS int_surface, CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text ELSE NULL @@ -1144,6 +1170,7 @@ Layer: foot, bicycle, tracktype, + 'null', CASE WHEN access IN ('destination') THEN 'destination'::text WHEN access IN ('no', 'private') THEN 'no'::text @@ -1207,7 +1234,8 @@ Layer: ORDER BY layernotnull, prio, - CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END + CASE WHEN access IN ('no', 'private') THEN 0 WHEN access IN ('destination') THEN 1 ELSE 2 END, + CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 2 END ) AS bridges properties: group-by: "layernotnull" @@ -1552,7 +1580,7 @@ Layer: 'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END, 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END, 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'clinic', 'fire_station', 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'tel [...] - 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'newsagent', 'optician', 'jewelry', ' [...] + 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'musical_instrument', 'newsagent', 'o [...] 'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table') THEN leisure ELSE NULL END, 'man_made_' || CASE WHEN man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill') THEN man_made ELSE NULL END, 'natural_' || CASE WHEN "natural" IN ('spring') THEN "natural" ELSE NULL END, @@ -1598,7 +1626,7 @@ Layer: 'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END, 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END, 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'clinic', 'fire_station', 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'tel [...] - 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'newsagent', 'optician', 'jewelry', ' [...] + 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'musical_instrument', 'newsagent', 'o [...] 'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway') THEN leisure ELSE NULL END, 'man_made_' || CASE WHEN man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill') THEN man_made ELSE NULL END, 'natural_' || CASE WHEN "natural" IN ('peak', 'volcano', 'saddle', 'spring', 'cave_entrance') THEN "natural" ELSE NULL END, @@ -1859,7 +1887,7 @@ Layer: 'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') THEN aeroway ELSE NULL END, 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', 'museum', 'zoo', 'information', 'picnic_site') THEN tourism ELSE NULL END, 'amenity_' || CASE WHEN amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'clinic', 'parking', 'bicycle_parking', 'motorcycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicy [...] - 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'newsagent', 'optician', 'jewelry', ' [...] + 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'musical_instrument', 'newsagent', 'o [...] 'leisure_' || CASE WHEN leisure IN ('swimming_pool', 'water_park', 'miniature_golf', 'golf_course', 'sports_centre', 'stadium', 'track', 'pitch', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', 'marina', 'picnic_table') THEN leisure ELSE NULL END, 'landuse_' || CASE WHEN landuse IN ('reservoir', 'basin', 'recreation_ground', 'conservation', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'greenhouse_horticulture', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military') THEN landuse ELSE NULL END, 'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'pier', 'breakwater', 'groyne') THEN man_made ELSE NULL END, @@ -1965,7 +1993,7 @@ Layer: 'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') THEN aeroway ELSE NULL END, 'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', 'museum', 'zoo', 'information', 'picnic_site') THEN tourism ELSE NULL END, 'amenity_' || CASE WHEN amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'clinic', 'parking', 'bicycle_parking', 'motorcycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', ' [...] - 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'newsagent', 'optician', 'jewelry [...] + 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'musical_instrument', 'newsagent' [...] 'leisure_' || CASE WHEN leisure IN ('swimming_pool', 'water_park', 'miniature_golf', 'golf_course', 'sports_centre', 'stadium', 'track', 'pitch', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', 'marina', 'slipway', 'picnic_table') THEN leisure ELSE NULL END, 'landuse_' || CASE WHEN landuse IN ('reservoir', 'basin', 'recreation_ground', 'conservation', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'greenhouse_horticulture', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military') THEN landuse ELSE NULL END, 'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower') THEN man_made ELSE NULL END, diff --git a/roads.mss b/roads.mss index 093a981..7ed116c 100644 --- a/roads.mss +++ b/roads.mss @@ -99,12 +99,12 @@ @pedestrian-width-z15: 6; @bridleway-width-z15: 1.2; @footway-width-z15: 1.5; -@cycleway-width-z15: 1.2; +@cycleway-width-z15: 1.3; @path-width-z15: 0.5; @track-width-z15: 1.5; @track-grade1-width-z15: 0.75; @track-grade2-width-z15: 0.75; -@steps-width-z15: 4; +@steps-width-z15: 3; @residential-width-z16: 11.2; @living-street-width-z16: 9; @@ -123,6 +123,9 @@ @pedestrian-width-z17: 14; @service-width-z17: 7; +@footway-width-z19: 1.8; +@cycleway-width-z19: 1.6; + @casing-width-z12: 0.5; @casing-width-z13: 0.5; @residential-casing-width-z13: 0.5; @@ -405,12 +408,13 @@ } [feature = 'highway_footway'], - [feature = 'highway_path'][foot = 'designated'] { + [feature = 'highway_path'][bicycle != 'designated'][horse != 'designated'] { .bridges-casing { [zoom >= 14][access != 'no'], [zoom >= 15] { line-width: @footway-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); [zoom >= 15] { line-width: @footway-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); } + [zoom >= 19] { line-width: @footway-width-z19 + 2 * (@paths-background-width + @paths-bridge-casing-width); } line-color: @bridge-casing; line-join: round; } @@ -420,6 +424,7 @@ [zoom >= 15] { line-width: @footway-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); [zoom >= 15] { line-width: @footway-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); } + [zoom >= 19] { line-width: @footway-width-z19 + 2 * (@paths-background-width + @paths-bridge-casing-width); } line-color: @tunnel-casing; line-dasharray: 4,2; } @@ -433,6 +438,7 @@ [zoom >= 15] { line-width: @cycleway-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); [zoom >= 15] { line-width: @cycleway-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); } + [zoom >= 19] { line-width: @cycleway-width-z19 + 2 * (@paths-background-width + @paths-bridge-casing-width); } line-color: @bridge-casing; line-join: round; } @@ -442,27 +448,7 @@ [zoom >= 15] { line-width: @cycleway-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); [zoom >= 15] { line-width: @cycleway-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); } - line-color: @tunnel-casing; - line-dasharray: 4,2; - } - } - } - - [feature = 'highway_path'] { - .bridges-casing { - [zoom >= 14][access != 'no'], - [zoom >= 15] { - line-width: @path-width-z13 + 2 * (@paths-background-width + @paths-bridge-casing-width); - [zoom >= 15] { line-width: @path-width-z15 + 2 * (@paths-background-width + @paths-bridge-casing-width); } - line-color: @bridge-casing; - line-join: round; - } - } - .tunnels-casing { - [zoom >= 13][access != 'no'], - [zoom >= 15] { - line-width: @path-width-z13 + 2 * (@paths-background-width + @paths-tunnel-casing-width); - [zoom >= 15] { line-width: @path-width-z15 + 2 * (@paths-background-width + @paths-tunnel-casing-width); } + [zoom >= 19] { line-width: @cycleway-width-z19 + 2 * (@paths-background-width + @paths-bridge-casing-width); } line-color: @tunnel-casing; line-dasharray: 4,2; } @@ -638,12 +624,13 @@ } [feature = 'highway_footway'], - [feature = 'highway_path'][foot = 'designated'] { + [feature = 'highway_path'][bicycle != 'designated'][horse != 'designated'] { .bridges-casing { [zoom >= 14][access != 'no'], [zoom >= 15] { line-width: @footway-width-z13 + 2 * @paths-background-width; [zoom >= 15] { line-width: @footway-width-z15 + 2 * @paths-background-width; } + [zoom >= 19] { line-width: @footway-width-z19 + 2 * @paths-background-width; } line-color: @footway-casing; line-join: round; } @@ -656,6 +643,7 @@ line-join: round; line-width: @footway-width-z13 + 2 * @paths-background-width; [zoom >= 15] { line-width: @footway-width-z15 + 2 * @paths-background-width; } + [zoom >= 19] { line-width: @footway-width-z19 + 2 * @paths-background-width; } } } } @@ -667,6 +655,7 @@ [zoom >= 15] { line-width: @cycleway-width-z13 + 2 * @paths-background-width; [zoom >= 15] { line-width: @cycleway-width-z15 + 2 * @paths-background-width; } + [zoom >= 19] { line-width: @cycleway-width-z19 + 2 * @paths-background-width; } line-color: @cycleway-casing; line-join: round; } @@ -679,6 +668,7 @@ line-join: round; line-width: @cycleway-width-z13 + 2 * @paths-background-width; [zoom >= 15] { line-width: @cycleway-width-z15 + 2 * @paths-background-width; } + [zoom >= 19] { line-width: @cycleway-width-z19 + 2 * @paths-background-width; } } } } @@ -705,28 +695,6 @@ } } - [feature = 'highway_path'] { - .bridges-casing { - [zoom >= 14][access != 'no'], - [zoom >= 15] { - line-width: @path-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { line-width: @path-width-z15 + 2 * @paths-background-width; } - line-color: @path-casing; - line-join: round; - } - } - .tunnels-casing { - [zoom >= 13][access != 'no'], - [zoom >= 15] { - line-color: @path-casing; - line-cap: round; - line-join: round; - line-width: @path-width-z13 + 2 * @paths-background-width; - [zoom >= 15] { line-width: @path-width-z15 + 2 * @paths-background-width; } - } - } - } - [feature = 'highway_track'] { /* We don't set opacity here, so it's 1.0. Aside from that, it's basically a copy of roads-fill::background in the track part of ::fill */ .bridges-casing { @@ -852,7 +820,7 @@ /* Data on z<10 comes from osm_planet_roads, data on z>=10 comes from osm_planet_line. This is for performance reasons: osm_planet_roads contains less data, and is thus faster. Chosen is for zoom level 10 as cut-off, because -residential is rendered from z10 and is not included in osm_planet_roads. */ +tertiary is rendered from z10 and is not included in osm_planet_roads. */ #roads-low-zoom[zoom < 10], .roads-fill[zoom >= 10], @@ -1254,8 +1222,12 @@ residential is rendered from z10 and is not included in osm_planet_roads. */ line-join: round; line-cap: round; } - [zoom >= 13] { line-width: 4; } - [zoom >= 15] { line-width: 7; } + [zoom >= 13] { line-width: 2; } + [zoom >= 14] { line-width: 3; } + [zoom >= 15] { line-width: 6; } + [zoom >= 18] { line-width: 8; } + [zoom >= 19] { line-width: 12; } + [zoom >= 20] { line-width: 24; } } [feature = 'highway_platform'] { @@ -1311,7 +1283,7 @@ residential is rendered from z10 and is not included in osm_planet_roads. */ } [feature = 'highway_footway'], - [feature = 'highway_path'][foot = 'designated'] { + [feature = 'highway_path'][bicycle != 'designated'][horse != 'designated'] { [zoom >= 13][access != 'no'], [zoom >= 15] { .roads-fill[zoom >= 15] { @@ -1320,13 +1292,29 @@ residential is rendered from z10 and is not included in osm_planet_roads. */ background/line-join: round; background/line-width: @footway-width-z15 + 2 * @paths-background-width; background/line-opacity: 0.4; + [zoom >= 19] { + background/line-width: @footway-width-z19 + 2 * @paths-background-width; + } } line/line-color: @footway-fill; line/line-dasharray: 1,3; line/line-join: round; line/line-cap: round; line/line-width: @footway-width-z13; - [zoom >= 15] { line/line-width: @footway-width-z15; } + [zoom >= 15][int_surface = 'paved'] { + line/line-width: @footway-width-z15; + [zoom >= 19] { + line/line-width: @footway-width-z19; + } + } + [zoom >= 15][int_surface = 'unpaved'] { + line/line-dasharray: 0.5,2.5; + line/line-width: @footway-width-z15/1.7; + [zoom >= 19] { + line/line-dasharray: 0.8,2.5; + line/line-width: @footway-width-z19/1.7; + } + } } } @@ -1340,36 +1328,29 @@ residential is rendered from z10 and is not included in osm_planet_roads. */ background/line-join: round; background/line-width: @cycleway-width-z15 + 2 * @paths-background-width; background/line-opacity: 0.4; + [zoom >= 19] { + background/line-width: @cycleway-width-z19 + 2 * @paths-background-width; + } } line/line-color: @cycleway-fill; line/line-dasharray: 1,3; line/line-join: round; line/line-cap: round; line/line-width: @cycleway-width-z13; - [zoom >= 15] { line/line-width: @cycleway-width-z15; } - } - } - - /* - * The above defininitions should override this when needed - * given the specitivity precedence. - */ - [feature = 'highway_path'] { - [zoom >= 13][access != 'no'], - [zoom >= 15] { - .roads-fill[zoom >= 15] { - background/line-color: @path-casing; - background/line-cap: round; - background/line-join: round; - background/line-width: @path-width-z15 + 2 * @paths-background-width; - background/line-opacity: 0.4; + [zoom >= 15][int_surface = 'paved'] { + line/line-width: @cycleway-width-z15; + [zoom >= 19] { + line/line-width: @cycleway-width-z19; + } + } + [zoom >= 15][int_surface = 'unpaved'] { + line/line-dasharray: 0.5,2.5; + line/line-width: @cycleway-width-z15/1.7; + [zoom >= 19] { + line/line-dasharray: 0.8,2.5; + line/line-width: @cycleway-width-z19/1.7; + } } - line/line-color: @path-fill; - line/line-dasharray: 6,3; - line/line-join: round; - line/line-cap: round; - line/line-width: @path-width-z13; - [zoom >= 15] { line/line-width: @path-width-z15; } } } diff --git a/symbols/forest.png b/symbols/forest.png index d6d50c9..89a9da6 100644 Binary files a/symbols/forest.png and b/symbols/forest.png differ diff --git a/symbols/musical_instrument-14.svg b/symbols/musical_instrument-14.svg new file mode 100644 index 0000000..a912a20 --- /dev/null +++ b/symbols/musical_instrument-14.svg @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xml:space="preserve" + enable-background="new 0 0 580 580" + viewBox="0 0 14 14" + height="14" + width="14" + y="0px" + x="0px" + id="svg2" + version="1.1"><metadata + id="metadata13"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs11" /><path + d="m 11,6 c 1,0 2,1 2,2 l 0,2 c 0.0034,0.946601 -1,2 -2,2 L 6,12 C 5,12 4,11 4,10 L 4,8 C 4,7 5,6 6,6 L 7,6 C 5,7 5,7 5,9 5,9.558061 5.5149841,9.961494 6,10 l 5,0 c 0.605412,0 1,-0.441939 1,-1 0,-2 0,-2 -2,-3.0047349 z M 7,3 7,4.9882812 5,5 5,6 7,6 7,8 8,8 8,6 l 1,0 0,2 1,0 0,-2 3,0 c 0,1 1,1 1,1 l 0,-3 c 0,0 -1,4.76e-4 -1,0.953125 L 10,4.9707031 10,3 9,3 9,4.9765625 8,4.9824219 8,3 7,3 Z M 0,10 0,1 C 3,1 3,5 5,5 L 5,6 C 3,6 3,10 0,10 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1" + id="path3389" /> +</svg> \ No newline at end of file diff --git a/water.mss b/water.mss index f96f5f1..a6408c9 100644 --- a/water.mss +++ b/water.mss @@ -53,39 +53,6 @@ } } -#water-areas-overlay { - [zoom >= 10] { - polygon-pattern-file: url('symbols/wetland.png'); - polygon-pattern-alignment: global; - } - [zoom >= 14] { - [int_wetland = 'marsh'], - [int_wetland = 'saltmarsh'], - [int_wetland = 'wet_meadow'], - [int_wetland = 'fen'] { - polygon-pattern-file: url('symbols/wetland_marsh.png'); - polygon-pattern-alignment: global; - } - [int_wetland = 'reedbed'] { - polygon-pattern-file: url('symbols/wetland_reed.png'); - polygon-pattern-alignment: global; - } - [int_wetland = 'mangrove'] { - polygon-pattern-file: url('symbols/wetland_mangrove.png'); - polygon-pattern-alignment: global; - } - [int_wetland = 'swamp'] { - polygon-pattern-file: url('symbols/wetland_swamp.png'); - polygon-pattern-alignment: global; - } - [int_wetland = 'bog'], - [int_wetland = 'string_bog'] { - polygon-pattern-file: url('symbols/wetland_bog.png'); - polygon-pattern-alignment: global; - } - } -} - #water-lines-casing { [waterway = 'stream'], [waterway = 'ditch'], -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/openstreetmap-carto.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel