This is an automated email from the git hooks/post-receive script. sebastic pushed a commit to branch master in repository openstreetmap-carto.
commit 4b82da9617fb9a00682613eceefd6f6fa5c1b4b5 Author: Bas Couwenberg <sebas...@xs4all.nl> Date: Sun Aug 30 16:56:58 2015 +0200 Imported Upstream version 2.30.0 --- .gitattributes | 1 + INSTALL.md | 2 +- admin.mss | 2 +- amenity-points.mss | 425 ++++++++++++++++++---------- landcover.mss | 66 ++++- project.mml | 46 +-- project.yaml | 281 +++++++++++------- roads.mss | 17 +- symbols/amenity_court.p.20.png | Bin 802 -> 0 bytes symbols/archaeological_site.16.svg | 14 + symbols/bench.16.svg | 40 +++ symbols/bicycle_parking.16.svg | 40 +++ symbols/bus_stop.12.svg | 14 + symbols/bus_stop.p.12.png | Bin 353 -> 0 bytes symbols/caravan_park.16.svg | 14 + symbols/caravan_park.p.24.png | Bin 486 -> 0 bytes symbols/courthouse-16.svg | 40 +++ symbols/hunting-stand.16.svg | 40 +++ symbols/lighthouse.16.svg | 40 +++ symbols/lighthouse.p.20.png | Bin 487 -> 0 bytes symbols/monument.16.svg | 14 + symbols/motel.16.svg | 40 +++ symbols/motel.p.20.png | Bin 657 -> 0 bytes symbols/power_wind-16.svg | 40 +++ symbols/power_wind.png | Bin 638 -> 0 bytes symbols/shop_alcohol.16.svg | 14 + symbols/shop_bicycle.16.svg | 40 +++ symbols/shop_clothes.16.svg | 14 + symbols/shop_clothes.svg | 4 - symbols/shop_diy.16.svg | 40 +++ symbols/shop_diy.p.16.png | Bin 383 -> 0 bytes symbols/shop_electronics.16.svg | 14 + symbols/shop_furniture.16.svg | 14 + symbols/shop_gift.16.svg | 14 + symbols/shop_jewelry.16.svg | 14 + symbols/shop_mobile_phone.16.svg | 14 + symbols/shop_optician.16.svg | 14 + symbols/shop_shoes.16.svg | 40 +++ symbols/shopping_bicycle.p.16.png | Bin 522 -> 0 bytes symbols/tourist_archaeological2.glow.24.png | Bin 1134 -> 0 bytes symbols/waste_basket.10.svg | 40 +++ symbols/wetland.png | Bin 2832 -> 2698 bytes symbols/wetland_bog.png | Bin 0 -> 26984 bytes symbols/wetland_mangrove.png | Bin 0 -> 30426 bytes symbols/wetland_marsh.png | Bin 0 -> 32247 bytes symbols/wetland_reed.png | Bin 0 -> 35227 bytes symbols/wetland_swamp.png | Bin 0 -> 29181 bytes water-features.mss | 8 +- water.mss | 59 +++- 49 files changed, 1208 insertions(+), 311 deletions(-) diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c29e2c2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.mml binary diff --git a/INSTALL.md b/INSTALL.md index ab22cee..d7858dc 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,6 +1,6 @@ # Installation -You need OpenStreetMap data loaded into a PostGIS database (see below for [dependencies](https://github.com/gravitystorm/openstreetmap-carto#dependencies)). These stylesheets currently work only with the osm2pgsql defaults (i.e. database name is `gis`, table names are `planet_osm_point`, etc). +You need OpenStreetMap data loaded into a PostGIS database (see below for [dependencies](#dependencies)). These stylesheets currently work only with the osm2pgsql defaults (i.e. database name is `gis`, table names are `planet_osm_point`, etc). It's probably easiest to grab an PBF of OSM data from [Mapzen](https://mapzen.com/metro-extracts/) or [geofabrik](http://download.geofabrik.de/). Once you've set up your PostGIS database, import with osm2pgsql: diff --git a/admin.mss b/admin.mss index 290b0f6..ca3c975 100644 --- a/admin.mss +++ b/admin.mss @@ -3,7 +3,7 @@ /* For performance reasons, the admin border layers are split into three groups for low, middle and high zoom levels. For each zoomlevel, all borders come from a single attachment, to handle -overlapping borders correctly. +overlapping borders correctly. */ #admin-low-zoom[zoom < 11], diff --git a/amenity-points.mss b/amenity-points.mss index 08ad3cc..62386be 100644 --- a/amenity-points.mss +++ b/amenity-points.mss @@ -1,6 +1,5 @@ @marina-text: #576ddf; // also swimming_pool -@wetland-text: darken(#017fff, 10%); /* Also for marsh */ -@mud-text: darken(#aea397, 20%); +@wetland-text: darken(#4aa5fa, 25%); /* Also for marsh and mud */ @shop-icon: #ac39ac; @money-icon: #555555; @transportation-icon: #0092da; @@ -8,6 +7,7 @@ @airtransport: #8461C4; @health-color: #da0092; @amenity-brown: #734a08; +@man-made-icon: #555; @landcover-font-size: 10; @landcover-font-size-big: 12; @@ -68,7 +68,7 @@ marker-clip: false; } [zoom >= 17] { - marker-file: url('symbols/bus_stop.p.12.png'); + marker-file: url('symbols/bus_stop.12.svg'); marker-width: 12; } } @@ -105,8 +105,10 @@ } [feature = 'tourism_caravan_site'][zoom >= 16] { - point-file: url('symbols/caravan_park.p.24.png'); - point-placement: interior; + marker-file: url('symbols/caravan_park.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @transportation-icon; } [feature = 'amenity_car_sharing'][zoom >= 16] { @@ -177,8 +179,10 @@ } [feature = 'tourism_motel'][zoom >= 17] { - point-file: url('symbols/motel.p.20.png'); - point-placement: interior; + marker-file: url('symbols/motel.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @transportation-icon; } [feature = 'tourism_information'][zoom >= 17] { @@ -199,8 +203,10 @@ } [feature = 'amenity_courthouse'][zoom >= 16] { - point-file: url('symbols/amenity_court.p.20.png'); - point-placement: interior; + marker-file: url('symbols/courthouse-16.svg'); + marker-placement: interior; + marker-fill: @amenity-brown; + marker-clip: false; } [feature = 'amenity_townhall'][zoom >= 16] { @@ -212,7 +218,7 @@ [feature = 'man_made_mast'][zoom >= 17] { marker-file: url('symbols/communications.16.svg'); - marker-fill: #555; + marker-fill: @man-made-icon; marker-placement: interior; marker-clip: false; } @@ -224,8 +230,14 @@ marker-clip: false; } - [feature = 'amenity_parking'][zoom >= 16] { - marker-file: url('symbols/parking.svg'); + [feature = 'amenity_parking'][way_pixels > 900], + [feature = 'amenity_bicycle_parking'][way_pixels > 900] { + [feature = 'amenity_bicycle_parking'] { + marker-file: url('symbols/bicycle_parking.16.svg'); + } + [feature = 'amenity_parking'] { + marker-file: url('symbols/parking.svg'); + } marker-placement: interior; marker-clip: false; marker-fill: @transportation-icon; @@ -400,9 +412,18 @@ marker-clip: false; } + [feature = 'historic_monument'][zoom >= 16] { + marker-file: url('symbols/monument.16.svg'); + marker-fill: @amenity-brown; + marker-placement: interior; + marker-clip: false; + } + [feature = 'historic_archaeological_site'][zoom >= 16] { - point-file: url('symbols/tourist_archaeological2.glow.24.png'); - point-placement: interior; + marker-file: url('symbols/archaeological_site.16.svg'); + marker-fill: @amenity-brown; + marker-placement: interior; + marker-clip: false; } [feature = 'shop_other'][zoom >= 17] { @@ -443,7 +464,7 @@ [feature = 'shop_clothes'], [feature = 'shop_fashion'] { [zoom >= 17] { - marker-file: url('symbols/shop_clothes.svg'); + marker-file: url('symbols/shop_clothes.16.svg'); marker-placement: interior; marker-clip: false; marker-fill: @shop-icon; @@ -462,10 +483,14 @@ point-placement: interior; } - [feature = 'shop_doityourself'][zoom >= 17] { - marker-file: url('symbols/shop_diy.p.16.png'); - marker-placement: interior; - marker-clip: false; + [feature = 'shop_doityourself'], + [feature = 'shop_hardware'] { + [zoom >= 17] { + marker-file: url('symbols/shop_diy.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } } [feature = 'shop_florist'][zoom >= 17] { @@ -497,7 +522,8 @@ } [feature = 'shop_bicycle'][zoom >= 17] { - marker-file: url('symbols/shopping_bicycle.p.16.png'); + marker-file: url('symbols/shop_bicycle.16.svg'); + marker-fill: @shop-icon; marker-placement: interior; marker-clip: false; } @@ -509,6 +535,65 @@ marker-fill: @shop-icon; } + [feature = 'shop_shoes'][zoom >= 17] { + marker-file: url('symbols/shop_shoes.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } + + [feature = 'shop_gift'][zoom >= 17] { + marker-file: url('symbols/shop_gift.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } + + [feature = 'shop_electronics'][zoom >= 17] { + marker-file: url('symbols/shop_electronics.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } + + [feature = 'shop_alcohol'][zoom >= 17] { + marker-file: url('symbols/shop_alcohol.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } + + [feature = 'shop_optician'][zoom >= 17] { + marker-file: url('symbols/shop_optician.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } + + [feature = 'shop_furniture'][zoom >= 17] { + marker-file: url('symbols/shop_furniture.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } + + [feature = 'shop_mobile_phone'][zoom >= 17] { + marker-file: url('symbols/shop_mobile_phone.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } + + [feature = 'shop_jewelry'], + [feature = 'shop_jewellery'] { + [zoom >= 17] { + marker-file: url('symbols/shop_jewelry.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @shop-icon; + } + } + [feature = 'leisure_water_park'][zoom >= 17] { point-file: url('symbols/water_park.p.20.png'); point-placement: interior; @@ -568,8 +653,10 @@ } [feature = 'man_made_lighthouse'][zoom >= 15] { - point-file: url('symbols/lighthouse.p.20.png'); - point-placement: interior; + marker-file: url('symbols/lighthouse.16.svg'); + marker-placement: interior; + marker-clip: false; + marker-fill: @transportation-icon; } [feature = 'natural_peak'][zoom >= 11] { @@ -607,8 +694,10 @@ [feature = 'power_generator']['generator:source' = 'wind'], [feature = 'power_generator'][power_source = 'wind'] { [zoom >= 15] { - point-file: url('symbols/power_wind.png'); - point-placement: interior; + marker-file: url('symbols/power_wind-16.svg'); + marker-placement: interior; + marker-fill: black; + marker-clip: false; } } @@ -616,9 +705,32 @@ point-file: url('symbols/windmill.png'); point-placement: interior; } + + [feature = 'amenity_hunting_stand'][zoom >= 16] { + marker-file: url('symbols/hunting-stand.16.svg'); + marker-fill: @man-made-icon; + marker-placement: interior; + marker-clip: false; + } } .amenity-low-priority { + [amenity = 'parking'][zoom >= 17], + [amenity = 'bicycle_parking'][zoom >= 17] { + [amenity = 'bicycle_parking'] { + marker-file: url('symbols/bicycle_parking.16.svg'); + } + [amenity = 'parking'] { + marker-file: url('symbols/parking.svg'); + } + marker-placement: interior; + marker-clip: false; + marker-fill: @transportation-icon; + [access != ''][access != 'public'][access != 'yes'] { + marker-opacity: 0.33; + } + } + [railway = 'level_crossing'][zoom >= 14]::railway { point-file: url('symbols/level_crossing.svg'); point-placement: interior; @@ -661,14 +773,27 @@ } } } + + [amenity = 'bench'][zoom >= 19]::amenity { + marker-file: url('symbols/bench.16.svg'); + marker-fill: #744a08; + marker-placement: interior; + } + + [amenity = 'waste_basket'][zoom >= 19]::amenity { + marker-file: url('symbols/waste_basket.10.svg'); + marker-fill: #744a08; + marker-placement: interior; + } } +/* Note that .text is also used in water.mss */ .text-low-zoom[zoom < 10], .text[zoom >= 10] { - [feature = 'place_island'][zoom >= 7][way_pixels > 3000], - [feature = 'place_island'][zoom >= 16], - [feature = 'place_islet'][zoom >= 14][way_pixels > 3000], - [feature = 'place_islet'][zoom >= 17] { + [feature = 'place_island'][zoom >= 7][way_pixels > 3000][way_pixels < 800000], + [feature = 'place_island'][zoom >= 16][way_pixels < 800000], + [feature = 'place_islet'][zoom >= 14][way_pixels > 3000][way_pixels < 800000], + [feature = 'place_islet'][zoom >= 17][way_pixels < 800000] { text-name: "[name]"; text-fill: #000; text-size: 10; @@ -730,11 +855,20 @@ } } - [feature = 'amenity_car_rental'][zoom >= 17] { + [feature = 'amenity_car_rental'][zoom >= 17], + [feature = 'amenity_car_sharing'][zoom >= 17], + [feature = 'amenity_bicycle_rental'][zoom >= 17], + [feature = 'leisure_slipway'][zoom >= 17] { text-name: "[name]"; + [feature = 'amenity_car_sharing'] { + text-name: "[operator]"; + } text-size: 9; text-fill: @transportation-text; - text-dy: 10; + [feature = 'amenity_car_rental'] { text-dy: 10; } + [feature = 'amenity_car_sharing'] { text-dy: 11; } + [feature = 'amenity_bicycle_rental'] { text-dy: 10; } + [feature = 'leisure_slipway'] { text-dy: 13; } text-face-name: @book-fonts; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); @@ -742,7 +876,8 @@ text-placement: interior; } - [feature = 'amenity_parking'][zoom >= 17] { + [feature = 'amenity_parking'][zoom >= 10][way_pixels > 900], + [feature = 'amenity_bicycle_parking'][zoom >= 10][way_pixels > 900] { text-name: "[name]"; text-size: 9; text-fill: @transportation-text; @@ -755,15 +890,26 @@ [access != ''][access != 'public'][access != 'yes'] { text-fill: #66ccaf; } + [feature = 'amenity_bicycle_parking'] { + text-dy: 12; + } } [feature = 'amenity_police'][zoom >= 17], - [feature = 'amenity_fire_station'][zoom >= 17] { + [feature = 'amenity_fire_station'][zoom >= 17], + [feature = 'amenity_drinking_water'][zoom >= 17], + [feature = 'amenity_recyling'][zoom >= 17], + [feature = 'tourism_picnic_site'][zoom >= 17], + [feature = 'leisure_picnic_table'][zoom >= 17], + [feature = 'amenity_post_office'][zoom >= 17] { text-name: "[name]"; text-size: 10; text-fill: @amenity-brown; - text-dy: 11; + text-dy: 10; + [feature = 'amenity_police'] { text-dy: 11; } + [feature = 'amenity_fire_station'] { text-dy: 11; } + [feature = 'amenity_post_office'] { text-dy: 11; } text-face-name: @book-fonts; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); @@ -803,13 +949,14 @@ [feature = 'natural_peak'][zoom >= 13], [feature = 'natural_volcano'][zoom >= 13], - [feature = 'natural_saddle'][zoom >= 15] { + [feature = 'natural_saddle'][zoom >= 15], + [feature = 'tourism_viewpoint'][zoom >= 16] { text-name: "[name]"; text-size: 10; - [feature = 'natural_peak'] { text-fill: darken(#d08f55, 30%); } + text-fill: darken(#d08f55, 30%); [feature = 'natural_volcano'] { text-fill: #d40000; } - [feature = 'natural_saddle'] { text-fill: darken(#d08f55, 30%); } text-dy: 7; + [feature = 'tourism_viewpoint'] { text-dy: 11; } text-face-name: @book-fonts; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); @@ -817,11 +964,15 @@ text-placement: interior; } - [feature = 'natural_cave_entrance'][zoom >= 15] { + [feature = 'natural_cave_entrance'][zoom >= 15], + [feature = 'man_made_mast'][zoom >= 17], + [feature = 'man_made_water_tower'][zoom >= 17] { text-name: "[name]"; text-size: 10; text-fill: black; - text-dy: 11; + [feature = 'natural_cave_entrance'] { text-dy: 11; } + [feature = 'man_made_mast'] { text-dy: 10; } + [feature = 'man_made_water_tower'] { text-dy: 13; } text-face-name: @book-fonts; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); @@ -830,12 +981,12 @@ } [feature = 'historic_memorial'][zoom >= 17], + [feature = 'historic_monument'][zoom >= 16], [feature = 'historic_archaeological_site'][zoom >= 17] { text-name: "[name]"; text-size: 9; text-fill: @amenity-brown; - text-dy: 15; - [feature = 'historic_memorial'] { text-dy: 11; } + text-dy: 11; text-face-name: @book-fonts; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); @@ -843,49 +994,9 @@ text-placement: interior; } - [feature = 'natural_water'], - [feature = 'natural_lake'], - [feature = 'landuse_reservoir'], - [feature = 'landuse_basin'] { - [way_area >= 40000000][zoom >= 10], - [way_area >= 10000000][zoom >= 11], - [way_area >= 2400000][zoom >= 12], - [way_area >= 600000][zoom >= 13], - [way_area >= 150000][zoom >= 14], - [way_area >= 80000][zoom >= 15], - [way_area >= 20000][zoom >= 16], - [zoom >= 17] { - text-name: "[name]"; - text-size: 12; - text-fill: @water-text; - text-face-name: @oblique-fonts; - text-halo-radius: 1; - text-halo-fill: rgba(255,255,255,0.6); - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - } - - [feature = 'natural_mud'][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: @mud-text; - 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_wetland'][is_building = 'no'], - [feature = 'natural_marsh'][is_building = 'no'] { + [feature = 'natural_marsh'][is_building = 'no'], + [feature = 'natural_mud'][is_building = 'no'] { [zoom >= 10][way_pixels > 3000], [zoom >= 17] { text-name: "[name]"; @@ -933,7 +1044,7 @@ text-face-name: @book-fonts; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); - text-wrap-width: 30; + text-wrap-width: @standard-wrap-width; text-placement: interior; } } @@ -1235,7 +1346,8 @@ } } [feature = 'landuse_farm'][is_building = 'no'], - [feature = 'landuse_farmland'][is_building = 'no'] { + [feature = 'landuse_farmland'][is_building = 'no'], + [feature = 'landuse_greenhouse_horticulture'][is_building = 'no'] { [zoom >= 10][way_pixels > 3000], [zoom >= 17] { text-name: "[name]"; @@ -1352,34 +1464,16 @@ text-dy: 6; } - [feature = 'tourism_alpine_hut'][zoom >= 15] { - text-name: "[name]"; - text-size: 9; - text-fill: #6699cc; - text-dy: 11; - text-face-name: @book-fonts; - text-halo-radius: 1; - text-halo-fill: rgba(255,255,255,0.6); - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'amenity_shelter'][zoom >= 17] { - text-name: "[name]"; - text-size: 9; - text-fill: #6699cc; - text-dy: 11; - text-face-name: @book-fonts; - text-halo-radius: 1; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'amenity_bank'][zoom >= 17] { + [feature = 'amenity_bank'][zoom >= 17], + [feature = 'amenity_atm'][zoom >= 17] { text-name: "[name]"; - text-size: 9; + [feature = 'amenity_atm'] { + text-name: "[operator]"; + } + text-size: 10; + [feature = 'amenity_bank'] { text-dy: 9; } + [feature = 'amenity_atm'] { text-dy: 10; } text-fill: black; - text-dy: 12; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); text-wrap-width: @standard-wrap-width; @@ -1387,41 +1481,37 @@ text-face-name: @book-fonts; } - [feature = 'tourism_hotel'], - [feature = 'tourism_motel'], - [feature = 'tourism_hostel'], - [feature = 'tourism_chalet'] { - [zoom >= 17] { - text-name: "[name]"; - text-size: 10; - text-fill: #0066ff; - text-dy: 13; - text-face-name: @book-fonts; - text-halo-radius: 1; - text-halo-fill: rgba(255,255,255,0.6); - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [feature = 'tourism_chalet'] { - text-dy: 11; - } - } - } - - [feature = 'amenity_embassy'][zoom >= 17] { + [feature = 'tourism_alpine_hut'][zoom >= 15], + [feature = 'amenity_shelter'][zoom >= 17], + [feature = 'tourism_hotel'][zoom >= 17], + [feature = 'tourism_motel'][zoom >= 17], + [feature = 'tourism_hostel'][zoom >= 17], + [feature = 'tourism_chalet'][zoom >= 17], + [feature = 'tourism_guest_house'][zoom >= 17], + [feature = 'tourism_camp_site'][zoom >= 17] { text-name: "[name]"; - text-size: 9; + text-size: 10; text-fill: #0066ff; - text-dy: 10; + text-dy: 13; text-face-name: @book-fonts; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); text-wrap-width: @standard-wrap-width; text-placement: interior; + [feature = 'tourism_alpine_hut'], + [feature = 'amenity_shelter'], + [feature = 'tourism_chalet'], + [feature = 'tourism_guest_house'] { + text-dy: 11; + } + [feature = 'tourism_camp_site'] { + text-dy: 15; + } } - [feature = 'tourism_guest_house'][zoom >= 17] { + [feature = 'amenity_embassy'][zoom >= 17] { text-name: "[name]"; - text-size: 8; + text-size: 9; text-fill: #0066ff; text-dy: 10; text-face-name: @book-fonts; @@ -1450,18 +1540,6 @@ } } - [feature = 'tourism_camp_site'][zoom >= 17] { - text-name: "[name]"; - text-size: 10; - text-fill: #0066ff; - text-dy: 15; - text-face-name: @book-fonts; - text-halo-radius: 1; - text-halo-fill: rgba(255,255,255,0.6); - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - [feature = 'tourism_caravan_site'][is_building = 'no'] { [zoom >= 10][way_pixels > 3000], [zoom >= 17] { @@ -1576,11 +1654,13 @@ text-placement: interior; } - [feature = 'man_made_windmill'][zoom >= 17] { + [feature = 'man_made_windmill'][zoom >= 17], + [feature = 'amenity_recycling'][zoom >= 17] { text-name: "[name]"; text-size: 9; text-fill: @amenity-brown; text-dy: 12; + [feature = 'amenity_recycling'] { text-dy: 10; } text-face-name: @book-fonts; text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); @@ -1622,6 +1702,7 @@ [feature = 'shop_fashion'], [feature = 'shop_convenience'], [feature = 'shop_doityourself'], + [feature = 'shop_hardware'], [feature = 'shop_hairdresser'], [feature = 'shop_butcher'], [feature = 'shop_car'], @@ -1629,6 +1710,15 @@ [feature = 'shop_bicycle'], [feature = 'shop_florist'], [feature = 'shop_pet'], + [feature = 'shop_shoes'], + [feature = 'shop_gift'], + [feature = 'shop_electronics'], + [feature = 'shop_alcohol'], + [feature = 'shop_optician'], + [feature = 'shop_furniture'], + [feature = 'shop_mobile_phone'], + [feature = 'shop_jewelry'], + [feature = 'shop_jewellery'], [feature = 'shop_other']{ [zoom >= 17] { text-name: "[name]"; @@ -1920,7 +2010,7 @@ text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); text-placement: interior; - text-wrap-width: 30; + text-wrap-width: @standard-wrap-width; } [feature = 'aeroway_aerodrome'][zoom >= 10][zoom < 14] { @@ -1932,7 +2022,34 @@ text-halo-radius: 1; text-halo-fill: rgba(255,255,255,0.6); text-placement: interior; - text-wrap-width: 30; + text-wrap-width: @standard-wrap-width; + } + + [feature = 'amenity_hunting_stand'][zoom >= 17] { + text-name: "[name]"; + text-size: 10; + text-dy: 11; + text-fill: @man-made-icon; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-halo-fill: rgba(255,255,255,0.6); + text-placement: interior; + text-wrap-width: @standard-wrap-width; + } + + [feature = 'natural_tree'][zoom >= 17] { + text-name: "[name]"; + text-size: 9; + text-fill: green; + text-dy: 7; + [zoom >= 18] { text-dy: 8; } + [zoom >= 19] { text-dy: 11; } + [zoom >= 20] { text-dy: 18; } + text-face-name: @book-fonts; + text-halo-radius: 1; + text-halo-fill: rgba(255,255,255,0.6); + text-placement: interior; + text-wrap-width: @standard-wrap-width; } } @@ -1962,6 +2079,7 @@ marker-line-width: 0; marker-width: 2.5; marker-height: 2.5; + marker-ignore-placement: true; [zoom >= 17] { marker-width: 5; marker-height: 5; @@ -1986,15 +2104,16 @@ trunk/marker-allow-overlap: true; trunk/marker-line-width: 0; trunk/marker-width: 2; - trunk/marker-height: 2; + trunk/marker-height: 2; + trunk/marker-ignore-placement: true; } [zoom >= 19] { trunk/marker-width: 3; - trunk/marker-height: 3; + trunk/marker-height: 3; } [zoom >= 20] { trunk/marker-width: 6; - trunk/marker-height: 6; + trunk/marker-height: 6; } } } diff --git a/landcover.mss b/landcover.mss index 5a7ac24..627424b 100644 --- a/landcover.mss +++ b/landcover.mss @@ -7,6 +7,7 @@ @wood: #aed1a0; @vineyard: #b3e2a8; @grassland: #c6e4b4; +@scrub: #b5e3b5; // --- sports --- @@ -44,6 +45,7 @@ @danger_area: pink; @garages: #dfddce; @heath: #d6d99f; +@mud: rgba(203,177,154,0.3); // produces #e6dcd1 over @land @parking: #f7efb7; @place_of_worship: #cdccc9; @place_of_worship_outline: #111; @@ -53,7 +55,6 @@ @sand: #f5e9c6; @school: #f0f0d8; // also university, college, hospital, kindergarten @station: #d4aaaa; -@scrub: #b5e3b5; @orchard: #9ed88f; @theme_park: #734a08; @quarry: #c5c3c3; @@ -63,7 +64,19 @@ #landcover-low-zoom[zoom < 10], #landcover[zoom >= 10] { - [feature = 'leisure_swimming_pool'][zoom >= 14] { + + ::first { + [feature = 'wetland_mud'], + [feature = 'wetland_tidalflat'] { + [zoom >= 9] { + polygon-fill: @mud; + [way_pixels >= 4] { polygon-gamma: 0.75; } + [way_pixels >= 64] { polygon-gamma: 0.3; } + } + } + } + + [feature = 'leisure_swimming_pool'][zoom >= 14] { polygon-fill: @water-color; line-color: saturate(darken(@water-color, 40%), 30%); line-width: 0.5; @@ -278,7 +291,8 @@ } [feature = 'landuse_farm'], - [feature = 'landuse_farmland'] { + [feature = 'landuse_farmland'], + [feature = 'landuse_greenhouse_horticulture'] { [zoom >= 10] { polygon-fill: @farmland; [zoom >= 16] { @@ -440,6 +454,30 @@ [way_pixels >= 64] { polygon-pattern-gamma: 0.3; } } } + + [feature = 'wetland_swamp'][zoom >= 8] { + polygon-fill: @wood; + [way_pixels >= 4] { polygon-gamma: 0.75; } + [way_pixels >= 64] { polygon-gamma: 0.3; } + } + + [feature = 'wetland_bog'], + [feature = 'wetland_string_bog'] { + [zoom >= 10] { + polygon-fill: @heath; + [way_pixels >= 4] { polygon-gamma: 0.75; } + [way_pixels >= 64] { polygon-gamma: 0.3; } + } + } + + [feature = 'wetland_wet_meadow'], + [feature = 'wetland_marsh'] { + [zoom >= 10] { + polygon-fill: @grass; + [way_pixels >= 4] { polygon-gamma: 0.75; } + [way_pixels >= 64] { polygon-gamma: 0.3; } + } + } [feature = 'amenity_university'], [feature = 'amenity_college'], @@ -457,7 +495,8 @@ } } - [feature = 'amenity_parking'][zoom >= 10] { + [feature = 'amenity_parking'][zoom >= 10], + [feature = 'amenity_bicycle_parking'][zoom >= 10] { polygon-fill: @parking; [zoom >= 15] { line-width: 0.3; @@ -535,12 +574,12 @@ /* man_made=cutline */ #landcover-line { [zoom >= 14] { - line-width: 3; + line-width: 1.5; line-join: round; line-cap: square; line-color: @land-color; [zoom >= 16] { - line-width: 6; + line-width: 2; } } } @@ -614,3 +653,18 @@ } } } + +#text-line { + [feature = 'natural_cliff'][zoom >= 15], + [feature = 'man_made_embankment'][zoom >= 15] { + text-name: "[name]"; + text-halo-radius: 1; + text-halo-fill: rgba(255,255,255,0.6); + text-fill: #999; + text-size: 10; + text-face-name: @book-fonts; + text-placement: line; + text-dy: 8; + text-spacing: 400; + } +} diff --git a/project.mml b/project.mml index 7361cd0..c5e8b82 100644 --- a/project.mml +++ b/project.mml @@ -100,7 +100,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, name, way_pixels,\n COALESCE(landuse, \"natural\") AS feature\n FROM (SELECT\n way, COALESCE(name, '') AS name,\n ('landuse_' || (CASE WHEN landuse IN ('forest') THEN landuse ELSE NULL END)) AS landuse,\n ('natural_' || (CASE WHEN \"natural\" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock') THEN \"natural\" ELSE NULL END)) AS \"natural\",\n way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels\n FROM p [...] + "table": "(SELECT\n way, name, way_pixels,\n COALESCE(wetland, landuse, \"natural\") AS feature\n FROM (SELECT\n way, COALESCE(name, '') AS name,\n ('landuse_' || (CASE WHEN landuse IN ('forest') THEN landuse ELSE NULL END)) AS landuse,\n ('natural_' || (CASE WHEN \"natural\" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock') THEN \"natural\" ELSE NULL END)) AS \"natural\",\n ('wetland_' || (CASE WHEN \"natural\" IN ('wetland', 'mud') THEN (CASE WHEN [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -126,7 +126,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, name, religion, way_pixels,\n COALESCE(aeroway, amenity, landuse, leisure, military, \"natural\", power, tourism, highway, railway) AS feature \n FROM (SELECT \n way, COALESCE(name, '') AS name, \n ('aeroway_' || (CASE WHEN aeroway IN ('apron', 'aerodrome') THEN aeroway ELSE NULL END)) AS aeroway,\n ('amenity_' || (CASE WHEN amenity IN ('parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'prison', [...] + "table": "(SELECT\n way, name, religion, way_pixels,\n COALESCE(aeroway, amenity, wetland, landuse, leisure, military, \"natural\", power, tourism, highway, railway) AS feature\n FROM (SELECT\n way, COALESCE(name, '') AS name,\n ('aeroway_' || (CASE WHEN aeroway IN ('apron', 'aerodrome') THEN aeroway ELSE NULL END)) AS aeroway,\n ('amenity_' || (CASE WHEN amenity IN ('parking', 'bicycle_parking', 'university', 'college', 'school', 'hospital', 'kindergarten', [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -178,7 +178,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, waterway, intermittent,\n CASE WHEN tunnel IN ('yes', 'culvert') THEN 'yes' ELSE 'no' END AS int_tunnel\n FROM planet_osm_line\n WHERE waterway IN ('stream', 'drain', 'ditch')\n) AS water_lines_casing", + "table": "(SELECT\n way, waterway, intermittent,\n CASE WHEN tunnel IN ('yes', 'culvert') THEN 'yes' ELSE 'no' END AS int_tunnel\n FROM planet_osm_line\n WHERE waterway IN ('stream', 'drain', 'ditch')\n) AS water_lines_casing", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -231,7 +231,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, \"natural\", waterway, landuse, name, way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels\n FROM planet_osm_polygon\n WHERE\n (waterway IN ('dock', 'riverbank', 'canal')\n OR landuse IN ('reservoir', 'basin')\n OR \"natural\" IN ('water', 'glacier', 'mud'))\n AND building IS NULL\n AND way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) > 0.01\n ORDER BY z_order, way_area DESC\n) AS water_areas", + "table": "(SELECT\n way, \"natural\", waterway, landuse, name, way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels\n FROM planet_osm_polygon\n WHERE\n (waterway IN ('dock', 'riverbank', 'canal')\n OR landuse IN ('reservoir', 'basin')\n OR \"natural\" IN ('water', 'glacier'))\n AND building IS NULL\n AND way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) > 0.01\n ORDER BY z_order, way_area DESC\n) AS water_areas", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -257,7 +257,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, \"natural\"\n FROM planet_osm_polygon\n WHERE \"natural\" IN ('marsh', 'wetland')\n AND building IS NULL\n ORDER BY z_order, way_area DESC\n) AS water_areas_overlay", + "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 ORDER BY z_order, way_area DESC\n) AS water_areas_overlay", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -283,7 +283,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, waterway, name, intermittent,\n CASE WHEN tunnel IN ('yes', 'culvert') THEN 'yes' ELSE 'no' END AS int_tunnel,\n 'no' AS bridge\n FROM planet_osm_line\n WHERE waterway IN ('river', 'canal', 'derelict_canal', 'stream', 'drain', 'ditch', 'wadi')\n AND (bridge IS NULL OR bridge NOT IN ('yes', 'aqueduct'))\n ORDER BY z_order\n) AS water_lines", + "table": "(SELECT\n way, waterway, name, intermittent,\n CASE WHEN tunnel IN ('yes', 'culvert') THEN 'yes' ELSE 'no' END AS int_tunnel,\n 'no' AS bridge\n FROM planet_osm_line\n WHERE waterway IN ('river', 'canal', 'derelict_canal', 'stream', 'drain', 'ditch', 'wadi')\n AND (bridge IS NULL OR bridge NOT IN ('yes', 'aqueduct'))\n ORDER BY z_order\n) AS water_lines", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -309,7 +309,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, waterway, name \n FROM planet_osm_line \n WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_line", + "table": "(SELECT way, waterway, name\n FROM planet_osm_line\n WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_line", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -335,7 +335,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, waterway, name \n FROM planet_osm_polygon \n WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_poly", + "table": "(SELECT way, waterway, name\n FROM planet_osm_polygon\n WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_poly", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -439,7 +439,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, waterway \n FROM planet_osm_point \n WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_points", + "table": "(SELECT\n way, waterway\n FROM planet_osm_point\n WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_points", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -517,7 +517,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 FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n foot,\n bicycle,\n tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN [...] + "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 [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -800,7 +800,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 FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n foot,\n bicycle,\n tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN [...] + "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 [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -852,7 +852,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 FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n foot,\n bicycle,\n tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN [...] + "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 [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -878,7 +878,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 DISTINCT on (p.way)\n p.way AS way, l.highway AS int_tc_type,\n CASE WHEN l.service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text\n ELSE 'INT-normal'::text END AS int_tc_service\n FROM planet_osm_point p\n JOIN planet_osm_line l\n ON ST_DWithin(p.way, l.way, 0.1)\n JOIN (VALUES\n ('tertiary', 1),\n ('unclassified', 2),\n ('residential', 3),\n ('living_street', 4),\n ('service', 5)\n [...] + "table": "(SELECT\n DISTINCT on (p.way)\n p.way AS way, l.highway AS int_tc_type,\n CASE WHEN l.service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text\n ELSE 'INT-normal'::text END AS int_tc_service\n FROM planet_osm_point p\n JOIN planet_osm_line l\n ON ST_DWithin(p.way, l.way, 0.1)\n JOIN (VALUES\n ('tertiary', 1),\n ('unclassified', 2),\n ('residential', 3),\n ('living_street', 4),\n ('service', 5),\n [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -983,7 +983,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 FROM ( -- subselect that contains both roads and rail/aero\n SELECT\n way,\n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, --only motorway to tertiary links are accepted later on\n horse,\n foot,\n bicycle,\n tracktype,\n CASE WHEN access IN ('destination') THEN 'destination'::text\n WHEN access IN [...] + "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 [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -1428,7 +1428,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": "", @@ -1454,7 +1454,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": "", @@ -1689,7 +1689,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 'landuse_' || CASE WHEN landuse IN ('forest') THEN landuse ELSE NULL END,\n 'natural_' || CASE WHEN \"natural\" IN ('wood', 'glacier', 'sand', 'scree', 'shingle', 'bare_rock') THEN \"natural\" ELSE NULL END,\n 'boundary_' || CASE WHEN boundary IN ('national_park') THEN boundary ELSE NULL END\n ) AS feature,\n name,\n CASE WHEN buildi [...] + "table": "(SELECT\n way,\n way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n COALESCE(\n 'landuse_' || CASE WHEN landuse IN ('forest') THEN landuse ELSE NULL END,\n 'natural_' || CASE WHEN \"natural\" IN ('wood', 'glacier', 'sand', 'scree', 'shingle', 'bare_rock') THEN \"natural\" ELSE NULL END,\n 'place_' || CASE WHEN place IN ('island') THEN place ELSE NULL END,\n 'boundary_' || CASE WHEN boundary IN ('national_park') THEN [...] "geometry_field": "way", "type": "postgis", "key_field": "", @@ -1716,7 +1716,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": "", @@ -1741,7 +1741,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, NULL as way_pixels, COALESCE('man_made_' || man_made, 'waterway_' || waterway) AS feature, access, NULL as ele, name, ref, NULL AS way_area,\n CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building\n FROM planet_osm_line\n WHERE man_made IN ('pier', 'breakwater', 'groyne')\n OR waterway IN ('dam', 'weir')\n) AS text_line", + "table": "(SELECT way, NULL as way_pixels, COALESCE('man_made_' || man_made, 'waterway_' || waterway, 'natural_' || \"natural\") AS feature, access, NULL as ele, name, operator, ref, NULL AS way_area,\n CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building\n FROM planet_osm_line\n WHERE man_made IN ('pier', 'breakwater', 'groyne', 'embankment')\n OR waterway IN ('dam', 'weir')\n OR \"natural\" IN ('cliff')\n) AS text_line", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -1765,7 +1765,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 NULL 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_' || CASE WHEN amenity IN ('pub', 'restaurant', 'food_court' [...] + "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": "", @@ -1791,7 +1791,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 name,\n way,\n way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels\n FROM planet_osm_polygon\n WHERE building IS NOT NULL\n AND building NOT IN ('no', 'station', 'supermarket')\n ORDER BY way_area DESC\n) AS building_text", + "table": "(SELECT\n name,\n way,\n way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels\n FROM planet_osm_polygon\n WHERE building IS NOT NULL\n AND building NOT IN ('no')\n ORDER BY way_area DESC\n) AS building_text", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -1999,7 +1999,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 railway,\n highway,\n barrier\n FROM planet_osm_point\n WHERE barrier IN ('bollard', 'gate', 'lift_gate', 'block')\n OR highway IN ('mini_roundabout')\n OR railway = 'level_crossing'\n ) AS amenity_low_priority", + "table": "(SELECT\n way,\n amenity,\n railway,\n highway,\n barrier,\n access,\n CASE WHEN amenity='waste_basket' THEN 2 ELSE 1 END AS prio\n FROM planet_osm_point p\n WHERE barrier IN ('bollard', 'gate', 'lift_gate', 'block')\n OR highway IN ('mini_roundabout')\n OR railway = 'level_crossing'\n OR amenity IN ('parking', 'bicycle_parking', 'bench', 'waste_basket')\n ORDER BY prio\n ) AS amenity_low_priority", "geometry_field": "way", "type": "postgis", "key_field": "", @@ -2025,7 +2025,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 railway,\n highway,\n barrier\n FROM planet_osm_polygon\n WHERE barrier IN ('bollard', 'gate', 'lift_gate', 'block')\n OR highway IN ('mini_roundabout')\n OR railway = 'level_crossing'\n ) AS amenity_low_priority_poly", + "table": "(SELECT\n way,\n amenity,\n railway,\n highway,\n barrier,\n access\n FROM planet_osm_polygon\n WHERE barrier IN ('bollard', 'gate', 'lift_gate', 'block')\n OR highway IN ('mini_roundabout')\n OR railway = 'level_crossing'\n OR amenity IN ('parking', 'bicycle_parking')\n ) AS amenity_low_priority_poly", "geometry_field": "way", "type": "postgis", "key_field": "", diff --git a/project.yaml b/project.yaml index 71c6112..88ecd2a 100644 --- a/project.yaml +++ b/project.yaml @@ -111,15 +111,16 @@ Layer: table: |- (SELECT way, name, way_pixels, - COALESCE(landuse, "natural") AS feature + COALESCE(wetland, landuse, "natural") AS feature FROM (SELECT way, COALESCE(name, '') AS name, ('landuse_' || (CASE WHEN landuse IN ('forest') THEN landuse ELSE NULL END)) AS landuse, ('natural_' || (CASE WHEN "natural" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock') THEN "natural" ELSE NULL END)) AS "natural", + ('wetland_' || (CASE WHEN "natural" IN ('wetland', 'mud') THEN (CASE WHEN "natural" IN ('mud') THEN "natural" ELSE wetland END) ELSE NULL END)) AS wetland, way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels FROM planet_osm_polygon WHERE (landuse IN ('forest') - OR "natural" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock')) + OR "natural" IN ('wood', 'wetland', 'mud', 'sand', 'scree', 'shingle', 'bare_rock')) AND way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) > 0.01 AND building IS NULL ORDER BY z_order, way_area DESC @@ -138,15 +139,16 @@ Layer: table: |- (SELECT way, name, religion, way_pixels, - COALESCE(aeroway, amenity, landuse, leisure, military, "natural", power, tourism, highway, railway) AS feature - FROM (SELECT - way, COALESCE(name, '') AS name, + COALESCE(aeroway, amenity, wetland, landuse, leisure, military, "natural", power, tourism, highway, railway) AS feature + FROM (SELECT + way, COALESCE(name, '') AS name, ('aeroway_' || (CASE WHEN aeroway IN ('apron', 'aerodrome') THEN aeroway ELSE NULL END)) AS aeroway, - ('amenity_' || (CASE WHEN amenity IN ('parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'prison', 'place_of_worship') THEN amenity ELSE NULL END)) AS amenity, - ('landuse_' || (CASE WHEN landuse IN ('quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'recreation_ground', 'conservation', 'village_green', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction') THEN landuse ELSE NULL END)) AS landuse, + ('amenity_' || (CASE WHEN amenity IN ('parking', 'bicycle_parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'prison', 'place_of_worship') THEN amenity ELSE NULL END)) AS amenity, + ('landuse_' || (CASE WHEN landuse IN ('quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'greenhouse_horticulture', 'recreation_ground', 'conservation', 'village_green', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction') THEN landuse ELSE NULL END)) AS landuse, ('leisure_' || (CASE WHEN leisure IN ('swimming_pool', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'golf_course', 'miniature_golf', 'picnic_table', 'sports_centre', 'stadium', 'pitch', 'track') THEN leisure ELSE NULL END)) AS leisure, ('military_' || (CASE WHEN military IN ('danger_area') THEN military ELSE NULL END)) AS military, - ('natural_' || (CASE WHEN "natural" IN ('beach', 'heath', 'mud', 'grassland', 'wood', 'sand', 'scree', 'shingle', 'bare_rock', 'scrub') THEN "natural" ELSE NULL END)) AS "natural", + ('natural_' || (CASE WHEN "natural" IN ('beach', 'heath', 'grassland', 'wood', 'sand', 'scree', 'shingle', 'bare_rock', 'scrub') THEN "natural" ELSE NULL END)) AS "natural", + ('wetland_' || (CASE WHEN "natural" IN ('wetland', 'marsh', 'mud') THEN (CASE WHEN "natural" IN ('marsh', 'mud') THEN "natural" ELSE wetland END) ELSE NULL END)) AS wetland, ('power_' || (CASE WHEN power IN ('station', 'sub_station', 'substation', 'generator') THEN power ELSE NULL END)) AS power, ('tourism_' || (CASE WHEN tourism IN ('attraction', 'camp_site', 'caravan_site', 'picnic_site', 'zoo') THEN tourism ELSE NULL END)) AS tourism, ('highway_' || (CASE WHEN highway IN ('services', 'rest_area') THEN highway ELSE NULL END)) AS highway, @@ -157,9 +159,9 @@ Layer: WHERE (landuse IS NOT NULL OR leisure IS NOT NULL OR aeroway IN ('apron', 'aerodrome') - OR amenity IN ('parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'place_of_worship', 'prison') + OR amenity IN ('parking', 'bicycle_parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'place_of_worship', 'prison') OR military IN ('danger_area') - OR "natural" IN ('beach', 'heath', 'mud', 'grassland', 'wood', 'sand', 'scree', 'shingle', 'bare_rock', 'scrub') + OR "natural" IN ('beach', 'heath', 'mud', 'marsh', 'wetland', 'grassland', 'wood', 'sand', 'scree', 'shingle', 'bare_rock', 'scrub') OR power IN ('station', 'sub_station', 'substation', 'generator') OR tourism IN ('attraction', 'camp_site', 'caravan_site', 'picnic_site', 'zoo') OR highway IN ('services', 'rest_area') @@ -195,7 +197,7 @@ Layer: Datasource: <<: *osm2pgsql table: |- - (SELECT + (SELECT way, waterway, intermittent, CASE WHEN tunnel IN ('yes', 'culvert') THEN 'yes' ELSE 'no' END AS int_tunnel FROM planet_osm_line @@ -234,7 +236,7 @@ Layer: WHERE (waterway IN ('dock', 'riverbank', 'canal') OR landuse IN ('reservoir', 'basin') - OR "natural" IN ('water', 'glacier', 'mud')) + OR "natural" IN ('water', 'glacier')) AND building IS NULL AND way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) > 0.01 ORDER BY z_order, way_area DESC @@ -251,9 +253,10 @@ Layer: <<: *osm2pgsql table: |- (SELECT - way, "natural" + way, + CASE WHEN "natural" IN ('marsh', 'mud') THEN "natural" ELSE wetland END AS int_wetland FROM planet_osm_polygon - WHERE "natural" IN ('marsh', 'wetland') + WHERE "natural" IN ('marsh', 'mud', 'wetland') AND building IS NULL ORDER BY z_order, way_area DESC ) AS water_areas_overlay @@ -268,7 +271,7 @@ Layer: Datasource: <<: *osm2pgsql table: |- - (SELECT + (SELECT way, waterway, name, intermittent, CASE WHEN tunnel IN ('yes', 'culvert') THEN 'yes' ELSE 'no' END AS int_tunnel, 'no' AS bridge @@ -288,8 +291,8 @@ Layer: Datasource: <<: *osm2pgsql table: |- - (SELECT way, waterway, name - FROM planet_osm_line + (SELECT way, waterway, name + FROM planet_osm_line WHERE waterway IN ('dam', 'weir', 'lock_gate') ) AS water_barriers_line advanced: {} @@ -300,11 +303,11 @@ Layer: class: "" geometry: "polygon" <<: *extents - Datasource: + Datasource: <<: *osm2pgsql table: |- - (SELECT way, waterway, name - FROM planet_osm_polygon + (SELECT way, waterway, name + FROM planet_osm_polygon WHERE waterway IN ('dam', 'weir', 'lock_gate') ) AS water_barriers_poly advanced: {} @@ -366,9 +369,9 @@ Layer: Datasource: <<: *osm2pgsql table: |- - (SELECT - way, waterway - FROM planet_osm_point + (SELECT + way, waterway + FROM planet_osm_point WHERE waterway IN ('dam', 'weir', 'lock_gate') ) AS water_barriers_points properties: @@ -427,11 +430,13 @@ Layer: # ALL is present, and to use an ordering different than current osm2pgsql # an order is generated in SQL. table: |- - (SELECT * + (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, + service, oneway, link, layernotnull FROM ( -- subselect that contains both roads and rail/aero SELECT way, - ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, --only motorway to tertiary links are accepted later on + ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on horse, foot, bicycle, @@ -728,11 +733,13 @@ Layer: Datasource: <<: *osm2pgsql table: |- - (SELECT * + (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, + service, oneway, link, layernotnull FROM ( -- subselect that contains both roads and rail/aero SELECT way, - ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, --only motorway to tertiary links are accepted later on + ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on horse, foot, bicycle, @@ -876,11 +883,13 @@ Layer: Datasource: <<: *osm2pgsql table: |- - (SELECT * + (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, + service, oneway, link, layernotnull FROM ( -- subselect that contains both roads and rail/aero SELECT way, - ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, --only motorway to tertiary links are accepted later on + ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on horse, foot, bicycle, @@ -1013,7 +1022,8 @@ Layer: ('unclassified', 2), ('residential', 3), ('living_street', 4), - ('service', 5) + ('service', 5), + ('track', 6) ) AS v (highway, prio) ON v.highway=l.highway WHERE p.highway = 'turning_circle' OR p.highway = 'turning_loop' @@ -1096,11 +1106,13 @@ Layer: Datasource: <<: *osm2pgsql table: |- - (SELECT * + (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, + service, oneway, link, layernotnull FROM ( -- subselect that contains both roads and rail/aero SELECT way, - ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END)) AS feature, --only motorway to tertiary links are accepted later on + ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on horse, foot, bicycle, @@ -1472,7 +1484,7 @@ Layer: class: "" geometry: "polygon" <<: *extents - Datasource: + Datasource: <<: *osm2pgsql table: |- (SELECT @@ -1501,12 +1513,12 @@ Layer: COALESCE( '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', 'fire_station', 'fuel', 'hospital', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'theatre', 'toilets', 'drinking_wate [...] - 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'books', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle', 'mall', 'pet') THEN shop WHEN shop IN ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'boutique', 'builder', 'build [...] + 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'fire_station', 'fuel', 'hospital', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'theatre', 'toile [...] + 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'books', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'shoes', 'alcohol', 'gift', 'furniture', 'mobile_phone', 'optician', 'jewelry', 'jewellery', 'electronics') THEN shop WHEN shop IN ('accessories', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bathroom_furnishing', 'be [...] '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 ('peak', 'volcano', 'saddle', 'spring') THEN "natural" ELSE NULL END, - 'historic_' || CASE WHEN historic IN ('memorial', 'archaeological_site') THEN historic ELSE NULL END, + 'natural_' || CASE WHEN "natural" IN ('spring') THEN "natural" ELSE NULL END, + 'historic_' || CASE WHEN historic IN ('memorial', 'monument', 'archaeological_site') THEN historic ELSE NULL END, 'highway_'|| CASE WHEN highway IN ('bus_stop', 'traffic_signals') THEN highway ELSE NULL END, 'power_' || CASE WHEN power IN ('generator') THEN power ELSE NULL END, 'tourism_' || CASE WHEN tourism IN ('viewpoint') THEN tourism ELSE NULL END @@ -1515,17 +1527,18 @@ Layer: religion, denomination, "generator:source", - power_source + power_source, + way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels FROM planet_osm_polygon -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering WHERE aeroway IN ('helipad', 'aerodrome') OR tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'viewpoint', 'picnic_site') - OR amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'fire_station', 'fuel', 'hospital', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'theatre', 'toilets', 'drinking_water', 'prison') + OR amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'fire_station', 'fuel', 'hospital', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'theatre', 'toilets', 'drinking_water', [...] OR shop IS NOT NULL -- skip checking a huge list and use a null check OR leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table') OR man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill') - OR "natural" IN ('peak', 'volcano', 'saddle', 'spring') - OR historic IN ('memorial', 'archaeological_site') + OR "natural" IN ('spring') + OR historic IN ('memorial', 'monument', 'archaeological_site') OR highway IN ('bus_stop', 'traffic_signals') OR (power = 'generator' AND ("generator:source" = 'wind' OR power_source = 'wind')) ORDER BY way_area desc @@ -1546,33 +1559,43 @@ Layer: COALESCE( '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', 'fire_station', 'fuel', 'hospital', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'theatre', 'toilets', 'drinking_wate [...] - 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'books', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle', 'mall', 'pet') THEN shop WHEN shop IN ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'boutique', 'builder', 'build [...] + 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'fire_station', 'fuel', 'hospital', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'theatre', 'toile [...] + 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'books', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'shoes', 'alcohol', 'gift', 'furniture', 'mobile_phone', 'optician', 'jewelry', 'jewellery', 'electronics') THEN shop WHEN shop IN ('accessories', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bathroom_furnishing', 'be [...] '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, - 'historic_' || CASE WHEN historic IN ('memorial', 'archaeological_site') THEN historic ELSE NULL END, + 'historic_' || CASE WHEN historic IN ('memorial', 'monument', 'archaeological_site') THEN historic ELSE NULL END, 'highway_'|| CASE WHEN highway IN ('bus_stop', 'traffic_signals', 'ford') THEN highway ELSE NULL END, 'power_' || CASE WHEN power IN ('generator') THEN power ELSE NULL END, 'tourism_' || CASE WHEN tourism IN ('viewpoint') THEN tourism ELSE NULL END ) AS feature, access, + CASE + WHEN "natural" IN ('peak', 'volcano', 'saddle') THEN + CASE + WHEN ele ~ '^-?\d{1,4}(\.\d+)?$' THEN ele::NUMERIC + ELSE NULL + END + ELSE NULL + END AS score, religion, denomination, "generator:source", - power_source + power_source, + NULL AS way_pixels FROM planet_osm_point -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering WHERE aeroway IN ('helipad', 'aerodrome') OR tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'viewpoint', 'picnic_site') - OR amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'fire_station', 'fuel', 'hospital', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'theatre', 'toilets', 'drinking_water', 'prison') + OR amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'fire_station', 'fuel', 'hospital', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'theatre', 'toilets', 'drinking_water', [...] OR shop IS NOT NULL -- skip checking a huge list and use a null check OR leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway') OR man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill') OR "natural" IN ('peak', 'volcano', 'saddle', 'spring', 'cave_entrance') - OR historic IN ('memorial', 'archaeological_site') + OR historic IN ('memorial', 'monument', 'archaeological_site') OR highway IN ('bus_stop', 'traffic_signals', 'ford') OR (power = 'generator' AND ("generator:source" = 'wind' OR power_source = 'wind')) + ORDER BY score DESC NULLS LAST ) AS amenity_points properties: minzoom: 10 @@ -1739,14 +1762,18 @@ Layer: COALESCE( 'landuse_' || CASE WHEN landuse IN ('forest') THEN landuse ELSE NULL END, 'natural_' || CASE WHEN "natural" IN ('wood', 'glacier', 'sand', 'scree', 'shingle', 'bare_rock') THEN "natural" ELSE NULL END, - 'boundary_' || CASE WHEN boundary IN ('national_park') THEN boundary ELSE NULL END + 'place_' || CASE WHEN place IN ('island') THEN place ELSE NULL END, + 'boundary_' || CASE WHEN boundary IN ('national_park') THEN boundary ELSE NULL END, + 'leisure_' || CASE WHEN leisure IN ('nature_reserve') THEN leisure ELSE NULL END ) AS feature, name, CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building -- always no with the where conditions FROM planet_osm_polygon WHERE (landuse IN ('forest') OR "natural" IN ('wood', 'glacier', 'sand', 'scree', 'shingle', 'bare_rock') - OR boundary IN ('national_park')) + OR "place" IN ('island') + OR boundary IN ('national_park') + OR leisure IN ('nature_reserve')) AND building IS NULL ORDER BY way_area DESC ) AS text_poly_low_zoom @@ -1770,15 +1797,15 @@ Layer: COALESCE( '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', 'parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_sharing', 'post_box', 'post_offi [...] - 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'books', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle', 'mall', 'pet') THEN shop WHEN shop IN ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'boutique', 'builder', 'build [...] - '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') 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', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military') THEN landuse ELSE NULL END, + 'amenity_' || CASE WHEN amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'parking', 'bicycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_sharing', 'po [...] + 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'books', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'shoes', 'alcohol', 'gift', 'furniture', 'mobile_phone', 'optician', 'jewelry', 'jewellery', 'electronics') THEN shop WHEN shop IN ('accessories', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bathroom_furnishing', 'be [...] + '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, - 'natural_' || CASE WHEN "natural" IN ('wood', 'peak', 'volcano', 'saddle', 'cave_entrance', 'water', 'lake', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier') THEN "natural" ELSE NULL END, + 'natural_' || CASE WHEN "natural" IN ('wood', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier') THEN "natural" ELSE NULL END, 'place_' || CASE WHEN place IN ('island', 'islet') THEN place ELSE NULL END, 'military_' || CASE WHEN military IN ('danger_area') THEN military ELSE NULL END, - 'historic_' || CASE WHEN historic IN ('memorial', 'archaeological_site') THEN historic ELSE NULL END, + 'historic_' || CASE WHEN historic IN ('memorial', 'monument', 'archaeological_site') THEN historic ELSE NULL END, 'highway_' || CASE WHEN highway IN ('services', 'rest_area', 'bus_stop', 'ford') THEN highway ELSE NULL END, 'power_' || CASE WHEN power IN ('station', 'generator', 'sub_station', 'substation') THEN power ELSE NULL END, 'boundary_' || CASE WHEN boundary IN ('national_park') THEN boundary ELSE NULL END, @@ -1787,6 +1814,7 @@ Layer: ) AS feature, access, name, + operator, ref, way_area, CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building @@ -1794,15 +1822,15 @@ Layer: -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering WHERE aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') OR tourism IN ('alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', 'museum', 'attraction', 'zoo', 'information', 'picnic_site') - OR amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_sharing', 'post_box', 'post_office', 'recycling', 'tele [...] + OR amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'parking', 'bicycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_sharing', 'post_box', 'post_office', [...] OR shop IS NOT NULL -- skip checking a huge list and use a null check - OR 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') - OR landuse IN ('reservoir', 'basin', 'recreation_ground', 'conservation', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military') + OR 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') + OR 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') OR man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'pier', 'breakwater', 'groyne') - OR "natural" IN ('wood', 'peak', 'volcano', 'saddle', 'cave_entrance', 'water', 'lake', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier') + OR "natural" IN ('wood', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier') OR place IN ('island', 'islet') OR military IN ('danger_area') - OR historic IN ('memorial', 'archaeological_site') + OR historic IN ('memorial', 'monument', 'archaeological_site') OR highway IN ('services', 'rest_area', 'bus_stop', 'ford') OR power IN ('station', 'generator', 'sub_station', 'substation') OR boundary IN ('national_park') @@ -1817,14 +1845,15 @@ Layer: class: "text" geometry: "linestring" <<: *extents - Datasource: + Datasource: <<: *osm2pgsql table: |- - (SELECT way, NULL as way_pixels, COALESCE('man_made_' || man_made, 'waterway_' || waterway) AS feature, access, NULL as ele, name, ref, NULL AS way_area, + (SELECT way, NULL as way_pixels, COALESCE('man_made_' || man_made, 'waterway_' || waterway, 'natural_' || "natural") AS feature, access, NULL as ele, name, operator, ref, NULL AS way_area, CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building FROM planet_osm_line - WHERE man_made IN ('pier', 'breakwater', 'groyne') + WHERE man_made IN ('pier', 'breakwater', 'groyne', 'embankment') OR waterway IN ('dam', 'weir') + OR "natural" IN ('cliff') ) AS text_line advanced: {} - id: "text-point" @@ -1839,47 +1868,78 @@ Layer: table: |- (SELECT way, - NULL AS way_pixels, - COALESCE( - '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', 'parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_sharing', 'post_box', 'post_offi [...] - 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'books', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle', 'mall', 'pet') THEN shop WHEN shop IN ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'boutique', 'builder', 'build [...] - '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') 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', '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, - 'natural_' || CASE WHEN "natural" IN ('wood', 'peak', 'volcano', 'saddle', 'cave_entrance', 'water', 'lake', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier') THEN "natural" ELSE NULL END, - 'place_' || CASE WHEN place IN ('island', 'islet') THEN place ELSE NULL END, - 'military_' || CASE WHEN military IN ('danger_area') THEN military ELSE NULL END, - 'historic_' || CASE WHEN historic IN ('memorial', 'archaeological_site') THEN historic ELSE NULL END, - 'highway_' || CASE WHEN highway IN ('services', 'rest_area', 'bus_stop', 'ford') THEN highway ELSE NULL END, - 'power_' || CASE WHEN power IN ('station', 'generator', 'sub_station', 'substation') THEN power ELSE NULL END, - 'boundary_' || CASE WHEN boundary IN ('national_park') THEN boundary ELSE NULL END, - 'waterway_' || CASE WHEN waterway IN ('dam', 'weir') THEN waterway ELSE NULL END, - 'tourism_' || CASE WHEN tourism IN ('attraction', 'viewpoint') THEN tourism ELSE NULL END - ) AS feature, + way_pixels, + feature, access, - (CASE WHEN "natural" IN ('peak', 'volcano', 'saddle') OR tourism = 'alpine_hut' OR amenity = 'shelter' THEN CASE WHEN ele IS NOT NULL THEN CASE WHEN name IS NOT NULL THEN CONCAT(name, E'\n', ele) ELSE ele END ELSE name END ELSE name END) AS name, + CONCAT( + name, + CASE WHEN name IS NOT NULL AND elevation IS NOT NULL THEN E'\n' ELSE NULL END, + CASE WHEN elevation IS NOT NULL THEN CONCAT(REPLACE(ROUND(elevation)::TEXT, '-', U&'\2212'), U&'\00A0', 'm') ELSE NULL END + ) AS name, + CASE + WHEN "natural" IN ('peak', 'volcano', 'saddle') THEN elevation + ELSE NULL + END AS score, + operator, ref, - NULL AS way_area, - CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building - FROM planet_osm_point - -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering - WHERE aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') - OR tourism IN ('alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', 'museum', 'attraction', 'zoo', 'information', 'viewpoint', 'picnic_site') - OR amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_sharing', 'post_box', 'post_office', 'recycling', 'tele [...] - OR shop IS NOT NULL -- skip checking a huge list and use a null check - OR 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') - OR landuse IN ('reservoir', 'basin', 'recreation_ground', 'conservation', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military') - OR man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower') - OR "natural" IN ('wood', 'peak', 'volcano', 'saddle', 'cave_entrance', 'water', 'lake', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier') - OR place IN ('island', 'islet') - OR military IN ('danger_area') - OR historic IN ('memorial', 'archaeological_site') - OR highway IN ('bus_stop', 'services', 'rest_area', 'bus_stop', 'ford') - OR power IN ('station', 'generator', 'sub_station', 'substation') - OR boundary IN ('national_park') - OR waterway IN ('dam', 'weir') + way_area, + is_building + FROM + (SELECT + way, + NULL AS way_pixels, + COALESCE( + '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', 'parking', 'bicycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_sharing', [...] + 'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'books', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'shoes', 'alcohol', 'gift', 'furniture', 'mobile_phone', 'optician', 'jewelry', 'jewellery', 'electronics') THEN shop WHEN shop IN ('accessories', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bathroom_furnishing', [...] + '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, + 'natural_' || CASE WHEN "natural" IN ('wood', 'peak', 'volcano', 'saddle', 'cave_entrance', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier', 'tree') THEN "natural" ELSE NULL END, + 'place_' || CASE WHEN place IN ('island', 'islet') THEN place ELSE NULL END, + 'military_' || CASE WHEN military IN ('danger_area') THEN military ELSE NULL END, + 'historic_' || CASE WHEN historic IN ('memorial', 'monument', 'archaeological_site') THEN historic ELSE NULL END, + 'highway_' || CASE WHEN highway IN ('services', 'rest_area', 'bus_stop', 'ford') THEN highway ELSE NULL END, + 'power_' || CASE WHEN power IN ('station', 'generator', 'sub_station', 'substation') THEN power ELSE NULL END, + 'boundary_' || CASE WHEN boundary IN ('national_park') THEN boundary ELSE NULL END, + 'waterway_' || CASE WHEN waterway IN ('dam', 'weir') THEN waterway ELSE NULL END, + 'tourism_' || CASE WHEN tourism IN ('attraction', 'viewpoint') THEN tourism ELSE NULL END + ) AS feature, + access, + name, + CASE + WHEN "natural" IN ('peak', 'volcano', 'saddle') OR tourism = 'alpine_hut' OR amenity = 'shelter' THEN + CASE + WHEN ele ~ '^-?\d{1,4}(\.\d+)?$' THEN ele::NUMERIC + ELSE NULL + END + ELSE NULL + END AS elevation, + "natural", + operator, + ref, + NULL AS way_area, + CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building + FROM planet_osm_point + -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering + WHERE aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') + OR tourism IN ('alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', 'museum', 'attraction', 'zoo', 'information', 'viewpoint', 'picnic_site') + OR amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'parking', 'bicycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', 'car_sharing', 'post_box', 'post_offi [...] + OR shop IS NOT NULL -- skip checking a huge list and use a null check + OR 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') + OR 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') + OR man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower') + OR "natural" IN ('wood', 'peak', 'volcano', 'saddle', 'cave_entrance', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier', 'tree') + OR place IN ('island', 'islet') + OR military IN ('danger_area') + OR historic IN ('memorial', 'monument', 'archaeological_site') + OR highway IN ('bus_stop', 'services', 'rest_area', 'bus_stop', 'ford') + OR power IN ('station', 'generator', 'sub_station', 'substation') + OR boundary IN ('national_park') + OR waterway IN ('dam', 'weir') + ) AS p + ORDER BY score DESC NULLS LAST ) AS text properties: minzoom: 10 @@ -1898,7 +1958,7 @@ Layer: way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels FROM planet_osm_polygon WHERE building IS NOT NULL - AND building NOT IN ('no', 'station', 'supermarket') + AND building NOT IN ('no') ORDER BY way_area DESC ) AS building_text properties: @@ -2059,13 +2119,18 @@ Layer: table: |- (SELECT way, + amenity, railway, highway, - barrier - FROM planet_osm_point + barrier, + access, + CASE WHEN amenity='waste_basket' THEN 2 ELSE 1 END AS prio + FROM planet_osm_point p WHERE barrier IN ('bollard', 'gate', 'lift_gate', 'block') OR highway IN ('mini_roundabout') OR railway = 'level_crossing' + OR amenity IN ('parking', 'bicycle_parking', 'bench', 'waste_basket') + ORDER BY prio ) AS amenity_low_priority properties: minzoom: 14 @@ -2080,14 +2145,18 @@ Layer: table: |- (SELECT way, + amenity, railway, highway, - barrier + barrier, + access FROM planet_osm_polygon WHERE barrier IN ('bollard', 'gate', 'lift_gate', 'block') OR highway IN ('mini_roundabout') OR railway = 'level_crossing' + OR amenity IN ('parking', 'bicycle_parking') ) AS amenity_low_priority_poly properties: minzoom: 14 advanced: {} + diff --git a/roads.mss b/roads.mss index edf282a..304722d 100644 --- a/roads.mss +++ b/roads.mss @@ -934,7 +934,7 @@ residential is rendered from z10 and is not included in osm_planet_roads. */ [zoom < 13] { line-width: 0; b/line-width: 0; - } + } [zoom >= 13][zoom < 14] { line-width: 3; b/line-width: 2; @@ -1843,6 +1843,19 @@ residential is rendered from z10 and is not included in osm_planet_roads. */ marker-ignore-placement: true; marker-line-width: 0; } + + [int_tc_type = 'track'][zoom >= 15] { + marker-fill: @track-fill; + marker-width: 12; + marker-height: 12; + [zoom >= 17] { + marker-width: 14; + marker-height: 14; + } + marker-allow-overlap: true; + marker-ignore-placement: true; + marker-line-width: 0; + } } #highway-area-casing { @@ -2250,7 +2263,7 @@ residential is rendered from z10 and is not included in osm_planet_roads. */ text-placement: line; text-face-name: @book-fonts; text-halo-radius: 1; - text-halo-fill: @secondary-fill; + text-halo-fill: @secondary-fill; } [zoom >= 14] { text-size: 9; diff --git a/symbols/amenity_court.p.20.png b/symbols/amenity_court.p.20.png deleted file mode 100644 index eed9852..0000000 Binary files a/symbols/amenity_court.p.20.png and /dev/null differ diff --git a/symbols/archaeological_site.16.svg b/symbols/archaeological_site.16.svg new file mode 100644 index 0000000..3431811 --- /dev/null +++ b/symbols/archaeological_site.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 3,0 3,1 4,1 C 4.5988688,1 4.8411383,2.0430706 4.9375,2.90625 3.9652283,2.1499026 3.0249855,1.8795933 2.21875,2.03125 1.1884439,2.2250555 0.5,3.1743045 0.5,4.25 c 0,0.8419164 0.31211643,1.5788561 0.84375,2.34375 0.464621,0.6684787 1.1198438,1.4400576 1.9375,2.375 C 3.6476993,10.327756 4.3223039,11.572304 5,12.25 L 5,13 4,13.5 4,14 10,14 10,13.5 9,13 9,12.25 c 0.6776961,-0.677696 1.352301,-1.922244 1.71875,-3.28125 0.817656,-0.9349424 1.472879,-1.7065213 1.9375,-2.375 C 13.187 [...] +</svg> diff --git a/symbols/bench.16.svg b/symbols/bench.16.svg new file mode 100644 index 0000000..110d303 --- /dev/null +++ b/symbols/bench.16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="M 2,6 C 1,6 1,7.5 2,7.5 l 12,0 C 15,7.5 15,6 14,6 L 2,6 z m 1,2 0,3 1.5,0 0,-3 L 3,8 z m 8.5,0 0,3 1.5,0 0,-3 -1.5,0 z" + id="bench" + style="fill:#1a1a1a;fill-opacity:1;stroke:none" /> +</svg> diff --git a/symbols/bicycle_parking.16.svg b/symbols/bicycle_parking.16.svg new file mode 100644 index 0000000..54235d9 --- /dev/null +++ b/symbols/bicycle_parking.16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="m 2,1 0,10 2,0 0,-3.5 2.5,0 c 1.9760775,3e-7 3.5,-1 3.5,-3.25 C 10,2 8.4868489,1.0000002 6.96875,1 z M 4,3 6.5,3 C 7.4635709,3 8,3.5254308 8,4.25 8,4.9745692 7.3682202,5.5 6.5,5.5 L 4,5.5 z m 7.5,5.5 0,1.25 -3,0 0,-0.25 0.5,0 C 9.4793944,9.5 9.4554247,9 9,9 L 7.5,9 C 7,9 7,9.4520606 7.5,9.5 L 8,9.5 8,9.75 7.4375,11.03125 C 7.2961795,11.001436 7.1477575,11 7,11 c -1.0217808,0 -2,0.793929 -2,2 0,1.206071 0.9782192,2 2,2 1.0217808,0 1.9375,-0.856429 1.9375,-2.0625 0,-0.150759 -0.003 [...] + id="parking-bicycle" + style="fill:#1a1a1a;fill-rule:evenodd" /> +</svg> diff --git a/symbols/bus_stop.12.svg b/symbols/bus_stop.12.svg new file mode 100644 index 0000000..ca49798 --- /dev/null +++ b/symbols/bus_stop.12.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 12 12" id="svg2"> + <metadata id="metadata9"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs7"/> + <rect width="12" height="12" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 2,0 1,1 1,9 1.65625,9 c 0,0 0.1011489,1 0.81275,1 C 3.1581295,10 3.25,9 3.25,9 l 3.5,0 c 0,0 0.1143421,1 0.781,1 0.8164686,0 0.81275,-1 0.81275,-1 L 9,9 9,1 8,0 z M 3,1 7,1 7,2 3,2 z M 2,3 8,3 8,6 2,6 z M 2,7 3,7 3,8 2,8 z M 7,7 8,7 8,8 7,8 z" id="bus-stop" style="fill:#000000;fill-opacity:1;stroke:none" transform="translate(1,1)"/> +</svg> diff --git a/symbols/bus_stop.p.12.png b/symbols/bus_stop.p.12.png deleted file mode 100644 index f290dcb..0000000 Binary files a/symbols/bus_stop.p.12.png and /dev/null differ diff --git a/symbols/caravan_park.16.svg b/symbols/caravan_park.16.svg new file mode 100644 index 0000000..27868b2 --- /dev/null +++ b/symbols/caravan_park.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 2,2 C 1,2 0,3 0,4 l 0,4 c 0,1 1,2 2,2 l 1.0625,0 C 3.295616,8.860792 4.291877,8 5.5,8 6.708123,8 7.704384,8.860792 7.9375,10 L 14,10 c 0,0 0,-1 -1,-1 l -1.5,0 0,-5 c 0,-0.9606645 -1.024338,-2 -2,-2 z M 2.84375,4 C 2.9375,3.984375 3,4 3,4 L 5,4 C 5,4 6,4 6,5 6,6 5,6 5,6 L 3,6 C 3,6 2,6 2,5 2,4.25 2.5625,4.046875 2.84375,4 z M 8,4 8.5,4 c 0,0 1,0 1,1 0,1 -1,1 -1,1 L 8,6 C 8,6 7,6 7,5 7,4 8,4 8,4 z M 5.5,9 C 4.671573,9 4,9.671573 4,10.5 4,11.328427 4.671573,12 5.5,12 6.328427,1 [...] +</svg> diff --git a/symbols/caravan_park.p.24.png b/symbols/caravan_park.p.24.png deleted file mode 100644 index 751f520..0000000 Binary files a/symbols/caravan_park.p.24.png and /dev/null differ diff --git a/symbols/courthouse-16.svg b/symbols/courthouse-16.svg new file mode 100644 index 0000000..ead0149 --- /dev/null +++ b/symbols/courthouse-16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="M 8,1 C 7,1 7,2 7,2 L 3.25,3 3.25,4 1,9 c 0,1 0.792008,2 2.5,2 C 5.207992,11 6,10 6,9 L 3.75,4 7,4 7,14 3,14 2,15 14,15 13,14 9,14 9,4 12.25,4 10,9 c 0,1 0.77294,2 2.5,2 1.72706,0 2.5,-1 2.5,-2 L 12.75,4 12.75,3 9,2 C 9,2 9,1 8,1 z M 3.5,5 5.25,9 1.75,9 z m 9,0 1.75,4 -3.5,0 z" + id="courthouse" + style="fill:#1a1a1a;fill-opacity:1" /> +</svg> diff --git a/symbols/hunting-stand.16.svg b/symbols/hunting-stand.16.svg new file mode 100644 index 0000000..f05bec9 --- /dev/null +++ b/symbols/hunting-stand.16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="m 4,1 0,1.25 8,2 L 12,3 z M 5,3.5 5,8 11,8 11,5 z M 4,9 l 0,1 1,0 -1,5 1.5,0 1,-5 3,0 1.03125,5 1.5,0 L 11,10 l 1,0 0,-1 z" + id="hunting-stand" + style="fill:#1a1a1a;fill-opacity:1;stroke:none" /> +</svg> \ No newline at end of file diff --git a/symbols/lighthouse.16.svg b/symbols/lighthouse.16.svg new file mode 100644 index 0000000..eb7eae4 --- /dev/null +++ b/symbols/lighthouse.16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="m 8.0003065,1 -3,1.5 c -0.465049,1.5 -0.465049,2.5 0,4.5 l 1,0 -1,8 6.0000005,0 -1,-8 1,0 c 0.530187,-2 0.530187,-3 0,-4.5 L 8.0003065,1 z m -6.28125,1.46875 c -0.167266,0.084188 -0.229367,0.3762768 0,0.46875 l 1.875,0.75 c 0.306429,0.1235421 0.493322,-0.3454524 0.1875,-0.46875 l -1.875,-0.75 c -0.07646,-0.030824 -0.131745,-0.028062 -0.1875,0 z m 12.3750005,0 -1.875,0.75 c -0.305822,0.1232976 -0.118929,0.5922921 0.1875,0.46875 l 1.875,-0.75 C 14.58738,2.8142024 14.399879,2.345452 [...] + id="lighthouse" + style="fill:#1a1a1a;fill-opacity:1;stroke:none" /> +</svg> diff --git a/symbols/lighthouse.p.20.png b/symbols/lighthouse.p.20.png deleted file mode 100644 index f2e268f..0000000 Binary files a/symbols/lighthouse.p.20.png and /dev/null differ diff --git a/symbols/monument.16.svg b/symbols/monument.16.svg new file mode 100644 index 0000000..059b97b --- /dev/null +++ b/symbols/monument.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 7,0 C 7,0 5,1.4966359 5,2 l 0,8 4,0 0,-8 C 9,1.5206056 7,0 7,0 z M 4,11 c -1,0 -1,1 -1,2 l -1,0 -1,1 12,0 -1,-1 -1,0 c 0,-1 0,-2 -1,-2 z" id="monument" style="fill:#000000;fill-opacity:1;stroke:none" transform="translate(1,1)"/> +</svg> diff --git a/symbols/motel.16.svg b/symbols/motel.16.svg new file mode 100644 index 0000000..63b3872 --- /dev/null +++ b/symbols/motel.16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="M 1.625,1 C 1.25,1 1,1.25 1,1.75 l 0,5.75 1.25,0 0,-1.5 c 0,0 10.380697,0.01892 11.5,0 l 0,1.5 1.25,0 c -9.7e-5,0 0,-4.75 0,-4.75 C 15,2.4202582 14.861987,2 14.375,2 13.88801,2 13.713586,2.422275 13.75,2.75 l 0,2 -11.5,0 0,-3 C 2.25,1.25 2,1 1.625,1 z M 4.5,1 C 3.671573,1 3,1.671573 3,2.5 3,3.328427 3.671573,4 4.5,4 5.328427,4 6,3.328427 6,2.5 6,1.671573 5.328427,1 4.5,1 z m 2,1 0,2 6.5,0 C 13,3 11.963825,2 11,2 z M 5,7 4,10 c -0.472666,0 -1,0.384295 -1,1 l 0,3 1,0 c 0,0 0,1 1,1 [...] + id="motel" + style="fill:#1a1a1a;stroke:none" /> +</svg> diff --git a/symbols/motel.p.20.png b/symbols/motel.p.20.png deleted file mode 100644 index 56a96e5..0000000 Binary files a/symbols/motel.p.20.png and /dev/null differ diff --git a/symbols/power_wind-16.svg b/symbols/power_wind-16.svg new file mode 100644 index 0000000..7e20d6b --- /dev/null +++ b/symbols/power_wind-16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="M 12.7185,1.5 C 12.008233,1.3993314 10.205538,2.5161034 8.031,4.59375 8.753021,4.631868 9.470705,5.3689488 9.406,6.03125 11.551291,3.9815468 12.795568,2.2473073 12.7185,1.5 z M 2.93725,4.25 C 2.327739,4.271754 1.874369,4.3532481 1.656,4.53125 1.96178,5.1801816 3.850651,6.0730322 6.781,6.75 6.416505,6.1255886 6.660654,5.1220091 7.24975,4.8125 5.442914,4.3950856 3.953102,4.2137427 2.93725,4.25 z m 5.0625,1.25 c -0.276142,0 -0.5,0.2238576 -0.5,0.5 0,0.2761424 0.223858,0.5 0.5,0.5 0. [...] + id="power-wind" + style="fill:#1a1a1a;fill-opacity:1;stroke:none" /> +</svg> diff --git a/symbols/power_wind.png b/symbols/power_wind.png deleted file mode 100644 index 29aeb7a..0000000 Binary files a/symbols/power_wind.png and /dev/null differ diff --git a/symbols/shop_alcohol.16.svg b/symbols/shop_alcohol.16.svg new file mode 100644 index 0000000..7a9f698 --- /dev/null +++ b/symbols/shop_alcohol.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 3,0 C 2,0 2,0.4670568 2,1 L 2,3 C 2,4 0,4 0,6 l 0,7 c 0,0.566252 0.467057,1 1,1 l 4,0 c 0.599561,0 1,-0.400439 1,-1 L 6,6 C 6,4 4,4 4,3 L 4,1 C 4,0.4337479 4,0 3,0 z m 4,5 c 0,3 0.47106,5 3,5 l 0,2 c 0,0.666911 -1,1 -1.5,1 -1,0 -1.5,0 -1.5,1 l 7,0 C 14,13 13.5,13 12.5,13 12,13 11,12.633602 11,12 l 0,-2 c 2.47106,0 3,-2 3,-5 L 7,5 z" id="alcohol" style="fill:#000000;fill-opacity:1;stroke:none" transform="translate(1,1)"/> +</svg> diff --git a/symbols/shop_bicycle.16.svg b/symbols/shop_bicycle.16.svg new file mode 100644 index 0000000..d9365d3 --- /dev/null +++ b/symbols/shop_bicycle.16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="m 9,2.5 0,0.875 1.25,0.78125 0,1.09375 -4.25,0 0,-0.75 0.5,0 c 1,0 1,-1 0,-1 l -2,0 c -1,0 -1,1 0,1 L 5,4.5 5,5.25 4.0625,7 C 4.0416,6.9995343 4.02098,7 4,7 2.387717,7 1,8.387717 1,10 1,11.612283 2.387717,13 4,13 5.612283,13 7,11.612283 7,10 7,9.654031 6.92843,9.313419 6.8125,9 L 7.25,9 C 8,9 8.172746,8.546004 8.4375,8.28125 L 10.21875,6.25 10.75,7.28125 C 9.727462,7.7659158 9,8.824875 9,10 c 0,1.612283 1.387717,3 3,3 1.612283,0 3,-1.387717 3,-3 C 15,8.387717 13.612283,7 12,7 11. [...] + id="bicycle" + style="fill:#1a1a1a;stroke:none" /> +</svg> diff --git a/symbols/shop_clothes.16.svg b/symbols/shop_clothes.16.svg new file mode 100644 index 0000000..62d2cce --- /dev/null +++ b/symbols/shop_clothes.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 3,1 0,3 1,6.35 3,5 3,13 11,13 11,5 13,6.35 14,3 11,1 9,1 C 9,2 8,3 7,3 6,3 5,2 5,1 z" id="clothes" style="fill:#000000;fill-opacity:1;stroke:none" transform="translate(1,1)"/> +</svg> diff --git a/symbols/shop_clothes.svg b/symbols/shop_clothes.svg deleted file mode 100644 index 57ca70d..0000000 --- a/symbols/shop_clothes.svg +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 11 11"> -<path d="M 0,2 L 5,0 7,0 12,2 11,5 9,4.2 9,10.5 A 10,10 0 0,1 3,10.5 L 3,4.2 1,5"/> -</svg> diff --git a/symbols/shop_diy.16.svg b/symbols/shop_diy.16.svg new file mode 100644 index 0000000..14b707e --- /dev/null +++ b/symbols/shop_diy.16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="M 10,1 C 9.248808,1.4909181 8.75,2.3481516 8.75,3.3125 c 0,1.0641992 0.615654,1.9803063 1.5,2.4375 l 0,7.75 c 0,0.877754 0.521186,1.5 1.25,1.5 0.728813,0 1.25,-0.603432 1.25,-1.5 l 0,-7.75 C 13.634346,5.2928063 14.25,4.3766992 14.25,3.3125 14.25,2.3481516 13.751192,1.4909181 13,1 L 13,2.5 11.5,4 10,2.5 c 0,0 0,-1.5023227 0,-1.5 z M 5,1 C 4.447507,1 4,1.3804513 4,1.75 l -1.5,0 -1.25,1.75 1.25,1.75 1.5,0 0,8.5 C 4,14.434896 4.376848,15 5,15 5.623152,15 6,14.471763 6,13.75 l 0,-8.5 [...] + id="doityourself" + style="fill:#1a1a1a;fill-opacity:1;stroke:none" /> +</svg> diff --git a/symbols/shop_diy.p.16.png b/symbols/shop_diy.p.16.png deleted file mode 100644 index b1954ab..0000000 Binary files a/symbols/shop_diy.p.16.png and /dev/null differ diff --git a/symbols/shop_electronics.16.svg b/symbols/shop_electronics.16.svg new file mode 100644 index 0000000..3883f97 --- /dev/null +++ b/symbols/shop_electronics.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 9.375,0.03125 C 9.228609,0.0143576 9.069653,0.0553473 8.9375,0.1875 L 6.03125,3.125 4.125,1.1875 C 3.913054,0.9017344 3.437513,0.8725487 3.1875,1.125 2.937487,1.3774513 2.966994,1.8484875 3.25,2.0625 L 5.15625,4 2,4 C 1,4 0,5 0,6 l 0,6 c 0,1 1,2 2,2 l 10,0 c 1,0 2,-1 2,-2 L 14,6 C 14,5 13,4 12,4 L 6.90625,4 9.8125,1.0625 C 10.20002,0.6749802 9.814172,0.0819271 9.375,0.03125 z M 6,6 c 3,0 4,0 4,3 0,3 -1,3 -4,3 C 3,12 2,12 2,9 2,6 3,6 6,6 z m 6,0.125 c 0.483249,0 0.875,0.39175 [...] +</svg> diff --git a/symbols/shop_furniture.16.svg b/symbols/shop_furniture.16.svg new file mode 100644 index 0000000..89835e7 --- /dev/null +++ b/symbols/shop_furniture.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 3,2 C 2,2 1,3 1,4 3,4 4,5.5760463 4,7 l 6,0 C 10,5.4818344 11,4 13,4 13,3 12,2 11,2 z M 1,5 C 0,5 0,6 0,6 0,6.5181656 0.481834,7 1,7 l 0,3 c 0,0.645252 0.423351,1 1,1 l 0.5,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 5,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 0.5,0 c 0.509491,0 1,-0.48425 1,-1 l 0,-3 c 0.494613,0 1,-0.3876224 1,-1 0,0 0,-1 -1,-1 -1,0 -2,1 -2,3 L 3,8 C 3,6 2,5 1,5 z" id="furniture" style="fill:#000000;fill-opacity:1;stroke:none" transform="translate(1,1)"/> +</svg> diff --git a/symbols/shop_gift.16.svg b/symbols/shop_gift.16.svg new file mode 100644 index 0000000..094375a --- /dev/null +++ b/symbols/shop_gift.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 4.375,0.5 C 3.5,0.5 2.625,1.1125001 2.625,2.25 2.625,3.386625 3.144625,4 4.28125,4 l 2.5625,0 0.25,0 2.5625,0 C 10.792,4 11.375,3.4169999 11.375,2.28125 11.374125,1.14375 10.499999,0.5 9.625,0.5 8.2985,0.5 7.333375,1.3032501 7,2.46875 6.66575,1.3032501 5.730375,0.5 4.375,0.5 z m 0,0.875 c 1.416625,0 1.656375,1.120875 1.75,1.75 l -1.75,0 C 3.455375,3.125 3.5,2.287625 3.5,2.25 3.5,2.212375 3.45538,1.375 4.375,1.375 z m 5.25,0 c 0.874999,0 0.875,0.837375 0.875,0.875 0,0.037625 [...] +</svg> diff --git a/symbols/shop_jewelry.16.svg b/symbols/shop_jewelry.16.svg new file mode 100644 index 0000000..b54a5ae --- /dev/null +++ b/symbols/shop_jewelry.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="m 5.5001761,-0.03125 -1.5000755,2 6.0003024,0 -1.500076,-2 -3.0001509,0 z m -1.5000755,3 3.000151,2.75 3.0001514,-2.75 -6.0003024,0 z m -0.1250063,2.125 C 2.7594552,6.0221898 2,7.4228958 2,8.96875 2,11.716935 4.3397727,14 6.969,14 9.598227,14 11.938,11.716935 11.938,8.96875 11.938,7.4345438 11.195755,6.0534671 10.094157,5.125 L 8.9691006,6.15625 c 0.9205844,0.6728387 1.5625784,1.7640005 1.5625784,2.8125 0,1.711475 -1.7320219,3.46875 -3.562679,3.46875 -1.8306571,0 -3.5314277,-1 [...] +</svg> diff --git a/symbols/shop_mobile_phone.16.svg b/symbols/shop_mobile_phone.16.svg new file mode 100644 index 0000000..2a7ad07 --- /dev/null +++ b/symbols/shop_mobile_phone.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 6,0 C 5.517164,0 5,0.3876224 5,1 L 5,2 C 3.8815,2.0818 3,2.90528 3,4 l 0,8 c 0,1.1488 0.803333,2 2,2 l 4,0 c 1.196667,0 2,-0.8512 2,-2 L 11,4 C 11,2.8512 10.196667,2 9,2 L 7,2 7,1 C 7,0.3640694 6.482836,0 6,0 z m -2,4 6,0 0,7 -6,0 0,-7 z m 2,8 2,0 0,1 -2,0 0,-1 z" id="mobile-phone" style="fill:#000000;fill-opacity:1" transform="translate(1,1)"/> +</svg> diff --git a/symbols/shop_optician.16.svg b/symbols/shop_optician.16.svg new file mode 100644 index 0000000..d228759 --- /dev/null +++ b/symbols/shop_optician.16.svg @@ -0,0 +1,14 @@ +<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" version="1.1" width="100%" height="100%" viewBox="0 0 16 16" id="svg2"> + <metadata id="metadata8"> + <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/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs6"/> + <rect width="16" height="16" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/> + <path d="M 5,3 0,6 c 0,2 0.25,5 1.25,5 L 5,11 C 6,11 6.25,7.5 6.25,7.5 6.76702,7.25 7.23298,7.25 7.75,7.5 7.75,7.5 8,11 9,11 l 3.75,0 C 13.75,11 14,8 14,6 L 9,3 C 8.521411,2.7236864 8.12726,3.746123 9,4.25 L 12,6 2,6 5,4.25 C 5.922502,3.7173932 5.364967,2.789286 5,3 z m -3.75,4.25 3.75,0 -0.5,2.5 -2.75,0 z m 7.75,0 3.75,0 -0.5,2.5 -2.75,0 z" id="optician" style="fill:#000000;fill-opacity:1;stroke:none" transform="translate(1,1)"/> +</svg> diff --git a/symbols/shop_shoes.16.svg b/symbols/shop_shoes.16.svg new file mode 100644 index 0000000..1a4d61f --- /dev/null +++ b/symbols/shop_shoes.16.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 16 16" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="16" + height="16" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="M 1.75,4 C 1.75,4 1,6.25 1,9.25 l 5.5,0 c 0.5,0 1.306389,1 1.3,1 l 7.2,0 C 15,7.25 12,7 11,7 L 9,7 C 8,5 6,4 6,4 L 5.75,4 C 5,5.508412 3.016472,5.508412 2,4 z M 6.5,5 C 6.776142,5 7,5.2238577 7,5.5 7,5.7761423 6.776142,6 6.5,6 6.223858,6 6,5.7761423 6,5.5 6,5.2238577 6.223858,5 6.5,5 z m 1,1 C 7.776142,6 8,6.2238577 8,6.5 8,6.7761423 7.776142,7 7.5,7 7.223858,7 7,6.7761423 7,6.5 7,6.2238577 7.223858,6 7.5,6 z m -6.5,4 0,2 5.25,0 0,-2 z m 7.3,1 c 0,0 0.7,1 1.2,1 l 5.5,0 0,-1 z" + id="shoes" + style="fill:#1a1a1a;fill-opacity:1;stroke:none" /> +</svg> diff --git a/symbols/shopping_bicycle.p.16.png b/symbols/shopping_bicycle.p.16.png deleted file mode 100644 index d0b3680..0000000 Binary files a/symbols/shopping_bicycle.p.16.png and /dev/null differ diff --git a/symbols/tourist_archaeological2.glow.24.png b/symbols/tourist_archaeological2.glow.24.png deleted file mode 100644 index 90c61c3..0000000 Binary files a/symbols/tourist_archaeological2.glow.24.png and /dev/null differ diff --git a/symbols/waste_basket.10.svg b/symbols/waste_basket.10.svg new file mode 100644 index 0000000..cfb8bb2 --- /dev/null +++ b/symbols/waste_basket.10.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + version="1.1" + width="100%" + height="100%" + viewBox="0 0 10 10" + id="svg2"> + <metadata + id="metadata8"> + <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="defs6" /> + <rect + width="10" + height="10" + x="0" + y="0" + id="canvas" + style="fill:none;stroke:none;visibility:hidden" /> + <path + d="M 4,2 3,2 2,3 8,3 7,2 6,2 5,1 z M 2,4 3,9 7,9 8,4 z" + id="waste-basket" + style="fill:#000000;fill-opacity:1;stroke:none" /> +</svg> diff --git a/symbols/wetland.png b/symbols/wetland.png index b1eac28..2fcf189 100644 Binary files a/symbols/wetland.png and b/symbols/wetland.png differ diff --git a/symbols/wetland_bog.png b/symbols/wetland_bog.png new file mode 100644 index 0000000..df5ac2c Binary files /dev/null and b/symbols/wetland_bog.png differ diff --git a/symbols/wetland_mangrove.png b/symbols/wetland_mangrove.png new file mode 100644 index 0000000..e46abb2 Binary files /dev/null and b/symbols/wetland_mangrove.png differ diff --git a/symbols/wetland_marsh.png b/symbols/wetland_marsh.png new file mode 100644 index 0000000..dea742b Binary files /dev/null and b/symbols/wetland_marsh.png differ diff --git a/symbols/wetland_reed.png b/symbols/wetland_reed.png new file mode 100644 index 0000000..bd61c18 Binary files /dev/null and b/symbols/wetland_reed.png differ diff --git a/symbols/wetland_swamp.png b/symbols/wetland_swamp.png new file mode 100644 index 0000000..f443b06 Binary files /dev/null and b/symbols/wetland_swamp.png differ diff --git a/water-features.mss b/water-features.mss index 0a79fcd..2230fa7 100644 --- a/water-features.mss +++ b/water-features.mss @@ -25,7 +25,7 @@ marker-line-color: @dam-line; marker-line-width: 1; marker-width: 8; - marker-height: 8; + [zoom >= 18] { marker-width: 10; } marker-allow-overlap: true; marker-ignore-placement: true; } @@ -42,7 +42,7 @@ marker-line-color: @weir-line; marker-line-width: 1; marker-width: 8; - marker-height: 8; + [zoom >= 18] { marker-width: 10; } marker-allow-overlap: true; marker-ignore-placement: true; } @@ -57,7 +57,7 @@ marker-fill: @lock-gate; marker-line-width: 0; marker-width: 8; - marker-height: 8; + [zoom >= 18] { marker-width: 10; } marker-allow-overlap: true; marker-ignore-placement: true; } @@ -122,6 +122,7 @@ #text-point[zoom >= 17] { text-name: "[name]"; text-halo-radius: 1; + text-halo-fill: rgba(255,255,255,0.6); text-fill: #222; text-size: 10; text-face-name: @book-fonts; @@ -147,6 +148,7 @@ #text-line { text-name: "[name]"; text-halo-radius: 1; + text-halo-fill: rgba(255,255,255,0.6); text-fill: #222; text-size: 10; text-face-name: @book-fonts; diff --git a/water.mss b/water.mss index 217c2fe..6ee9df2 100644 --- a/water.mss +++ b/water.mss @@ -1,7 +1,6 @@ @water-text: #6699cc; @glacier: #ddecec; @glacier-line: #9cf; -@mud: #e6dcd1; #water-areas { [natural = 'glacier']::natural { @@ -52,19 +51,37 @@ } } } - - [natural = 'mud'][zoom >= 10]::natural { - polygon-fill: @mud; - polygon-pattern-file: url('symbols/mud.png'); - polygon-pattern-alignment: global; - } } #water-areas-overlay { - [natural = 'marsh'], - [natural = 'wetland'] { - [zoom >= 10] { - polygon-pattern-file: url('symbols/wetland.png'); + [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; } } } @@ -98,7 +115,7 @@ line-cap: butt; line-join: round; line-clip: false; - } + } line-color: @water-color; line-width: 0.7; [zoom >= 9] { line-width: 1.2; } @@ -289,3 +306,21 @@ } } } + +.text[zoom >= 10] { + [feature = 'natural_water'], + [feature = 'landuse_reservoir'], + [feature = 'landuse_basin'] { + [zoom >= 10][way_pixels > 3000], + [zoom >= 17] { + text-name: "[name]"; + text-size: 12; + text-fill: @water-text; + text-face-name: @oblique-fonts; + text-halo-radius: 1; + text-halo-fill: rgba(255,255,255,0.6); + text-wrap-width: @standard-wrap-width; + text-placement: interior; + } + } +} -- 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