[osm-tile-server] 29/70: Imported Upstream version 2.32.0

Ruben Undheim rubund-guest at moszumanska.debian.org
Tue Nov 3 23:13:04 UTC 2015


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

rubund-guest pushed a commit to branch master
in repository osm-tile-server.

commit c6ba36fc0e7dca77116ca0c6a2d74a5c7427267d
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Sun Aug 30 16:57:01 2015 +0200

    Imported Upstream version 2.32.0
---
 .travis.yml                       |  10 ++-
 INSTALL.md                        |   2 +-
 admin.mss                         |   4 +
 aerialways.mss                    |  18 ++++-
 amenity-points.mss                | 140 +++++++++++++++++++++++++-------
 buildings.mss                     |   4 +-
 get-shapefiles.sh                 |  23 ++++++
 landcover.mss                     |  71 ++++++++++-------
 preview.png                       | Bin 219577 -> 80167 bytes
 project.mml                       |  78 ++++++++++++++----
 project.yaml                      | 127 ++++++++++++++++++-----------
 roads.mss                         | 163 ++++++++++++++++----------------------
 shapefiles.mss                    |  20 +++++
 stations.mss                      |   6 +-
 symbols/computer-14.svg           |  30 +++++++
 symbols/elevator-12.svg           |  38 +++++++++
 symbols/emergency_phone.16.svg    |  14 ++++
 symbols/entrance.10.svg           |  40 ++++++++++
 symbols/ice-cream-14.svg          |  40 ++++++++++
 symbols/motorcycle-14.svg         |  36 +++++++++
 symbols/motorcycle_parking.16.svg |  38 +++++++++
 symbols/orchard.png               | Bin 134 -> 94 bytes
 symbols/post_box-12.svg           |  37 +++++++++
 symbols/post_box.p.16.png         | Bin 367 -> 0 bytes
 symbols/post_office-14.svg        |  40 ++++++++++
 symbols/post_office.p.16.png      | Bin 494 -> 0 bytes
 symbols/seafood-14.svg            |  24 ++++++
 symbols/sosphone.png              | Bin 508 -> 0 bytes
 symbols/telephone.16.svg          |  14 ++++
 symbols/telephone.p.16.png        | Bin 444 -> 0 bytes
 symbols/variety_store-14.svg      |  35 ++++++++
 symbols/vineyard.png              | Bin 190 -> 196 bytes
 symbols/walking.n.12.png          | Bin 372 -> 0 bytes
 water.mss                         |   1 +
 34 files changed, 826 insertions(+), 227 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 70914eb..04bea38 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,15 +1,17 @@
 language: node_js
+sudo: false
 cache: apt
+addons:
+  apt:
+    packages:
+    - python-demjson
+    - python-yaml
 node_js:
   - "0.10"
-before_install:
-  - sudo apt-get update -qq
-  - sudo apt-get install -y -q python-demjson python-yaml
 install:
   - npm install carto at 0.12.1
   - mkdir -p data/world_boundaries data/simplified-land-polygons-complete-3857 data/ne_110m_admin_0_boundary_lines_land data/ne_10m_populated_places data/land-polygons-split-3857
   - touch data/world_boundaries/builtup_area.shp data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp data/land-polygons-split-3857/land_polygons.shp
-
 script:
   - jsonlint project.mml
   - ./node_modules/carto/bin/carto project.mml | xmllint - | wc -l
