[osm-tile-server] 27/70: Imported Upstream version 2.30.0
Ruben Undheim
rubund-guest at moszumanska.debian.org
Tue Nov 3 23:13:04 UTC 2015
This is an automated email from the git hooks/post-receive script.
rubund-guest pushed a commit to branch master
in repository osm-tile-server.
commit 4b82da9617fb9a00682613eceefd6f6fa5c1b4b5
Author: Bas Couwenberg <sebastic at 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
- at wetland-text: darken(#017fff, 10%); /* Also for marsh */
- at mud-text: darken(#aea397, 20%);
+ at 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;
+ at 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;
+ at scrub: #b5e3b5;
// --- sports ---
@@ -44,6 +45,7 @@
@danger_area: pink;
@garages: #dfddce;
@heath: #d6d99f;
+ at 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;
- at 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;
- at 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/osm-tile-server.git
More information about the Pkg-grass-devel
mailing list