[openstreetmap-carto] 01/09: Imported Upstream version 2.30.0

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Sun Aug 30 15:21:09 UTC 2015


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository openstreetmap-carto.

commit 4b82da9617fb9a00682613eceefd6f6fa5c1b4b5
Author: Bas Couwenberg <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/openstreetmap-carto.git



More information about the Pkg-grass-devel mailing list