diff --git a/INSTALL.md b/INSTALL.md
index d7858dc..3633e6d 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -82,7 +82,7 @@ In Ubuntu 13.10 (Saucy) and lower, replace fonts-taml-tscu with ttf-tamil-fonts.
 If you aren't using TileMill, you can compile the CartoCSS stylesheets into Mapnik XML using the command-line `carto` command.
 
 * [carto](https://github.com/mapbox/carto) >= 0.9.5 (we're using instances with cascading rules and min/max zoom properties)
-* [mapnik](https://github.com/mapnik/mapnik/wiki/Mapnik-Installation) >= 2.1.0
+* [mapnik](https://github.com/mapnik/mapnik/wiki/Mapnik-Installation) >= 2.1.0. Mapnik 3.0.0 support is not yet complete.
 
 ---
 
diff --git a/admin.mss b/admin.mss
index ca3c975..d586f74 100644
--- a/admin.mss
+++ b/admin.mss
@@ -123,6 +123,8 @@ overlapping borders correctly.
   text-halo-radius: 1.0;
   text-halo-fill: rgba(255,255,255,0.6);
   text-placement: line;
+  text-clip: true;
+  text-vertical-alignment: middle;
   text-dy: -10;
 }
 
@@ -133,6 +135,8 @@ overlapping borders correctly.
   text-halo-radius: 1.0;
   text-halo-fill: rgba(255,255,255,0.6);
   text-placement: line;
+  text-clip: true;
+  text-vertical-alignment: middle;
   text-dy: -10;
 }
 
diff --git a/aerialways.mss b/aerialways.mss
index 07e6e82..7cd9154 100644
--- a/aerialways.mss
+++ b/aerialways.mss
@@ -1,7 +1,6 @@
 #aerialways {
   [aerialway = 'cable_car'],
-  [aerialway = 'gondola'],
-  [aerialway = 'goods'] {
+  [aerialway = 'gondola'] {
     [zoom >= 12] {
       line/line-width: 1;
       line/line-join: round;
@@ -17,6 +16,21 @@
     }
   }
 
+  [aerialway = 'goods'] {
+    [zoom >= 12] {
+      line/line-width: 1;
+      line/line-join: round;
+      line/line-cap: round;
+      line/line-color: #808080;
+
+      dash/line-width: 3.5;
+      dash/line-join: round;
+      dash/line-color: #707070;
+      dash/line-dasharray: 6,25;
+      dash/line-clip: false;
+    }
+  }
+
   [aerialway = 'chair_lift'],
   [aerialway = 'drag_lift'],
   [aerialway = 't-bar'],
diff --git a/amenity-points.mss b/amenity-points.mss
old mode 100755
new mode 100644
index 3cec897..6acb333
--- a/amenity-points.mss
+++ b/amenity-points.mss
@@ -1,7 +1,6 @@
 @marina-text: #576ddf; // also swimming_pool
 @wetland-text: darken(#4aa5fa, 25%); /* Also for marsh and mud */
 @shop-icon: #ac39ac;
- at money-icon: #555555;
 @transportation-icon: #0092da;
 @transportation-text: #0066ff;
 @airtransport: #8461C4;
@@ -33,14 +32,14 @@
 
   [feature = 'amenity_atm'][zoom >= 17] {
     marker-file: url('symbols/atm.16.svg');
-    marker-fill: @money-icon;
+    marker-fill: @amenity-brown;
     marker-placement: interior;
     marker-clip: false;
   }
 
   [feature = 'amenity_bank'][zoom >= 17] {
     marker-file: url('symbols/bank.16.svg');
-    marker-fill: @money-icon;
+    marker-fill: @amenity-brown;
     marker-placement: interior;
     marker-clip: false;
   }
@@ -73,6 +72,15 @@
     }
   }
 
+  [feature = 'highway_elevator'][zoom >= 18] {
+    [access = null],
+    [access = 'yes'] {
+      marker-file: url('symbols/elevator-12.svg');
+      marker-fill: @transportation-icon;
+      marker-placement: interior;
+    }
+  }
+
   [feature = 'amenity_bus_station'][zoom >= 16] {
     point-file: url('symbols/bus_station.n.16.png');
     point-placement: interior;
@@ -196,6 +204,13 @@
     marker-fill: @transportation-icon;
   }
 
+  [feature = 'amenity_ice_cream'][zoom >= 17] {
+    marker-file: url('symbols/ice-cream-14.svg');
+    marker-fill: @amenity-brown;
+    marker-placement: interior;
+    marker-clip: false;
+  }
+
   [feature = 'tourism_information'][zoom >= 17] {
     point-file: url('symbols/information.p.16.png');
     point-placement: interior;
@@ -242,12 +257,16 @@
   }
 
   [feature = 'amenity_parking'][way_pixels > 900],
-  [feature = 'amenity_bicycle_parking'][way_pixels > 900] {
+  [feature = 'amenity_bicycle_parking'][way_pixels > 900],
+  [feature = 'amenity_motorcycle_parking'][way_pixels > 900] {
+    [feature = 'amenity_parking'] {
+      marker-file: url('symbols/parking.svg');
+    }
     [feature = 'amenity_bicycle_parking'] {
       marker-file: url('symbols/bicycle_parking.16.svg');
     }
-    [feature = 'amenity_parking'] {
-      marker-file: url('symbols/parking.svg');
+    [feature = 'amenity_motorcycle_parking'] {
+      marker-file: url('symbols/motorcycle_parking.16.svg');
     }
     marker-placement: interior;
     marker-clip: false;
@@ -321,13 +340,17 @@
   }
 
   [feature = 'amenity_post_box'][zoom >= 17] {
-    point-file: url('symbols/post_box.p.16.png');
-    point-placement: interior;
+    marker-file: url('symbols/post_box-12.svg');
+    marker-fill: @amenity-brown;
+    marker-placement: interior;
+    marker-clip: false;
   }
 
   [feature = 'amenity_post_office'][zoom >= 17] {
-    point-file: url('symbols/post_office.p.16.png');
-    point-placement: interior;
+    marker-file: url('symbols/post_office-14.svg');
+    marker-fill: @amenity-brown;
+    marker-placement: interior;
+    marker-clip: false;
   }
 
   [feature = 'amenity_pub'][zoom >= 17] {
@@ -370,13 +393,17 @@
   }
 
   [feature = 'amenity_telephone'][zoom >= 17] {
-    point-file: url('symbols/telephone.p.16.png');
-    point-placement: interior;
+    marker-file: url('symbols/telephone.16.svg');
+    marker-fill: @amenity-brown;
+    marker-placement: interior;
+    marker-clip: false;
   }
 
   [feature = 'amenity_emergency_phone'][zoom >= 17] {
-    point-file: url('symbols/sosphone.png');
-    point-placement: interior;
+    marker-file: url('symbols/emergency_phone.16.svg');
+    marker-fill: @amenity-brown;
+    marker-placement: interior;
+    marker-clip: false;
   }
 
   [feature = 'amenity_theatre'][zoom >= 16] {
@@ -508,6 +535,13 @@
     }
   }
 
+  [feature = 'shop_computer'][zoom >= 17] {
+    marker-file: url('symbols/computer-14.svg');
+    marker-placement: interior;
+    marker-clip: false;
+    marker-fill: @shop-icon;
+  }
+
   [feature = 'shop_convenience'][zoom >= 17] {
     marker-file: url('symbols/shop_convenience.svg');
     marker-placement: interior;
@@ -557,6 +591,16 @@
     }
   }
 
+  [feature = 'shop_fishmonger'],
+  [feature = 'shop_seafood'] {
+    [zoom >= 17] {
+      marker-file: url('symbols/seafood-14.svg');
+      marker-placement: interior;
+      marker-clip: false;
+      marker-fill: @shop-icon;
+    }
+  }
+
   [feature = 'shop_florist'][zoom >= 17] {
     marker-file: url('symbols/florist.16.svg');
     marker-placement: interior;
@@ -595,6 +639,13 @@
     marker-fill: @shop-icon;
   }
 
+  [feature = 'shop_ice_cream'][zoom >= 17] {
+    marker-file: url('symbols/ice-cream-14.svg');
+    marker-placement: interior;
+    marker-clip: false;
+    marker-fill: @shop-icon;
+  }
+
   [feature = 'shop_car'][zoom >= 17] {
     marker-file: url('symbols/shop_car.svg');
     marker-placement: interior;
@@ -662,11 +713,14 @@
     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_alcohol'],
+  [feature = 'shop_wine'] {
+    [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] {
@@ -690,6 +744,13 @@
     marker-fill: @shop-icon;
   }
 
+  [feature = 'shop_motorcycle'][zoom >= 17] {
+    marker-file: url('symbols/motorcycle-14.svg');
+    marker-placement: interior;
+    marker-clip: false;
+    marker-fill: @shop-icon;
+  }
+
   [feature = 'shop_kiosk'],
   [feature = 'shop_newsagent'] {
     [zoom >= 17] {
@@ -731,6 +792,13 @@
     marker-fill: @shop-icon;
   }
 
+  [feature = 'shop_variety_store'][zoom >= 17] {
+    marker-file: url('symbols/variety_store-14.svg');
+    marker-placement: interior;
+    marker-clip: false;
+    marker-fill: @shop-icon;
+  }
+
   [feature = 'leisure_water_park'][zoom >= 17] {
     marker-file: url('symbols/water_park.16.svg');
     marker-placement: interior;
@@ -857,12 +925,16 @@
 
 .amenity-low-priority {
   [amenity = 'parking'][zoom >= 17],
-  [amenity = 'bicycle_parking'][zoom >= 17] {
+  [amenity = 'bicycle_parking'][zoom >= 17],
+  [amenity = 'motorcycle_parking'][zoom >= 17] {
+    [amenity = 'parking'] {
+      marker-file: url('symbols/parking.svg');
+    }
     [amenity = 'bicycle_parking'] {
       marker-file: url('symbols/bicycle_parking.16.svg');
     }
-    [amenity = 'parking'] {
-      marker-file: url('symbols/parking.svg');
+    [amenity = 'motorcycle_parking'] {
+      marker-file: url('symbols/motorcycle_parking.16.svg');
     }
     marker-placement: interior;
     marker-clip: false;
@@ -954,6 +1026,7 @@
   [feature = 'amenity_fast_food'],
   [feature = 'amenity_biergarten'],
   [feature = 'amenity_bar'],
+  [feature = 'amenity_ice_cream'],
   [feature = 'amenity_nightclub'] {
     [zoom >= 17] {
       text-name: "[name]";
@@ -1018,7 +1091,8 @@
   }
 
   [feature = 'amenity_parking'][zoom >= 10][way_pixels > 900],
-  [feature = 'amenity_bicycle_parking'][zoom >= 10][way_pixels > 900] {
+  [feature = 'amenity_bicycle_parking'][zoom >= 10][way_pixels > 900],
+  [feature = 'amenity_motorcycle_parking'][zoom >= 10][way_pixels > 900] {
     text-name: "[name]";
     text-size: 9;
     text-fill: @transportation-text;
@@ -1031,7 +1105,8 @@
     [access != ''][access != 'public'][access != 'yes'] {
       text-fill: #66ccaf;
     }
-    [feature = 'amenity_bicycle_parking'] {
+    [feature = 'amenity_bicycle_parking'],
+    [feature = 'amenity_motorcycle_parking'] {
       text-dy: 12;
     }
   }
@@ -1350,9 +1425,9 @@
       text-size: @landcover-font-size;
       [way_pixels > 12000] { text-size: @landcover-font-size-big; }
       [way_pixels > 48000] { text-size: @landcover-font-size-bigger; }
-      text-fill: darken(@vineyard, 50%);
+      text-fill: darken(@orchard, 50%);
       text-face-name: @landcover-face-name;
-      text-halo-radius: 1.5; /* extra halo needed to overpower the vineyard polygon pattern */
+      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; }
@@ -1616,7 +1691,7 @@
     text-size: 10;
     [feature = 'amenity_bank'] { text-dy: 9; }
     [feature = 'amenity_atm']  { text-dy: 10; }
-    text-fill: black;
+    text-fill: @amenity-brown;
     text-halo-radius: 1;
     text-halo-fill: rgba(255,255,255,0.6);
     text-wrap-width: @standard-wrap-width;
@@ -1784,7 +1859,7 @@
       text-size: @landcover-font-size;
       [way_pixels > 12000] { text-size: @landcover-font-size-big; }
       [way_pixels > 48000] { text-size: @landcover-font-size-bigger; }
-      text-fill: darken(@school, 70%);
+      text-fill: darken(@educational_areas_and_hospital, 70%);
       text-face-name: @landcover-face-name;
       text-halo-radius: 1;
       text-halo-fill: rgba(255,255,255,0.6);
@@ -1856,6 +1931,7 @@
   [feature = 'shop_beverages'],
   [feature = 'shop_books'],
   [feature = 'shop_clothes'],
+  [feature = 'shop_computer'],
   [feature = 'shop_fashion'],
   [feature = 'shop_convenience'],
   [feature = 'shop_confectionery'],
@@ -1864,6 +1940,7 @@
   [feature = 'shop_hardware'],
   [feature = 'shop_hairdresser'],
   [feature = 'shop_hifi'],
+  [feature = 'shop_ice_cream'],
   [feature = 'shop_butcher'],
   [feature = 'shop_car'],
   [feature = 'shop_car_repair'],
@@ -1871,6 +1948,7 @@
   [feature = 'shop_cosmetics'],
   [feature = 'shop_bicycle'],
   [feature = 'shop_farm'],
+  [feature = 'shop_fishmonger'],
   [feature = 'shop_florist'],
   [feature = 'shop_garden_centre'],
   [feature = 'shop_greengrocer'],
@@ -1887,6 +1965,7 @@
   [feature = 'shop_furniture'],
   [feature = 'shop_kiosk'],
   [feature = 'shop_mobile_phone'],
+  [feature = 'shop_motorcycle'],
   [feature = 'shop_newsagent'],
   [feature = 'shop_jewelry'],
   [feature = 'shop_jewellery'],
@@ -1894,7 +1973,10 @@
   [feature = 'shop_chemist'],
   [feature = 'shop_toys'],
   [feature = 'shop_travel_agency'],
+  [feature = 'shop_seafood'],
   [feature = 'shop_stationery'],
+  [feature = 'shop_variety_store'],
+  [feature = 'shop_wine'],
   [feature = 'shop_other']{
     [zoom >= 17] {
       text-name: "[name]";
@@ -2056,7 +2138,7 @@
       text-size: @landcover-font-size;
       [way_pixels > 12000] { text-size: @landcover-font-size-big; }
       [way_pixels > 48000] { text-size: @landcover-font-size-bigger; }
-      text-fill: darken(@grassland, 60%);
+      text-fill: darken(@grass, 50%);
       text-face-name: @landcover-face-name;
       text-halo-radius: 1;
       text-halo-fill: rgba(255,255,255,0.6);
diff --git a/buildings.mss b/buildings.mss
index b1ea7df..abe5081 100644
--- a/buildings.mss
+++ b/buildings.mss
@@ -10,7 +10,7 @@
 
 
 #buildings {
-  [zoom >= 12] {
+  [zoom >= 13] {
     polygon-fill: @building-low-zoom;
     polygon-clip: false;
     [zoom >= 15] {
@@ -23,7 +23,7 @@
 }
 
 #buildings-major {
-  [zoom >= 12] {
+  [zoom >= 13] {
     [aeroway = 'terminal'] {
       polygon-fill: @building-aeroway-fill;
       polygon-clip: false;
diff --git a/get-shapefiles.sh b/get-shapefiles.sh
index 65fc306..9e9b7ca 100755
--- a/get-shapefiles.sh
+++ b/get-shapefiles.sh
@@ -65,6 +65,27 @@ unzip $UNZIP_OPTS data/land-polygons-split-3857.zip \
   land-polygons-split-3857/land_polygons.cpg \
   -d data/
 
+# antarctica-icesheet-polygons-3857
+echo "dowloading antarctica-icesheet-polygons-3857..."
+curl -z "data/antarctica-icesheet-polygons-3857.zip" -L -o "data/antarctica-icesheet-polygons-3857.zip" "http://data.openstreetmapdata.com/antarctica-icesheet-polygons-3857.zip"
+echo "expanding antarctica-icesheet-polygons-3857..."
+unzip $UNZIP_OPTS data/antarctica-icesheet-polygons-3857.zip \
+  antarctica-icesheet-polygons-3857/icesheet_polygons.shp \
+  antarctica-icesheet-polygons-3857/icesheet_polygons.shx \
+  antarctica-icesheet-polygons-3857/icesheet_polygons.prj \
+  antarctica-icesheet-polygons-3857/icesheet_polygons.dbf \
+  -d data/
+
+# antarctica-icesheet-outlines-3857
+echo "dowloading antarctica-icesheet-outlines-3857..."
+curl -z "data/antarctica-icesheet-outlines-3857.zip" -L -o "data/antarctica-icesheet-outlines-3857.zip" "http://data.openstreetmapdata.com/antarctica-icesheet-outlines-3857.zip"
+echo "expanding antarctica-icesheet-outlines-3857..."
+unzip $UNZIP_OPTS data/antarctica-icesheet-outlines-3857.zip \
+  antarctica-icesheet-outlines-3857/icesheet_outlines.shp \
+  antarctica-icesheet-outlines-3857/icesheet_outlines.shx \
+  antarctica-icesheet-outlines-3857/icesheet_outlines.prj \
+  antarctica-icesheet-outlines-3857/icesheet_outlines.dbf \
+  -d data/
 
 #process populated places
 echo "processing ne_10m_populated_places..."
@@ -77,6 +98,8 @@ echo "indexing shapefiles"
 shapeindex --shape_files \
 data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp \
 data/land-polygons-split-3857/land_polygons.shp \
+data/antarctica-icesheet-polygons-3857/icesheet_polygons.shp \
+data/antarctica-icesheet-outlines-3857/icesheet_outlines.shp \
 data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp \
 data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp
 
diff --git a/landcover.mss b/landcover.mss
index 4bb0f94..f03d722 100644
--- a/landcover.mss
+++ b/landcover.mss
@@ -1,13 +1,12 @@
 // --- Parks, woods, other green things ---
 
 @forest: #a0cf85;
- at grass: #cfeca8; // also meadow, common, garden, village_green, conservation
+ at grass: #cdebb0; // also meadow, common, garden, village_green, conservation
 @golf_course: #b5e3b5;
 @park: #cdf7c9; // also recreation_ground
 @wood: #aed1a0;
- at vineyard: #b3e2a8;
- at grassland: #c6e4b4;
 @scrub: #b5e3b5;
+ at orchard: #aedfa3;
 
 // --- sports ---
 
@@ -17,7 +16,7 @@
 
 // --- "base" landuses ---
 
- at residential: #E1E1E1;      // Lch(89,0,0)
+ at residential: #e0dfdf;      // Lch(89,0,0)
 @residential-line: #B9B9B9; // Lch(75,0,0)
 @retail: #FFD6D1;           // Lch(89,16,30)
 @retail-line: #D99C95;      // Lch(70,25,30)
@@ -53,9 +52,8 @@
 @power: #bbb;
 @rest_area: #efc8c8; // also services
 @sand: #f5e9c6;
- at school: #f0f0d8; // also university, college, hospital, kindergarten
+ at educational_areas_and_hospital: #f0f0d8;
 @station: #d4aaaa;
- at orchard: #9ed88f;
 @tourism: #734a08;
 @quarry: #c5c3c3;
 @military: #f55;
@@ -114,23 +112,30 @@
 
   [feature = 'landuse_vineyard'] {
     [zoom >= 10] {
-      polygon-fill: @vineyard;
+      polygon-fill: @orchard;
       [way_pixels >= 4]  { polygon-gamma: 0.75; }
       [way_pixels >= 64] { polygon-gamma: 0.3;  }
     }
-    [zoom >= 13] {
+    [zoom >= 14] {
       polygon-pattern-file: url('symbols/vineyard.png');
+      polygon-pattern-alignment: global;
       [way_pixels >= 4]  { polygon-pattern-gamma: 0.75; }
       [way_pixels >= 64] { polygon-pattern-gamma: 0.3;  }
     }
   }
 
-  [feature = 'landuse_orchard'][zoom >= 10] {
-    polygon-fill: @orchard;
-    polygon-pattern-file: url('symbols/orchard.png');
-    polygon-pattern-alignment: global;
-    [way_pixels >= 4]  { polygon-pattern-gamma: 0.75; }
-    [way_pixels >= 64] { polygon-pattern-gamma: 0.3;  }
+  [feature = 'landuse_orchard'] {
+    [zoom >= 10] {
+      polygon-fill: @orchard;
+      [way_pixels >= 4]  { polygon-gamma: 0.75; }
+      [way_pixels >= 64] { polygon-gamma: 0.3;  }
+    }
+    [zoom >= 14] {
+      polygon-pattern-file: url('symbols/orchard.png');
+      polygon-pattern-alignment: global;
+      [way_pixels >= 4]  { polygon-pattern-gamma: 0.75; }
+      [way_pixels >= 64] { polygon-pattern-gamma: 0.3;  }
+    }
   }
 
   [feature = 'landuse_cemetery'],
@@ -153,7 +158,7 @@
     }
   }
 
-  [feature = 'amenity_place_of_worship'] {
+  [feature = 'amenity_place_of_worship'][zoom >= 13] {
     polygon-fill: @place_of_worship;
     polygon-clip: false;
     [zoom >= 15] {
@@ -429,7 +434,7 @@
   }
 
   [feature = 'natural_grassland'][zoom >= 10] {
-    polygon-fill: @grassland;
+    polygon-fill: @grass;
     [way_pixels >= 4]  { polygon-gamma: 0.75; }
     [way_pixels >= 64] { polygon-gamma: 0.3;  }
   }
@@ -471,16 +476,19 @@
     }
   }
 
+  [feature = 'amenity_hospital'],
   [feature = 'amenity_university'],
   [feature = 'amenity_college'],
   [feature = 'amenity_school'],
-  [feature = 'amenity_hospital'],
   [feature = 'amenity_kindergarten'] {
     [zoom >= 10] {
-      polygon-fill: @school;
+      polygon-fill: @residential;
       [zoom >= 12] {
-        line-width: 0.3;
-        line-color: brown;
+        polygon-fill: @educational_areas_and_hospital;
+        [zoom >= 13] {
+          line-width: 0.3;
+          line-color: brown;
+        }
       }
       [way_pixels >= 4]  { polygon-gamma: 0.75; }
       [way_pixels >= 64] { polygon-gamma: 0.3;  }
@@ -488,7 +496,8 @@
   }
 
   [feature = 'amenity_parking'][zoom >= 10],
-  [feature = 'amenity_bicycle_parking'][zoom >= 10] {
+  [feature = 'amenity_bicycle_parking'][zoom >= 10],
+  [feature = 'amenity_motorcycle_parking'][zoom >= 10] {
     polygon-fill: @parking;
     [zoom >= 15] {
       line-width: 0.3;
@@ -624,20 +633,23 @@
 }
 
 #tourism-boundary {
-  [tourism = 'zoo'][zoom >= 10],
-  [tourism = 'theme_park'][zoom >= 10] {
+  [tourism = 'zoo'][zoom >= 10][way_pixels >= 20],
+  [tourism = 'theme_park'][zoom >= 10][way_pixels >= 20] {
     a/line-width: 1;
     a/line-offset: -0.5;
     a/line-color: @tourism;
     a/line-opacity: 0.5;
     a/line-join: round;
     a/line-cap: round;
-    b/line-width: 4;
-    b/line-offset: -2;
-    b/line-color: @tourism;
-    b/line-opacity: 0.3;
-    b/line-join: round;
-    b/line-cap: round;
+    [zoom >= 17],
+    [way_pixels >= 60] {
+      b/line-width: 4;
+      b/line-offset: -2;
+      b/line-color: @tourism;
+      b/line-opacity: 0.3;
+      b/line-join: round;
+      b/line-cap: round;    
+    }
     [zoom >= 17] {
       a/line-width: 2;
       a/line-offset: -1;
@@ -658,6 +670,7 @@
     text-face-name: @book-fonts;
     text-placement: line;
     text-dy: 8;
+    text-vertical-alignment: middle;
     text-spacing: 400;
   }
 }
diff --git a/preview.png b/preview.png
index 0ced751..88a31a1 100644
Binary files a/preview.png and b/preview.png differ
diff --git a/project.mml b/project.mml
index 548e800..9aa3cca 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(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  [...]
+        "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, 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', [...]
+        "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', 'motorcycle_parking', 'university', 'college', 'school', 'hosp [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -223,6 +223,28 @@
       "advanced": {}
     },
     {
+      "name": "icesheet-poly",
+      "srs-name": "900913",
+      "geometry": "polygon",
+      "class": "",
+      "id": "icesheet-poly",
+      "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": {
+        "type": "shape",
+        "file": "data/antarctica-icesheet-polygons-3857/icesheet_polygons.shp"
+      },
+      "extent": [
+        -180,
+        -85.05112877980659,
+        180,
+        85.05112877980659
+      ],
+      "properties": {
+        "minzoom": 4
+      },
+      "advanced": {}
+    },
+    {
       "name": "water-areas",
       "srs-name": "900913",
       "geometry": "polygon",
@@ -275,6 +297,28 @@
       "advanced": {}
     },
     {
+      "name": "icesheet-outlines",
+      "srs-name": "900913",
+      "geometry": "linestring",
+      "class": "",
+      "id": "icesheet-outlines",
+      "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": {
+        "type": "shape",
+        "file": "data/antarctica-icesheet-outlines-3857/icesheet_outlines.shp"
+      },
+      "extent": [
+        -180,
+        -85.05112877980659,
+        180,
+        85.05112877980659
+      ],
+      "properties": {
+        "minzoom": 4
+      },
+      "advanced": {}
+    },
+    {
       "name": "water-lines",
       "srs-name": "900913",
       "geometry": "linestring",
@@ -517,7 +561,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n        horse, foot, bicycle, tracktype, access, construction,\n        service, oneway, link, layernotnull\n  FROM ( -- subselect that contains both roads and rail/aero\n    SELECT\n        way,\n        ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n        horse,\n        foot,\n [...]
+        "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n        horse, foot, bicycle, tracktype, 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": "",
@@ -751,7 +795,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n        horse, foot, bicycle, tracktype, access, construction,\n        service, oneway, link, layernotnull\n  FROM ( -- subselect that contains both roads and rail/aero\n    SELECT\n        way,\n        ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n        horse,\n        foot,\n [...]
+        "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n        horse, foot, bicycle, tracktype, 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": "",
@@ -803,7 +847,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n        horse, foot, bicycle, tracktype, access, construction,\n        service, oneway, link, layernotnull\n  FROM ( -- subselect that contains both roads and rail/aero\n    SELECT\n        way,\n        ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n        horse,\n        foot,\n [...]
+        "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n        horse, foot, bicycle, tracktype, 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": "",
@@ -934,7 +978,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n        horse, foot, bicycle, tracktype, access, construction,\n        service, oneway, link, layernotnull\n  FROM ( -- subselect that contains both roads and rail/aero\n    SELECT\n        way,\n        ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n        horse,\n        foot,\n [...]
+        "table": "(SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n        horse, foot, bicycle, tracktype, 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": "",
@@ -1144,7 +1188,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    name,\n    tourism\n  FROM planet_osm_polygon\n  WHERE tourism = 'theme_park'\n    OR tourism = 'zoo'\n) AS tourism_boundary",
+        "table": "(SELECT\n    way,\n    way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n    name,\n    tourism\n  FROM planet_osm_polygon\n  WHERE tourism = 'theme_park'\n    OR tourism = 'zoo'\n) AS tourism_boundary",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1222,7 +1266,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    place,\n    name,\n    ref\n  FROM planet_osm_point\n  WHERE place IN ('city', 'town')\n    AND capital IN ('yes', '4')\n    AND name IS NOT NULL\n) AS placenames_capital",
+        "table": "(SELECT\n    way,\n    place,\n    name,\n    ref\n  FROM planet_osm_point\n  WHERE place IN ('city', 'town')\n    AND capital IN ('yes', '4')\n    AND name IS NOT NULL\n  ORDER BY CASE\n      WHEN place = 'city' THEN 1\n      WHEN place = 'town' THEN 2\n    END ASC\n) AS placenames_capital",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1249,7 +1293,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    place,\n    name\n  FROM planet_osm_point\n  WHERE place IN ('city', 'town')\n    AND (capital IS NULL OR capital NOT IN ('yes', '4'))\n    AND name IS NOT NULL\n) AS placenames_medium",
+        "table": "(SELECT\n    way,\n    place,\n    name\n  FROM planet_osm_point\n  WHERE place IN ('city', 'town')\n    AND (capital IS NULL OR capital NOT IN ('yes', '4'))\n    AND name IS NOT NULL\n  ORDER BY CASE\n      WHEN place = 'city' THEN 1\n      WHEN place = 'town' THEN 2\n    END ASC\n) AS placenames_medium",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1275,7 +1319,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    place,\n    name\n  FROM planet_osm_point\n  WHERE place IN ('suburb', 'village', 'hamlet', 'neighbourhood', 'locality', 'isolated_dwelling', 'farm')\n    AND name IS NOT NULL\n) AS placenames_small",
+        "table": "(SELECT\n    way,\n    place,\n    name\n  FROM planet_osm_point\n  WHERE place IN ('suburb', 'village', 'hamlet', 'neighbourhood', 'locality', 'isolated_dwelling', 'farm')\n    AND name IS NOT NULL\n  ORDER BY CASE\n      WHEN place = 'suburb' THEN 3\n      WHEN place = 'village' THEN 4\n      WHEN place = 'hamlet' THEN 5\n      WHEN place = 'neighbourhood' THEN 6\n      WHEN place = 'locality' THEN 7\n      WHEN place = 'isolated_dwelling' THEN 8\n      WHEN place = ' [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1379,7 +1423,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    COALESCE(\n      'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sha [...]
+        "table": "(SELECT\n    way,\n    COALESCE(\n      'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sha [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1405,7 +1449,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    COALESCE(\n      'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sha [...]
+        "table": "(SELECT\n    way,\n    COALESCE(\n      'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'guest_house', 'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sha [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1588,7 +1632,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,\n    CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END,\n    CASE WHEN (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes') THEN 'yes' ELSE 'no' END AS tunnel,\n    CASE WHEN construction IN ('service', 'footway', 'cycleway', 'bridleway', 'path', 'track') THEN 'yes' ELSE 'no' END AS int_construction_minor,\n    name\n  FROM planet_osm_line\n  WHERE highway IN ('motorway', 'moto [...]
+        "table": "(SELECT way,\n    CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END,\n    CASE WHEN (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes') THEN 'yes' ELSE 'no' END AS tunnel,\n    CASE WHEN construction IN ('service', 'footway', 'cycleway', 'bridleway', 'path', 'track') THEN 'yes' ELSE 'no' END AS int_construction_minor,\n    name\n  FROM planet_osm_line\n  WHERE highway IN ('motorway', 'moto [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1667,7 +1711,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n    COALESCE(\n      'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', 'museum', 'zoo', 'information', 'picnic_site') THEN tourism ELSE NULL END,\n      'amenity_' ||  [...]
+        "table": "(SELECT\n    way,\n    way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n    COALESCE(\n      'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      'tourism_' || CASE WHEN tourism IN ('alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', 'museum', 'zoo', 'information', 'picnic_site') THEN tourism ELSE NULL END,\n      'amenity_' ||  [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1719,7 +1763,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    way_pixels,\n    feature,\n    access,\n    CONCAT(\n        name,\n        CASE WHEN name IS NOT NULL AND elevation IS NOT NULL THEN E'\\n' ELSE NULL END,\n        CASE WHEN elevation IS NOT NULL THEN CONCAT(REPLACE(ROUND(elevation)::TEXT, '-', U&'\\2212'), U&'\\00A0', 'm') ELSE NULL END\n    ) AS name,\n    CASE\n      WHEN \"natural\" IN ('peak', 'volcano', 'saddle') THEN elevation\n      ELSE NULL\n    END AS score,\n    operator,\n    ref,\n  [...]
+        "table": "(SELECT\n    way,\n    way_pixels,\n    feature,\n    access,\n    CONCAT(\n        name,\n        CASE WHEN name IS NOT NULL AND elevation IS NOT NULL THEN E'\\n' ELSE NULL END,\n        CASE WHEN elevation IS NOT NULL THEN CONCAT(REPLACE(ROUND(elevation)::TEXT, '-', U&'\\2212'), U&'\\00A0', 'm') ELSE NULL END\n    ) AS name,\n    CASE\n      WHEN \"natural\" IN ('peak', 'volcano', 'saddle') THEN elevation\n      ELSE NULL\n    END AS score,\n    operator,\n    ref,\n  [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1953,7 +1997,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    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",
+        "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', 'motorcycle_parking', 'bench', 'waste_basket')\n  ORDER BY prio\n  ) AS amenity_low_priority",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1979,7 +2023,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    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",
+        "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', 'motorcycle_parking')\n  ) AS amenity_low_priority_poly",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
diff --git a/project.yaml b/project.yaml
index 99a969b..582bc72 100644
--- a/project.yaml
+++ b/project.yaml
@@ -123,7 +123,7 @@ Layer:
               OR "natural" IN ('wood', 'wetland', 'mud', 'sand', 'scree', 'shingle', 'bare_rock'))
               AND way_area > 0.01*!pixel_width!::real*!pixel_height!::real
               AND building IS NULL
-            ORDER BY z_order, way_area DESC
+            ORDER BY CASE WHEN layer~E'^-?\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END, way_area DESC
           ) AS features
         ) AS landcover_low_zoom
     properties:
@@ -143,7 +143,7 @@ Layer:
           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', 'bicycle_parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'prison', 'place_of_worship', 'clinic') THEN amenity ELSE NULL END)) AS amenity,
+              ('amenity_' || (CASE WHEN amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'prison', 'place_of_worship', 'clinic') 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,
@@ -159,7 +159,7 @@ Layer:
             WHERE (landuse IS NOT NULL
               OR leisure IS NOT NULL
               OR aeroway IN ('apron', 'aerodrome')
-              OR amenity IN ('parking', 'bicycle_parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'place_of_worship', 'prison', 'clinic')
+              OR amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard', 'place_of_worship', 'prison', 'clinic')
               OR military IN ('danger_area')
               OR "natural" IN ('beach', 'heath', 'mud', 'marsh', 'wetland', 'grassland', 'wood', 'sand', 'scree', 'shingle', 'bare_rock', 'scrub')
               OR power IN ('station', 'sub_station', 'substation', 'generator')
@@ -167,7 +167,7 @@ Layer:
               OR highway IN ('services', 'rest_area')
               OR railway = 'station')
               AND way_area > 0.01*!pixel_width!::real*!pixel_height!::real
-            ORDER BY z_order, way_area DESC
+            ORDER BY CASE WHEN layer~E'^-?\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END, way_area DESC
           ) AS landcover
         ) AS features
     properties:
@@ -222,6 +222,17 @@ Layer:
       minzoom: 8
       maxzoom: 11
     advanced: {}
+  - id: "icesheet-poly"
+    name: "icesheet-poly"
+    class: ""
+    geometry: "polygon"
+    <<: *extents
+    Datasource:
+      file: "data/antarctica-icesheet-polygons-3857/icesheet_polygons.shp"
+      type: "shape"
+    properties:
+      minzoom: 4
+    advanced: {}
   - id: "water-areas"
     name: "water-areas"
     class: ""
@@ -269,6 +280,17 @@ Layer:
     properties:
       minzoom: 10
     advanced: {}
+  - id: "icesheet-outlines"
+    name: "icesheet-outlines"
+    class: ""
+    geometry: "linestring"
+    <<: *extents
+    Datasource:
+      file: "data/antarctica-icesheet-outlines-3857/icesheet_outlines.shp"
+      type: "shape"
+    properties:
+      minzoom: 4
+    advanced: {}
   - id: "water-lines"
     name: "water-lines"
     class: "water-lines"
@@ -475,7 +497,7 @@ Layer:
             SELECT
                 way,
                 COALESCE(
-                  ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),
+                  ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard'  WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service' ELSE railway END)),
                   ('aeroway_' || aeroway)
                 ) AS feature,
                 horse,
@@ -497,9 +519,7 @@ Layer:
                 AND (railway IS NOT NULL OR aeroway IS NOT NULL) -- end of rail/aero select
             ) AS features
           JOIN (VALUES -- this join is also putting a condition on what is selected. features not matching it do not make it into the results.
-              ('railway_rail', 430),
-              ('railway_spur', 430),
-              ('railway_siding', 430),
+              ('railway_rail', 440),
               ('railway_INT-preserved-ssy', 430),
               ('railway_INT-spur-siding-yard', 430),
               ('railway_subway', 420),
@@ -511,6 +531,7 @@ Layer:
               ('railway_miniature', 420),
               ('railway_turntable', 420),
               ('railway_tram', 410),
+              ('railway_tram-service', 405),
               ('railway_disused', 400),
               ('railway_construction', 400),
               ('highway_motorway', 380),
@@ -540,7 +561,6 @@ Layer:
               ('railway_platform', 90),
               ('aeroway_runway', 60),
               ('aeroway_taxiway', 50),
-              ('highway_proposed', 20),
               ('highway_construction', 10)
             ) AS ordertable (feature, prio)
             USING (feature)
@@ -750,7 +770,7 @@ Layer:
             SELECT
                 way,
                 COALESCE(
-                  ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),
+                  ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard'  WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service' ELSE railway END)),
                   ('aeroway_' || aeroway)
                 ) AS feature,
                 horse,
@@ -774,9 +794,7 @@ Layer:
                 AND (railway IS NOT NULL OR aeroway IS NOT NULL) -- end of rail/aero select
             ) AS features
           JOIN (VALUES -- this join is also putting a condition on what is selected. features not matching it do not make it into the results.
-              ('railway_rail', 430),
-              ('railway_spur', 430),
-              ('railway_siding', 430),
+              ('railway_rail', 440),
               ('railway_INT-preserved-ssy', 430),
               ('railway_INT-spur-siding-yard', 430),
               ('railway_subway', 420),
@@ -788,6 +806,7 @@ Layer:
               ('railway_miniature', 420),
               ('railway_turntable', 420),
               ('railway_tram', 410),
+              ('railway_tram-service', 405),
               ('railway_disused', 400),
               ('railway_construction', 400),
               ('highway_motorway', 380),
@@ -817,7 +836,6 @@ Layer:
               ('railway_platform', 90),
               ('aeroway_runway', 60),
               ('aeroway_taxiway', 50),
-              ('highway_proposed', 20),
               ('highway_construction', 10)
             ) AS ordertable (feature, prio)
             USING (feature)
@@ -900,7 +918,7 @@ Layer:
             SELECT
                 way,
                 COALESCE(
-                  ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),
+                  ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard'  WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service' ELSE railway END)),
                   ('aeroway_' || aeroway)
                 ) AS feature,
                 horse,
@@ -924,9 +942,7 @@ Layer:
                 AND (railway IS NOT NULL OR aeroway IS NOT NULL) -- end of rail/aero select
             ) AS features
           JOIN (VALUES -- this join is also putting a condition on what is selected. features not matching it do not make it into the results.
-              ('railway_rail', 430),
-              ('railway_spur', 430),
-              ('railway_siding', 430),
+              ('railway_rail', 440),
               ('railway_INT-preserved-ssy', 430),
               ('railway_INT-spur-siding-yard', 430),
               ('railway_subway', 420),
@@ -938,6 +954,7 @@ Layer:
               ('railway_miniature', 420),
               ('railway_turntable', 420),
               ('railway_tram', 410),
+              ('railway_tram-service', 405),
               ('railway_disused', 400),
               ('railway_construction', 400),
               ('highway_motorway', 380),
@@ -967,7 +984,6 @@ Layer:
               ('railway_platform', 90),
               ('aeroway_runway', 60),
               ('aeroway_taxiway', 50),
-              ('highway_proposed', 20),
               ('highway_construction', 10)
             ) AS ordertable (feature, prio)
             USING (feature)
@@ -1121,7 +1137,7 @@ Layer:
             SELECT
                 way,
                 COALESCE(
-                  ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),
+                  ('railway_' || (CASE WHEN railway = 'preserved' AND service IN ('spur', 'siding', 'yard') THEN 'INT-preserved-ssy'::text WHEN (railway = 'rail' AND service IN ('spur', 'siding', 'yard')) THEN 'INT-spur-siding-yard' WHEN (railway = 'tram' AND service IN ('spur', 'siding', 'yard')) THEN 'tram-service' ELSE railway END)),
                   ('aeroway_' || aeroway)
                 ) AS feature,
                 horse,
@@ -1143,9 +1159,7 @@ Layer:
                 AND (railway IS NOT NULL OR aeroway IS NOT NULL) -- end of rail/aero select
             ) AS features
           JOIN (VALUES -- this join is also putting a condition on what is selected. features not matching it do not make it into the results.
-              ('railway_rail', 430),
-              ('railway_spur', 430),
-              ('railway_siding', 430),
+              ('railway_rail', 440),
               ('railway_INT-preserved-ssy', 430),
               ('railway_INT-spur-siding-yard', 430),
               ('railway_subway', 420),
@@ -1157,6 +1171,7 @@ Layer:
               ('railway_miniature', 420),
               ('railway_turntable', 420),
               ('railway_tram', 410),
+              ('railway_tram-service', 405),
               ('railway_disused', 400),
               ('railway_construction', 400),
               ('highway_motorway', 380),
@@ -1186,7 +1201,6 @@ Layer:
               ('railway_platform', 90),
               ('aeroway_runway', 60),
               ('aeroway_taxiway', 50),
-              ('highway_proposed', 20),
               ('highway_construction', 10)
             ) AS ordertable (feature, prio)
             USING (feature)
@@ -1336,6 +1350,7 @@ Layer:
       table: |-
         (SELECT
             way,
+            way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,
             name,
             tourism
           FROM planet_osm_polygon
@@ -1399,6 +1414,10 @@ Layer:
           WHERE place IN ('city', 'town')
             AND capital IN ('yes', '4')
             AND name IS NOT NULL
+          ORDER BY CASE
+              WHEN place = 'city' THEN 1
+              WHEN place = 'town' THEN 2
+            END ASC
         ) AS placenames_capital
     properties:
       minzoom: 5
@@ -1420,6 +1439,10 @@ Layer:
           WHERE place IN ('city', 'town')
             AND (capital IS NULL OR capital NOT IN ('yes', '4'))
             AND name IS NOT NULL
+          ORDER BY CASE
+              WHEN place = 'city' THEN 1
+              WHEN place = 'town' THEN 2
+            END ASC
         ) AS placenames_medium
     properties:
       minzoom: 6
@@ -1439,6 +1462,15 @@ Layer:
           FROM planet_osm_point
           WHERE place IN ('suburb', 'village', 'hamlet', 'neighbourhood', 'locality', 'isolated_dwelling', 'farm')
             AND name IS NOT NULL
+          ORDER BY CASE
+              WHEN place = 'suburb' THEN 3
+              WHEN place = 'village' THEN 4
+              WHEN place = 'hamlet' THEN 5
+              WHEN place = 'neighbourhood' THEN 6
+              WHEN place = 'locality' THEN 7
+              WHEN place = 'isolated_dwelling' THEN 8
+              WHEN place = 'farm' THEN 9
+            END ASC
         ) AS placenames_small
     properties:
       minzoom: 12
@@ -1519,13 +1551,13 @@ 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', 'clinic', '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', 'taxi', [...]
-              'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'newsagent', 'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 'tra [...]
+              'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'clinic', 'fire_station', 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'tel [...]
+              'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'newsagent', 'optician', 'jewelry', ' [...]
               'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table') THEN leisure ELSE NULL END,
               'man_made_' || CASE WHEN man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill') THEN man_made ELSE NULL END,
               'natural_' || CASE WHEN "natural" IN ('spring') THEN "natural" ELSE NULL END,
               '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,
+              'highway_'|| CASE WHEN highway IN ('bus_stop', 'elevator', '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
             ) AS feature,
@@ -1539,13 +1571,13 @@ Layer:
           -- 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', 'clinic', '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', 'taxi', 'theatre', 'toilets',  [...]
+            OR amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'clinic', 'fire_station', 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_pho [...]
             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 ('spring')
             OR historic IN ('memorial', 'monument', 'archaeological_site')
-            OR highway IN ('bus_stop', 'traffic_signals')
+            OR highway IN ('bus_stop', 'elevator', 'traffic_signals')
             OR (power = 'generator' AND ("generator:source" = 'wind' OR power_source = 'wind'))
           ORDER BY way_area desc
         ) AS amenity_points_poly
@@ -1565,13 +1597,13 @@ 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', 'clinic', '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', 'taxi', [...]
-              'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'newsagent', 'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 'tra [...]
+              'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'clinic', 'fire_station', 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'tel [...]
+              'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'newsagent', 'optician', 'jewelry', ' [...]
               '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', 'monument', 'archaeological_site') THEN historic ELSE NULL END,
-              'highway_'|| CASE WHEN highway IN ('bus_stop', 'traffic_signals', 'ford') THEN highway ELSE NULL END,
+              'highway_'|| CASE WHEN highway IN ('bus_stop', 'elevator', '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,
@@ -1593,13 +1625,13 @@ Layer:
           -- 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', 'clinic', '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', 'taxi', 'theatre', 'toilets',  [...]
+            OR amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', 'car_rental', 'car_sharing', 'cinema', 'clinic', 'fire_station', 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', 'townhall', 'parking', 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_pho [...]
             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', 'monument', 'archaeological_site')
-            OR highway IN ('bus_stop', 'traffic_signals', 'ford')
+            OR highway IN ('bus_stop', 'elevator', 'traffic_signals', 'ford')
             OR (power = 'generator' AND ("generator:source" = 'wind' OR power_source = 'wind'))
           ORDER BY score DESC NULLS LAST
           ) AS amenity_points
@@ -1751,7 +1783,7 @@ Layer:
             CASE WHEN construction IN ('service', 'footway', 'cycleway', 'bridleway', 'path', 'track') THEN 'yes' ELSE 'no' END AS int_construction_minor,
             name
           FROM planet_osm_line
-          WHERE highway IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'unclassified', 'road', 'service', 'pedestrian', 'raceway', 'living_street', 'construction', 'proposed')
+          WHERE highway IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'unclassified', 'road', 'service', 'pedestrian', 'raceway', 'living_street', 'construction')
             AND name IS NOT NULL
         ) AS roads_text_name
     properties:
@@ -1826,8 +1858,8 @@ 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', 'clinic', '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_sha [...]
-              'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'newsagent', 'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 'tra [...]
+              'amenity_' || CASE WHEN amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'clinic', 'parking', 'bicycle_parking', 'motorcycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicy [...]
+              'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'newsagent', 'optician', 'jewelry', ' [...]
               '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,
@@ -1835,7 +1867,7 @@ Layer:
               '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,
+              'highway_' || CASE WHEN highway IN ('services', 'rest_area', 'bus_stop', 'elevator', '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') THEN waterway ELSE NULL END,
@@ -1851,7 +1883,7 @@ 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', 'clinic', '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', 'p [...]
+              OR amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'clinic', 'parking', 'bicycle_parking', 'motorcycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_ren [...]
               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', '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')
@@ -1860,7 +1892,7 @@ Layer:
               OR place IN ('island', 'islet')
               OR military IN ('danger_area')
               OR historic IN ('memorial', 'monument', 'archaeological_site')
-              OR highway IN ('services', 'rest_area', 'bus_stop', 'ford')
+              OR highway IN ('services', 'rest_area', 'bus_stop', 'elevator', 'ford')
               OR power IN ('station', 'generator', 'sub_station', 'substation')
               OR boundary IN ('national_park')
               OR waterway = 'dam')
@@ -1932,8 +1964,8 @@ 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', 'clinic', '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 [...]
-                  'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'newsagent', 'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys',  [...]
+                  'amenity_' || CASE WHEN amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'clinic', 'parking', 'bicycle_parking', 'motorcycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', ' [...]
+                  'shop_' || CASE WHEN shop IN ('supermarket', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'florist', 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'newsagent', 'optician', 'jewelry [...]
                   '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,
@@ -1941,7 +1973,7 @@ Layer:
                   '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,
+                  'highway_' || CASE WHEN highway IN ('services', 'rest_area', 'bus_stop', 'elevator', '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,
@@ -1966,7 +1998,7 @@ 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', 'viewpoint', 'picnic_site')
-                  OR amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'clinic', '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' [...]
+                  OR amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', 'courthouse', 'townhall', 'cinema', 'clinic', 'parking', 'bicycle_parking', 'motorcycle_parking', 'police', 'fire_station', 'place_of_worship', 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car [...]
                   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')
@@ -1975,7 +2007,7 @@ Layer:
                   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 highway IN ('bus_stop', 'services', 'rest_area', 'elevator', 'ford')
                   OR power IN ('station', 'generator', 'sub_station', 'substation')
                   OR boundary IN ('national_park')
                   OR waterway IN ('dam', 'weir'))
@@ -2178,7 +2210,7 @@ Layer:
           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')
+             OR amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'bench', 'waste_basket')
           ORDER BY prio
           ) AS amenity_low_priority
     properties:
@@ -2203,9 +2235,8 @@ Layer:
           WHERE barrier IN ('bollard', 'gate', 'lift_gate', 'block')
              OR highway IN ('mini_roundabout')
              OR railway = 'level_crossing'
-                 OR amenity IN ('parking', 'bicycle_parking')
+                 OR amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking')
           ) AS amenity_low_priority_poly
     properties:
       minzoom: 14
     advanced: {}
-
diff --git a/roads.mss b/roads.mss
index bc28d04..093a981 100644
--- a/roads.mss
+++ b/roads.mss
@@ -142,6 +142,9 @@
 @paths-bridge-casing-width:       0.5;
 @paths-tunnel-casing-width:       1;
 
+ at oneway-arrow-color:              #6c70d5;
+ at junction-text-color:             #6666ff;
+
 .roads-casing, .bridges-casing, .tunnels-casing {
   ::casing {
     [zoom >= 12] {
@@ -514,14 +517,16 @@
       }
     }
 
-    [feature = 'railway_tram'] {
+
+    [feature = 'railway_tram'],
+    [feature = 'railway_tram-service'][zoom >= 15] {
       .bridges-casing {
         [zoom >= 13] {
           line-width: 4;
           [zoom >= 15] {
             line-width: 5;
           }
-          line-color: black;
+          line-color: @bridge-casing;
           line-join: round;
         }
       }
@@ -531,7 +536,7 @@
       .bridges-casing {
         [zoom >= 14] {
           line-width: 5.5;
-          line-color: black;
+          line-color: @bridge-casing;
           line-join: round;
         }
       }
@@ -543,7 +548,7 @@
       .bridges-casing {
         [zoom >= 14] {
           line-width: 5.5;
-          line-color: black;
+          line-color: @bridge-casing;
           line-join: round;
         }
       }
@@ -555,7 +560,7 @@
       .bridges-casing {
         [zoom >= 13] {
           line-width: 6.5;
-          line-color: black;
+          line-color: @bridge-casing;
           line-join: round;
         }
       }
@@ -565,7 +570,7 @@
       .bridges-casing {
         [zoom >= 13] {
           line-width: 5.7;
-          line-color: black;
+          line-color: @bridge-casing;
           line-join: round;
         }
       }
@@ -578,7 +583,7 @@
       .bridges-casing {
         [zoom >= 13] {
           line-width: 6;
-          line-color: black;
+          line-color: @bridge-casing;
           line-join: round;
         }
       }
@@ -590,7 +595,7 @@
           line-width: 13;
           [zoom >= 15] { line-width: 19; }
           [zoom >= 16] { line-width: 25; }
-          line-color: black;
+          line-color: @bridge-casing;
           line-join: round;
         }
       }
@@ -600,7 +605,7 @@
       .bridges-casing {
         [zoom >= 14] {
           line-width: 5;
-          line-color: black;
+          line-color: @bridge-casing;
           line-join: round;
           [zoom >= 15] { line-width: 7; }
         }
@@ -807,7 +812,8 @@
       }
     }
 
-    [feature = 'railway_tram'] {
+    [feature = 'railway_tram'],
+    [feature = 'railway_tram-service'][zoom >= 15] {
       .bridges-casing {
         [zoom >= 13] {
           line-width: 3;
@@ -853,44 +859,6 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
 .bridges-fill[zoom >= 10],
 .tunnels-fill[zoom >= 10] {
   ::fill {
-    [feature = 'highway_proposed'] {
-      [zoom >= 13] {
-        line-width: 2;
-        line-color: white;
-        line-opacity: 0.3;
-        centre/line-width: 2;
-        centre/line-color: #9cc;
-        centre/line-opacity: 0.3;
-        centre/line-dasharray: 2,4;
-        right/line-offset: 2 / 2;
-        right/line-width: 0.1;
-        right/line-color: #9cc;
-        right/line-opacity: 0.3;
-        left/line-offset: -2 / 2;
-        left/line-width: 0.1;
-        left/line-color: #9cc;
-        left/line-opacity: 0.3;
-        [zoom >= 14] {
-          line-width: 3.5;
-          centre/line-width: 3.5;
-          centre/line-dasharray: 4,6;
-          right/line-offset: 3.5 / 2;
-          right/line-width: 0.25;
-          left/line-offset: -3.5 / 2;
-          left/line-width: 0.25;
-        }
-        [zoom >= 16] {
-          line-width: 7;
-          centre/line-width: 7;
-          centre/line-dasharray: 6,8;
-          right/line-offset: 7 / 2;
-          right/line-width: 0.5;
-          left/line-offset: -7 / 2;
-          left/line-width: 0.5;
-        }
-      }
-    }
-
     /*
      * The construction rules for small roads are strange, since if construction is null its assumed that
      * it's a more major road. The line-width = 0 could be removed by playing with the query to set a construction
@@ -1132,7 +1100,11 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
 
     [feature = 'highway_residential'],
     [feature = 'highway_unclassified'] {
-      [zoom >= 10] {
+      [zoom = 12][feature = 'highway_residential'] {
+        line-color: @residential-casing;
+        line-width: 0.4;
+      }
+      [zoom = 12][feature = 'highway_unclassified'] {
         line-color: @residential-casing;
         line-width: 1;
       }
@@ -1197,10 +1169,6 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
     }
 
     [feature = 'highway_living_street'] {
-      [zoom >= 12] {
-        line-color: @residential-casing;
-        line-width: 1;
-      }
       [zoom >= 13] {
         line-width: @living-street-width-z13 - 2 * @casing-width-z13;
         [zoom >= 14] { line-width: @living-street-width-z14 - 2 * @casing-width-z14; }
@@ -1472,7 +1440,7 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
     }
 
     [feature = 'railway_rail'][zoom >= 7],
-    [feature = 'railway_INT-spur-siding-yard'][zoom >= 11] {
+    [feature = 'railway_INT-spur-siding-yard'][zoom >= 13] {
       [zoom < 13] {
         line-color: #aaa;
         [feature = 'railway_rail'] {
@@ -1570,14 +1538,38 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
       }
     }
 
-    [feature = 'railway_tram'] {
-      [zoom >= 8] {
-        line-color: #ccc;
-        [zoom >= 10] { line-color: #aaa; }
-        [zoom >= 13] { line-color: #444; }
-        line-width: 1;
+    [feature = 'railway_tram'],
+    [feature = 'railway_tram-service'][zoom >= 15] {
+      [zoom >= 12] {
+        line-color: #6E6E6E;
+        line-width: 0.75;
+        [zoom >= 13] {
+          line-color: #444;
+        }
+        [zoom >= 14] {
+          line-width: 1;
+        }
         [zoom >= 15] {
+          line-width: 1.5;
+          [feature = 'railway_tram-service'] {
+            line-width: 0.5;
+          }
+        }
+        [zoom >= 17] {
           line-width: 2;
+          [feature = 'railway_tram-service'] {
+            line-width: 1;
+          }
+        }
+        [zoom >= 18] {
+          [feature = 'railway_tram-service'] {
+            line-width: 1.5;
+          }
+        }
+        [zoom >= 19] {
+          [feature = 'railway_tram-service'] {
+            line-width: 2;
+          }
         }
         .tunnels-fill {
           line-dasharray: 5,3;
@@ -1846,11 +1838,11 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
 
   [int_tc_type = 'track'][zoom >= 15] {
     marker-fill: @track-fill;
-    marker-width: 12;
-    marker-height: 12;
+    marker-width: 6;
+    marker-height: 6;
     [zoom >= 17] {
-      marker-width: 14;
-      marker-height: 14;
+      marker-width: 10;
+      marker-height: 10;
     }
     marker-allow-overlap: true;
     marker-ignore-placement: true;
@@ -1899,7 +1891,7 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
 
 #highway-area-fill {
   [feature = 'highway_living_street'][zoom >= 14] {
-    polygon-fill: #ccc;
+    polygon-fill: @living-street-fill;
   }
 
   [feature = 'highway_residential'],
@@ -1915,7 +1907,7 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
   [feature = 'highway_cycleway'],
   [feature = 'highway_path'] {
     [zoom >= 14] {
-      polygon-fill: #ededed;
+      polygon-fill: @pedestrian-fill;
     }
   }
 
@@ -1949,14 +1941,14 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
     [zoom >= 11] {
       ref/text-name: "[ref]";
       ref/text-size: 10;
-      ref/text-fill: #6666ff;
+      ref/text-fill: @junction-text-color;
       ref/text-min-distance: 2;
       ref/text-face-name: @oblique-fonts;
       ref/text-halo-radius: 1.5;
       [zoom >= 12] {
         name/text-name: "[name]";
         name/text-size: 9;
-        name/text-fill: #6666ff;
+        name/text-fill: @junction-text-color;
         name/text-dy: -9;
         name/text-face-name: @oblique-fonts;
         name/text-halo-radius: 1;
@@ -2292,23 +2284,6 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
       text-size: 11;
     }
   }
-  [highway = 'proposed'] {
-    [zoom >= 15] {
-      text-name: "[name]";
-      text-size: 9;
-      text-fill: black;
-      text-spacing: 300;
-      text-clip: false;
-      text-placement: line;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
-      text-face-name: @book-fonts;
-      text-opacity: 0.3;
-    }
-    [zoom >= 17] {
-      text-size: 11;
-    }
-  }
   [highway = 'construction'] {
     [int_construction_minor = 'no'][zoom >= 13],
     [int_construction_minor = 'yes'][zoom >= 14] {
@@ -2422,6 +2397,7 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
       text-clip: false;
       text-placement: line;
       text-face-name: @book-fonts;
+      text-vertical-alignment: middle;
       text-dy: 5;
     }
     [zoom >= 16] {
@@ -2449,6 +2425,7 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
       text-clip: false;
       text-placement: line;
       text-face-name: @book-fonts;
+      text-vertical-alignment: middle;
       text-dy: 7;
     }
     [zoom >= 17] {
@@ -2463,44 +2440,44 @@ residential is rendered from z10 and is not included in osm_planet_roads. */
     [oneway = 'yes'] {
       dira/line-width: 1;
       dira/line-dasharray: 0,12,10,152;
-      dira/line-color: #6c70d5;
+      dira/line-color: @oneway-arrow-color;
       dira/line-join: bevel;
       dira/line-clip: false;
       dirb/line-width: 2;
       dirb/line-dasharray: 0,12,9,153;
-      dirb/line-color: #6c70d5;
+      dirb/line-color: @oneway-arrow-color;
       dirb/line-join: bevel;
       dirb/line-clip: false;
       dirc/line-width: 3;
       dirc/line-dasharray: 0,18,2,154;
-      dirc/line-color: #6c70d5;
+      dirc/line-color: @oneway-arrow-color;
       dirc/line-join: bevel;
       dirc/line-clip: false;
       dird/line-width: 4;
       dird/line-dasharray: 0,18,1,155;
-      dird/line-color: #6c70d5;
+      dird/line-color: @oneway-arrow-color;
       dird/line-join: bevel;
       dird/line-clip: false;
     }
     [oneway = '-1'] {
       dira/line-width: 1;
       dira/line-dasharray: 0,12,10,152;
-      dira/line-color: #6c70d5;
+      dira/line-color: @oneway-arrow-color;
       dira/line-join: bevel;
       dira/line-clip: false;
       dirb/line-width: 2;
       dirb/line-dasharray: 0,13,9,152;
-      dirb/line-color: #6c70d5;
+      dirb/line-color: @oneway-arrow-color;
       dirb/line-join: bevel;
       dirb/line-clip: false;
       dirc/line-width: 3;
       dirc/line-dasharray: 0,14,2,158;
-      dirc/line-color: #6c70d5;
+      dirc/line-color: @oneway-arrow-color;
       dirc/line-join: bevel;
       dirc/line-clip: false;
       dird/line-width: 4;
       dird/line-dasharray: 0,15,1,158;
-      dird/line-color: #6c70d5;
+      dird/line-color: @oneway-arrow-color;
       dird/line-join: bevel;
       dird/line-clip: false;
     }
diff --git a/shapefiles.mss b/shapefiles.mss
index 76da5b8..f67fb5e 100644
--- a/shapefiles.mss
+++ b/shapefiles.mss
@@ -31,6 +31,26 @@
   }
 }
 
+#icesheet-poly {
+  [zoom >= 6] {
+    polygon-fill: @glacier;
+    [zoom >= 8] {
+      polygon-pattern-file: url('symbols/glacier.png');
+    }
+  }
+}
+
+#icesheet-outlines {
+  [zoom >= 6] {
+    [ice_edge = 'ice_ocean'],
+    [ice_edge = 'ice_land'] {
+      line-dasharray: 4,2;
+      line-width: 0.75;
+      line-color: @glacier-line;
+    }
+  }
+}
+
 #builtup {
   [zoom >= 8][zoom < 10] {
     polygon-fill: #ddd;
diff --git a/stations.mss b/stations.mss
index fd260a7..72a263e 100644
--- a/stations.mss
+++ b/stations.mss
@@ -2,8 +2,10 @@
 
 .stations {
   [railway = 'subway_entrance'][zoom >= 18] {
-    point-file: url('symbols/walking.n.12.png');
-    point-placement: interior;
+    marker-file: url('symbols/entrance.10.svg');
+    marker-placement: interior;
+    marker-fill: @transportation-icon;
+    marker-clip: false;
   }
 
   [railway = 'station'][zoom >= 12] {
diff --git a/symbols/computer-14.svg b/symbols/computer-14.svg
new file mode 100644
index 0000000..bfb3583
--- /dev/null
+++ b/symbols/computer-14.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   id="svg2"
+   x="0px"
+   y="0px"
+   width="14"
+   height="14"
+   viewBox="0 0 14 14"
+   enable-background="new 0 0 580 580"
+   xml:space="preserve"><metadata
+     id="metadata13"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs11" /><path
+     style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero [...]
+     d="M 2,10 C 1.7492735,10 1.6784845,10.148136 1.5531212,10.398862 L 0.46484375,13.529297 C 0.27854468,13.779151 0.74927346,14 1,14 l 12,0 c 0.250727,0 0.619365,-0.250316 0.535156,-0.470703 L 12.416408,10.36644 C 12.291045,10.147054 12.250727,10 12,10 Z"
+     id="path4142" /><path
+     style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero [...]
+     d="M 3,1 C 2.5154074,1 2,1.5166276 2,2 l 0,6 c 0,0.4833725 0.5166276,1.0000001 1,1.0000001 l 8,0 c 0.483372,0 1,-0.5166276 1,-1.0000001 L 12,2 C 12,1.5166127 11.483372,1 11,1 L 3,1 Z m 0,1 8,0 0,6 -8,0 0,-6 z"
+     id="path4140" /><g
+     id="g3658"
+     transform="matrix(35.361376,0,0,35.361376,-287.04938,-189.95613)" /><g
+     id="g3626-4"
+     transform="matrix(31.340817,0,0,31.340817,-243.79003,-170.92361)" /></svg>
\ No newline at end of file
diff --git a/symbols/elevator-12.svg b/symbols/elevator-12.svg
new file mode 100644
index 0000000..8f3af94
--- /dev/null
+++ b/symbols/elevator-12.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="12"
+   height="12"
+   viewBox="-110 0 0 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="12"
+     height="12"
+     x="0"
+     y="0"
+     id="canvas"
+     style="visibility:hidden;fill:none;stroke:none" />
+  <path
+     id="path3339"
+     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="m 8,0 0,1 2,0 0,10 -1.7440812,0 -0.027057,1 L 12,12 12,0 Z M 3,7 6,12 9,7 7,7 7,5 9,5 6,0 3,5 5,5 5,7 Z M 3.5817362,12 3.6223224,11 2,11 2,1 4,1 4,0 0,0 0,12 Z" />
+</svg>
diff --git a/symbols/emergency_phone.16.svg b/symbols/emergency_phone.16.svg
new file mode 100644
index 0000000..3699f7e
--- /dev/null
+++ b/symbols/emergency_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 2,1 C 1,1 0,2 0,3 l 0,1 4,0 1,-1 4,0 1,1 4,0 0,-1 C 14,2 13,1 12,1 z M 0,4.75 0,5.25 C 0,5.25 0.37037551,6 1,6 L 3,6 C 3.5663545,5.9811215 4,5.25 4,5.25 l 0,-0.5 z m 10,0 0,0.5 c 0,0 0.433715,0.75 1,0.75 l 2,0 c 0.566673,0 1,-0.75 1,-0.75 l 0,-0.5 z M 1.5,8 C 0.70762712,8 0,8.573533 0,9.5 0,10.478901 0.72245763,11 1.5,11 l 1,0 C 2.5,11 3,11 3,11.5 3,12 2.5,12 2.5,12 l -2,0 0,1 2,0 C 3.2775424,13 4,12.396919 4,11.46875 4,10.593015 3.2627119,10 2.5,10 l -1,0 C 1.5,10 1,10 1,9. [...]
+</svg>
diff --git a/symbols/entrance.10.svg b/symbols/entrance.10.svg
new file mode 100644
index 0000000..9f5e7b6
--- /dev/null
+++ b/symbols/entrance.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 2.75,0 0,2.5 1.25,0 0,-1.25 4.75,0 0,7.5 L 4,8.75 4,7.5 2.75,7.5 2.75,10 10,10 10,0 z M 5,2.5 l 0,1.75 -4,0 0,1.5 4,0 L 5,7.5 8,5 z"
+     id="entrance"
+     style="fill:#000000;fill-opacity:1;stroke:none" />
+</svg>
diff --git a/symbols/ice-cream-14.svg b/symbols/ice-cream-14.svg
new file mode 100644
index 0000000..a1ad20e
--- /dev/null
+++ b/symbols/ice-cream-14.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 14 14"
+   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="14"
+     height="14"
+     x="0"
+     y="0"
+     id="canvas"
+     style="fill:none;stroke:none;visibility:hidden" />
+  <path
+     d="M 5,0 C 3.3431457,0 2,1.3431457 2,3 2,3.3555333 2.0739786,3.6835283 2.1875,4 l 5.625,0 C 7.9260214,3.6835283 8,3.3555333 8,3 8,1.3431457 6.6568543,0 5,0 z M 9,0 C 8.5961418,0 8.2266723,0.105305 7.875,0.25 8.5629725,0.96841289 9,1.9267594 9,3 9,3.3467764 8.931082,3.6790098 8.84375,4 L 11.8125,4 C 11.926021,3.6835283 12,3.3555333 12,3 12,1.3431457 10.656854,0 9,0 z M 3.25,5 7,14 10.75,5 3.25,5 z"
+     id="ice-cream"
+     style="fill:#000000;fill-opacity:1;stroke:none" />
+</svg>
diff --git a/symbols/motorcycle-14.svg b/symbols/motorcycle-14.svg
new file mode 100644
index 0000000..d247992
--- /dev/null
+++ b/symbols/motorcycle-14.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   id="svg2"
+   viewBox="-240 0 0 16"
+   height="14"
+   width="14"
+   version="1.1">
+  <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="14"
+     height="14"
+     id="canvas"
+     style="visibility:hidden;fill:none;stroke:none" />
+  <path
+     d="m 11.656176,5.8256161 c 0.298589,0.2100571 0.472688,0.4414767 0.557618,0.7348004 0.02791,0.096441 0.02967,0.116247 0.03043,0.3145082 6.72e-4,0.1824775 -0.0013,0.2303319 -0.02282,0.331662 -0.04231,0.1988789 -0.12061,0.4210966 -0.212909,0.6147172 l -0.04055,0.088638 -0.139406,0.00864 C 11.321401,7.9483119 10.913322,8.0512522 10.558686,8.241664 9.7980817,8.6500367 9.3203179,9.4172822 9.0835261,10.60618 l -0.020273,0.09435 -0.098852,0.102933 c -0.054816,0.05578 -0.1286446,0.122894 -0 [...]
+     style="fill:#1a1a1a;fill-rule:evenodd"
+     id="motorcycle" />
+</svg>
diff --git a/symbols/motorcycle_parking.16.svg b/symbols/motorcycle_parking.16.svg
new file mode 100644
index 0000000..98f8ea8
--- /dev/null
+++ b/symbols/motorcycle_parking.16.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   id="svg2"
+   viewBox="0 0 16 16"
+   height="100%"
+   width="100%"
+   version="1.1">
+  <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 13.105361,9.5925004 c 0.230087,0.143493 0.364242,0.301579 0.429688,0.5019526 0.02151,0.06588 0.02287,0.07941 0.02344,0.214845 5.18e-4,0.124653 -9.69e-4,0.157343 -0.01758,0.226563 -0.0326,0.135857 -0.09294,0.287657 -0.164063,0.419922 l -0.03125,0.06055 -0.107422,0.0059 c -0.390788,0.02031 -0.705242,0.09063 -0.978515,0.220703 -0.586101,0.278965 -0.954254,0.803082 -1.136719,1.615234 l -0.01563,0.06445 -0.07617,0.07031 c -0.04224,0.03811 -0.09913,0.08395 -0.126953,0.101562 -0.25285 [...]
+     style="fill:#1a1a1a;fill-rule:evenodd"
+     id="parking-motorcycle" />
+</svg>
diff --git a/symbols/orchard.png b/symbols/orchard.png
index 481f4f4..d0312a1 100644
Binary files a/symbols/orchard.png and b/symbols/orchard.png differ
diff --git a/symbols/post_box-12.svg b/symbols/post_box-12.svg
new file mode 100644
index 0000000..f0cdcef
--- /dev/null
+++ b/symbols/post_box-12.svg
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="100%"
+   height="100%"
+   viewBox="0 0 12 12"
+   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="12"
+     height="12"
+     x="0"
+     y="0"
+     id="canvas"
+     style="fill:none;stroke:none;visibility:hidden" />
+  <path
+     d="M 0.99999985,0 C 0.45762681,0 -2.9305082e-7,0.4576271 -1.9e-7,0.9999999 L 0,2 c 1.0627117e-7,0.559322 0.48861696,1 1,1 l 0,-2 10,0 0,2 c 0.511382,0 1,-0.4857094 1,-1 L 12,0.9999999 C 12,0.4576271 11.508475,0 11,0 Z M 7.4999865,11.987788 2,12 2,2 7.4777817,1.987813 4.4888915,6.9944615 Z M 10,12 8.9999828,11.984457 5.9888878,6.9911308 8.977778,1.984482 10,2 Z"
+     id="path4258" />
+</svg>
diff --git a/symbols/post_box.p.16.png b/symbols/post_box.p.16.png
deleted file mode 100644
index 3119cc1..0000000
Binary files a/symbols/post_box.p.16.png and /dev/null differ
diff --git a/symbols/post_office-14.svg b/symbols/post_office-14.svg
new file mode 100644
index 0000000..82268ef
--- /dev/null
+++ b/symbols/post_office-14.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 14 14"
+   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="14"
+     height="14"
+     x="0"
+     y="0"
+     id="canvas"
+     style="fill:none;stroke:none;visibility:hidden" />
+  <path
+     d="m 0,2 0,1 7,4 7,-4 0,-1 z m 0,3 0,7 14,0 0,-7 -7,4 z"
+     id="post-office"
+     style="fill:#000000;fill-opacity:1;stroke:none" />
+</svg>
diff --git a/symbols/post_office.p.16.png b/symbols/post_office.p.16.png
deleted file mode 100644
index 743255e..0000000
Binary files a/symbols/post_office.p.16.png and /dev/null differ
diff --git a/symbols/seafood-14.svg b/symbols/seafood-14.svg
new file mode 100644
index 0000000..dff1245
--- /dev/null
+++ b/symbols/seafood-14.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xml:space="preserve"
+   enable-background="new 0 0 580 580"
+   viewBox="0 0 14 14"
+   height="14"
+   width="14"
+   y="0px"
+   x="0px"
+   id="svg2"
+   version="1.1"><metadata
+     id="metadata13"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs11" />
+    <path
+     d="M 6,3 C 3,3 0,5 0,7 0,9 3,11 6,11 8.2433092,10.977189 11,9 11,7 11,5 8,3 6,3 Z m 5,4 c 0,2 1.634385,3.274211 3,4 C 14,9 13.333333,8.3333333 13,7 13.333333,5.6666667 14,5 14,3 12.771491,3.6648531 11,5 11,7 Z M 2.9824219,5 A 1,1 0 0 1 4,5.9765625 L 4,6 A 1,1 0 0 1 3.0058594,7 1,1 0 0 1 2,6.0117188 1,1 0 0 1 2.9824219,5 Z"
+     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     id="path4139" /></svg>
\ No newline at end of file
diff --git a/symbols/sosphone.png b/symbols/sosphone.png
deleted file mode 100644
index 0e5d0a2..0000000
Binary files a/symbols/sosphone.png and /dev/null differ
diff --git a/symbols/telephone.16.svg b/symbols/telephone.16.svg
new file mode 100644
index 0000000..00edbdb
--- /dev/null
+++ b/symbols/telephone.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,8 C 1.0118212,8.9881788 0.56004859,10.573569 1.5487288,11.552966 L 2,12 5,9 5,7.5 7.5,5 9,5 12,2 11.489407,1.512712 C 10.513874,0.58170546 8.9807634,1.0192366 8,2 z m 0.5451482,4.537558 0.3387857,0.352887 c 0,0 0.8501688,0.07591 1.2889221,-0.356167 L 5.5665554,11.161784 C 5.9484277,10.759801 5.8738707,9.8572254 5.8738707,9.8572254 L 5.5350852,9.504338 z M 9.5530473,5.5203307 9.8918329,5.8732169 c 0,0 0.8697361,0.1575408 1.2643511,-0.2310704 l 1.393699,-1.372494 C 12.944768 [...]
+</svg>
diff --git a/symbols/telephone.p.16.png b/symbols/telephone.p.16.png
deleted file mode 100644
index 29378e4..0000000
Binary files a/symbols/telephone.p.16.png and /dev/null differ
diff --git a/symbols/variety_store-14.svg b/symbols/variety_store-14.svg
new file mode 100644
index 0000000..ebc01e1
--- /dev/null
+++ b/symbols/variety_store-14.svg
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   id="svg2"
+   viewBox="0 0 14 14"
+   height="100%"
+   width="100%"
+   version="1.1">
+  <defs
+     id="defs3053" />
+  <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>
+  <g
+     style="font-size:7.5px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+     id="text4134">
+    <path
+       id="variety_store"
+       d="M 5,0 C 4,0 4,0 4,1 L 4.0097656,4 1,4 1,13 c 0,1 0,1 1,1 l 10,0 c 1,0 1,0 1,-1 L 13,4 10.039062,4 10,1 C 10,0 10,0 9,0 Z M 9,1 9,4 5,4 5,1 Z M 5,5 8,5 8,12 5,12 5,11 7,11 7,9 5,9 Z m 4,0 3,0 0,7 -3,0 0,-1 2,0 0,-2 -2,0 z M 6,6 6,8 7,8 7,6 Z m 4,0 0,2 1,0 0,-2 z m -8,5 2,0 0,2.48929 -1,0 L 3,12 2,12 Z"
+       style="font-weight:bold;font-size:8.75px" />
+  </g>
+</svg>
diff --git a/symbols/vineyard.png b/symbols/vineyard.png
index 4e8ee2a..2e54b00 100644
Binary files a/symbols/vineyard.png and b/symbols/vineyard.png differ
diff --git a/symbols/walking.n.12.png b/symbols/walking.n.12.png
deleted file mode 100644
index 0902983..0000000
Binary files a/symbols/walking.n.12.png and /dev/null differ
diff --git a/water.mss b/water.mss
index 6ee9df2..f96f5f1 100644
--- a/water.mss
+++ b/water.mss
@@ -264,6 +264,7 @@
       text-halo-fill: rgba(255,255,255,0.6);
       text-spacing: 600;
       text-placement: line;
+      text-vertical-alignment: middle;
       text-dy: 8;
     }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/osm-tile-server.git



More information about the Pkg-grass-devel mailing list