[openstreetmap-carto] 01/04: Imported Upstream version 2.43.0

Bas Couwenberg sebastic at debian.org
Tue Sep 6 09:14:26 UTC 2016


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

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

commit f931a3a13b34942fb0347e51a3c34027b6d0d2f4
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Tue Sep 6 11:06:41 2016 +0200

    Imported Upstream version 2.43.0
---
 CARTOGRAPHY.md                   |   4 +-
 CHANGELOG.md                     | 191 +++++++++++++++++++++++++++++++++++++++
 RELEASES.md                      |   7 +-
 addressing.mss                   |  19 ++--
 admin.mss                        |   8 +-
 amenity-points.mss               | 101 +++++++++++----------
 ferry-routes.mss                 |   4 +-
 indexes.sql                      |   5 +
 indexes.yml                      |   6 ++
 landcover.mss                    |  14 +--
 placenames.mss                   |  32 +++----
 project.mml                      |  36 ++++----
 project.yaml                     | 187 ++++++++++++++++++++++----------------
 roads.mss                        | 136 ++++++++++++++--------------
 scripts/generate_road_colours.py |   2 +-
 scripts/yaml2mml.py              |  40 ++++----
 stations.mss                     |  16 ++--
 style.mss                        |  11 +++
 symbols/allotments.png           | Bin 227 -> 114 bytes
 symbols/dog_park.16.svg          |  59 ------------
 symbols/dog_park.png             | Bin 843 -> 537 bytes
 water-features.mss               |   8 +-
 water.mss                        |  30 +++---
 23 files changed, 561 insertions(+), 355 deletions(-)

diff --git a/CARTOGRAPHY.md b/CARTOGRAPHY.md
index 8b2b9a0..7e06410 100644
--- a/CARTOGRAPHY.md
+++ b/CARTOGRAPHY.md
@@ -28,7 +28,9 @@ For similar reasons, use of external non-OSM data should be avoided.
 
 ## Legibility
 
-I mean this not only in terms of font size, but in the ability of users to be able to "read" the map style. For example, a user might not be familiar with our exact road colours, but should be able to understand their relative importance via intensity of colour, width or other attributes. Important features should be more easily spotted and understood than less important information. It should be possible to gain an understanding of the majority of the map without using a legend.
+Legibility is not only about of font size, but also about the ability of users to be able to “read” the map style. For example, a user might not be familiar with our exact road colours, but should be able to understand their relative importance via intensity of colour, width or other attributes. Important features should be more easily spotted and understood than less important information. It should be possible to gain an understanding of the majority of the map without using a legend.
+
+Avoid font sizes smaller than 10.
 
 ## The Mapper Feedback Loop
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..8e87cac
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,191 @@
+## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.43.0...master)
+
+## [v2.43.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.42.0...v2.43.0) - 2016-09-05
+### Changes
+- Adjust alotments pattern
+- Whitespace cleanups of code
+- Adjust colours of dog parks and construction sites
+- Increase font size of addresses
+- Fix combination of long names and oneway arrows
+
+## [v2.42.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.41.0...v2.42.0) - 2016-08-03
+### Changes
+- Add rendering of `amenity=charging_station` and `tourism=artwork`
+- Change icon of `shop=department_store`
+- Increase font size for various labels
+- Change playground color
+- Various bug fixes
+
+## [v2.41.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.40.0...v2.41.0) - 2016-07-13
+### Changes
+- More consistent fonts for POI labels
+- Less saturated stadiums
+- Rendering obelisks and dog parks
+- An updated list of font packages
+- Cleaning up the font list
+- Rewriting the road colours script for easier changes
+- Various bug fixes
+
+### New contributors
+- @jdhoek
+
+## [v2.40.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.39.0...v2.40.0) - 2016-06-21
+### Changes
+- More consistent size of icon labels (bigger labels in most cases).
+- Changed rendering of power lines on low zoom levels.
+- Changed rendering of turning circles.
+- Changed icon for libraries and book shops.
+- Larger labels for place names.
+- Various bug fixes.
+
+## [v2.39.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.38.0...v2.39.0) - 2016-03-02
+### Changes
+- Render swing gates
+- More SVG icons
+
+## [v2.38.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.37.0...v2.38.0) - 2016-02-17
+### Changes
+- Add rendering for natural=shoal, and natural=reef.
+- Change of rendering of linear barriers: keep rendering of barrier
+types `chain`, `city_wall`, `embankment`, `ditch`, `fence`, `guard_rail`,
+`handrail`, `hedge`, `kerb`, `retaining_wall`, and `wall`, and drop rendering of
+all other barrier types.
+- Add rendering for social facilities.
+- New icon for sports shops.
+- Changed rendering of cutlines.
+- Changed rendering for beach surfaces: add rendering for
+`surface=fine_gravel`, `surface=pebbles`, and `surface=pebblestone`; drop
+rendering for `surface=peeples`
+- Various other bug fixes and minor improvements.
+
+## [v2.37.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.36.0...v2.37.0) - 2015-11-30
+### Changes
+- Improved admin boundaries and labels on low zoom levels
+- New farmland colour, making farmland less prominent
+- New icons for `shop=copyshop` and `shop=beverages`
+- Some refinements to the road rendering, based on the feedback we
+received on this topic. In particular, roads are now rendered slightly
+narrower on z13, z18 and z19.
+- Various other bug fixes and minor improvements.
+
+## [v2.36.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.35.0...v2.36.0) - 2015-10-30
+### Major Changes
+Major rewrite of road and railway rendering, as part of Mateusz Konieczny's Google Summer of Code project. See https://blog.openstreetmap.org/2015/10/30/openstreetmap-org-map-changing/
+for more information.
+
+### Changes
+- Added rendering of the following tags:
+  - `amenity=fountain`
+  - `amenity=car_wash`
+  - `historic=wayside_cross` and `man_made=cross`
+  - `shop=bag`
+  - `shop=outdoor`
+  - `power=plant` (labels)
+- Changed rendering of the following objects:
+  - Placenames (new algorithm for deciding what placenames to render
+on low zoomlevels)
+  - Road shields
+  - Oneway arrows
+  - Glaciers
+  - Marina labels
+  - Station labels
+- Dropped rendering of the following tags:
+  - `amenity=car_sharing` (not relevant for the general public)
+  - `shop=antique` (use `shop=antiques`)
+  - `shop=betting` (use `shop=lottery` or `shop=bookmaker`)
+  - `shop=delicatessen` (use `shop=deli`)
+  - `shop=dive` (use `shop=scuba_diving`)
+  - `shop=fish` (use `shop=seafood`, `shop=pet`, `shop=angling` or `amenity=fast_food`)
+  - `shop=gambling` (use `shop=lottery`, `shop=bookmaker`, or
+`leisure=adult_gaming_centre`)
+  - `shop=insurance` (use `office=insurance`)
+  - `shop=pharmacy` (use `office=pharmacy`)
+  - `shop=bags` (use `shop=bag`)
+- Various other bug fixes and minor improvements.
+
+## [v2.35.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.34.0...v2.35.0) - 2015-09-16
+### Changes
+- Add new icon for ford
+- Stop rendering of `landuse=conservation`
+- Restore rendering of `amenity=kindergarten/school/college/university/grave_yard` names
+- Various other bug fixes.
+
+## [v2.34.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.33.0...v2.34.0) - 2015-08-28
+### Changes
+Changes include
+
+- better rendering for highway=path/footway/cycleway - this is the
+next iteration of improving how footways and cycleways are
+displayed. Unpaved footways are now visible on natural=bare_rock
+and there are now three classes: paved, unpaved and unknown surface
+
+- `man_made=bridge` is now rendered
+
+- new rendering for `landuse=quarry`
+
+- `amenity=veterinary` is now rendered
+
+- `amenity=community_centre` is now rendered
+
+- `amenity=prison` and `landuse=military` rendering takes in account area size
+
+- consistent color for boundaries
+
+- tweaked zoom level for `amenity=car_sharing` and `amenity=car_rental`
+
+- Mapnik 3 preparations are now finished. The style now supports Mapnik 3. Most of the work was done on the Mapnik side.
+
+## [v2.33.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.32.0...v2.33.0) - 2015-08-14
+### Major changes
+- A randomized symbology for forests for `natural=wood` and `landuse=forest`
+
+  A long time in the works, this improvement has finally landed. The two
+  tags were merged - they are indistinguishable to the data consumer.
+  A randomized symbology was first suggested by SK53 at SOTM-EU 2014,
+  and this feature would not have happened without his extensive research,
+  or imagico's tools for creating an irregular but uniformly distributed
+  and periodic dot pattern
+
+- Unification of footway/path and rendering surface of them
+
+   The mess that is highway=path is well-known, and it is necessary
+   to do some kind of processing as a data consumer. A distinction is
+   now made between paved and unpaved footways.
+
+
+### Changes
+- Mapnik 3 preperations
+
+   The style is not yet fullly tested with Mapnik 3 and we don't claim to
+   support it, but several bugs were fixed. Most of the work was done on
+   the Mapnik side
+
+- Power area colour adjusted
+
+## [v2.32.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.31.0...v2.32.0) - 2015-07-31
+# New files
+
+Shapefiles are now used for Antartic ice sheets
+
+### Changes
+
+- Rendering minor roads and service rail later for mid-zoom clarity
+
+   As all residential, unclassified, and service roads in a city became
+   mapped the rendered view became over-crowded, bloblike, and difficult
+   to read.
+
+- Rendering of Antartic ice sheets from shapefiles
+
+  Ice sheets in Antartica are a bit of a special case, and pre-generated
+  shapefiles are now used
+
+- No longer rendering proposed roads
+
+- Better place label order
+
+- meadow/grassland and orchard/vineyard color unification
+
+- Render educational area borders later
+
+- New POI icons
\ No newline at end of file
diff --git a/RELEASES.md b/RELEASES.md
index 30d5fcd..2321bc5 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -12,9 +12,10 @@ Decide among the maintainers if a new release is due.
 
 # Tagging a release
 1. Check out master with git
-2. Tag a release with `git tag -a $NEW_VERSION -m "Tag $NEW_VERSION"`. *Optional: Add `-s` and GPG sign the tag.*
-3. Push the tag with `git push origin $NEW_VERSION`. If you use a different name for the gravitystorm/openstreetmap-carto remote, use it instead.
-4. If there are any long-running development branches (e.g. `lua`) check them out and merge the new release with `git merge $NEW_RELEASE`.
+2. Change the Unreleased section in [`CHANGELOG.md`](CHANGELOG.md) to the new version. Add any changes that are missing from the changelog and a new Unreleased section.
+3. Commit the changelog changes and tag a release with `git tag -a $NEW_VERSION -m "Tag $NEW_VERSION"`. *Optional: Add `-s` and GPG sign the tag.*
+4. Push the tag with `git push origin $NEW_VERSION`. If you use a different name for the gravitystorm/openstreetmap-carto remote, use it instead.
+5. If there are any long-running development branches (e.g. `lua`) check them out and merge the new release with `git merge $NEW_RELEASE`.
 
 # Notifications
 
diff --git a/addressing.mss b/addressing.mss
index 452e714..a6e1dc1 100644
--- a/addressing.mss
+++ b/addressing.mss
@@ -1,3 +1,5 @@
+ at address-color: #666;
+
 #interpolation {
   [zoom >= 17] {
     line-color: #888;
@@ -13,8 +15,11 @@
     text-min-distance: 1;
     text-wrap-width: 0;
     text-face-name: @book-fonts;
-    text-fill: #666;
-    text-size: 9;
+    text-fill: @address-color;
+    text-size: 10;
+    [zoom >= 20] {
+        text-size: 11;
+    }
   }
 }
 
@@ -24,10 +29,10 @@
     text-placement: interior;
     text-wrap-width: 20;
     text-face-name: @book-fonts;
-    text-size: 8;
-    text-fill: #666;
-    [zoom >= 18] {
-      text-size: 9;
+    text-fill: @address-color;
+    text-size: 10;
+    [zoom >= 20] {
+        text-size: 11;
     }
   }
 }
@@ -39,7 +44,7 @@
     text-size: 11;
     text-fill: #444;
     text-face-name: @book-fonts;
-    text-halo-radius: 1;
+    text-halo-radius: @standard-halo-radius;
     text-wrap-width: 20;
     text-halo-fill: rgba(255,255,255,0.5);
     text-placement: interior;
diff --git a/admin.mss b/admin.mss
index 4bc055a..5090845 100644
--- a/admin.mss
+++ b/admin.mss
@@ -169,8 +169,8 @@ overlapping borders correctly.
   text-name: "[name]";
   text-face-name: @book-fonts;
   text-fill: @admin-boundaries;
-  text-halo-radius: 1.0;
-  text-halo-fill: rgba(255,255,255,0.6);
+  text-halo-radius: @standard-halo-radius;
+  text-halo-fill: @standard-halo-fill;
   text-placement: line;
   text-clip: true;
   text-vertical-alignment: middle;
@@ -181,8 +181,8 @@ overlapping borders correctly.
   text-name: "[name]";
   text-face-name: @book-fonts;
   text-fill: green;
-  text-halo-radius: 1.0;
-  text-halo-fill: rgba(255,255,255,0.6);
+  text-halo-radius: @standard-halo-radius;
+  text-halo-fill: @standard-halo-fill;
   text-placement: line;
   text-clip: true;
   text-vertical-alignment: middle;
diff --git a/amenity-points.mss b/amenity-points.mss
index d539acb..ed25b6a 100644
--- a/amenity-points.mss
+++ b/amenity-points.mss
@@ -21,7 +21,6 @@
 @standard-wrap-width: 30;
 @standard-text-size: 10;
 @standard-font: @book-fonts;
- at standard-halo-radius: 1;
 
 /* Note that .points is also used in water-features.mss */
 .points {
@@ -930,9 +929,9 @@
   }
 
   [feature = 'leisure_dog_park'][zoom >= 17] {
-    marker-file: url('symbols/dog_park.16.svg');
+    marker-file: url('symbols/shop_pet.16.svg');
     marker-placement: interior;
-    marker-fill: darken(@park, 60%);
+    marker-fill: @amenity-brown;
     marker-clip: false;
   }
 
@@ -1083,7 +1082,8 @@
     }
   }
 
-  [feature = 'railway_level_crossing'][zoom >= 14]::railway {
+  [feature = 'railway_level_crossing'][zoom >= 14]::railway,
+  [feature = 'railway_crossing'][zoom >= 15]::railway{
     point-file: url('symbols/level_crossing.svg');
     point-placement: interior;
     [zoom >= 16] {
@@ -1154,7 +1154,7 @@
     [way_pixels > 48000] { text-size: 15; }
     text-face-name: @oblique-fonts;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1175,7 +1175,7 @@
       text-dy: 11;
       text-face-name: @standard-font;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: @standard-wrap-width;
       text-placement: interior;
       [feature = 'amenity_bar']{
@@ -1201,7 +1201,7 @@
       text-face-name: @standard-font;
       [feature = 'tourism_museum'] { text-face-name: @standard-font; }
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: @standard-wrap-width;
       text-placement: interior;
       [feature = 'amenity_library'],
@@ -1224,7 +1224,7 @@
     [feature = 'leisure_slipway']        { text-dy: 13; }
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1238,7 +1238,7 @@
     text-dy: 9;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
     [access != ''][access != 'public'][access != 'yes'] {
@@ -1269,7 +1269,7 @@
     [feature = 'amenity_post_office'] { text-dy: 11; }
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1281,7 +1281,7 @@
     text-dy: 12;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1298,7 +1298,7 @@
     [feature = 'tourism_viewpoint'] { text-dy: 11; }
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1322,7 +1322,7 @@
     [feature = 'man_made_mast'] { text-dy: 10; }
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1338,7 +1338,7 @@
     text-dy: 11;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1350,7 +1350,7 @@
     text-fill: darken(@park, 60%);
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-placement: interior;
     text-dy: 13;
     text-wrap-width: 40;
@@ -1367,7 +1367,7 @@
       text-dy: 11;
       text-face-name: @standard-font;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: @standard-wrap-width;
       text-placement: interior;
     }
@@ -1390,12 +1390,13 @@
       text-fill: @marina-text;
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
     }
   }
 
-  [feature = 'leisure_playground'] {
+  [feature = 'leisure_playground'],
+  [feature = 'leisure_dog_park'] {
     [way_area >= 150000][zoom >= 14],
     [way_area >= 80000][zoom >= 15],
     [way_area >= 20000][zoom >= 16],
@@ -1406,7 +1407,7 @@
       text-fill: darken(@park, 60%);
       text-face-name: @standard-font;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: @standard-wrap-width;
       text-placement: interior;
       [access != ''][access != 'yes'] {
@@ -1435,7 +1436,7 @@
       }
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
       [feature = 'landuse_military'] {
         text-fill: darken(@military, 40%);
@@ -1468,7 +1469,7 @@
       text-fill: darken(@danger_area, 40%);
       text-face-name: @bold-fonts;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
     }
   }
@@ -1490,7 +1491,7 @@
       text-fill: darken(@garages, 50%);
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
     }
   }
@@ -1561,7 +1562,7 @@
       }
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
       [feature = 'natural_reef'],
       [feature = 'natural_wetland'],
@@ -1587,7 +1588,7 @@
       [feature = 'landuse_cemetery'],
       [feature = 'amenity_grave_yard'] {
         text-fill: darken(@cemetery, 50%);
-        text-halo-radius: 1.5; /* extra halo needed to overpower the cemetery polygon pattern */
+        text-halo-radius: @standard-halo-radius * 1.5; /* extra halo needed to overpower the cemetery polygon pattern */
       }
       [feature = 'landuse_residential'] {
         text-fill: darken(@residential, 50%);
@@ -1659,8 +1660,8 @@
       }
       [feature = 'leisure_dog_park'] {
         text-fill: darken(@park, 60%);
-        text-halo-radius: 1.5; /* Extra halo needed to stand out from paw pattern. */
-        text-halo-fill: rgba(255,255,255,0.6);
+        text-halo-radius: @standard-halo-radius * 1.5; /* Extra halo needed to stand out from paw pattern. */
+        text-halo-fill: @standard-halo-fill;
       }
       [feature = 'leisure_track'] {
         text-fill: darken(@track, 40%);
@@ -1678,7 +1679,7 @@
     text-fill: @water-text;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
     [feature = 'natural_spring'] {
@@ -1697,13 +1698,13 @@
     [feature = 'amenity_atm']  { text-dy: 10; }
     text-fill: @amenity-brown;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
     text-face-name: @standard-font;
   }
 
-  [feature = 'tourism_alpine_hut'][zoom >= 15],
+  [feature = 'tourism_alpine_hut'][zoom >= 14],
   [feature = 'amenity_shelter'][zoom >= 17],
   [feature = 'tourism_hotel'][zoom >= 17],
   [feature = 'tourism_motel'][zoom >= 17],
@@ -1717,7 +1718,7 @@
     text-dy: 11;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
     [feature = 'tourism_motel'] {
@@ -1735,7 +1736,7 @@
     text-dy: 10;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1747,7 +1748,7 @@
     text-dy: 11;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1763,7 +1764,7 @@
       text-dy: 11;
       text-face-name: @standard-font;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: @standard-wrap-width;
       text-placement: interior;
       [feature = 'highway_bus_stop'] {
@@ -1789,7 +1790,7 @@
       text-fill: @marina-text;
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
     }
   }
@@ -1801,7 +1802,7 @@
     text-dy: 4;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
     [zoom >= 18] {
@@ -1817,7 +1818,7 @@
     text-dy: 12;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1830,7 +1831,7 @@
     text-dy: 16;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1844,7 +1845,7 @@
     [feature = 'amenity_recycling'] { text-dy: 10; }
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1856,7 +1857,7 @@
     text-dy: 10;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -1874,7 +1875,7 @@
       text-fill: @health-color;
       text-face-name: @standard-font;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: @standard-wrap-width;
       text-placement: interior;
     }
@@ -1974,7 +1975,7 @@
     text-fill: #aa66cc;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
   }
@@ -2000,7 +2001,7 @@
       text-fill: darken(@power, 40%);
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
     }
   }
@@ -2024,7 +2025,7 @@
       }
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
       [feature = 'natural_scree'],
       [feature = 'natural_shingle'],
@@ -2054,7 +2055,7 @@
       text-fill: darken(@apron, 60%);
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
     }
   }
@@ -2077,7 +2078,7 @@
       text-fill: darken(@rest_area, 40%);
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
     }
   }
@@ -2100,7 +2101,7 @@
       text-fill: mix(darken(@glacier, 40%), darken(@glacier-line, 30%), 50%);
       text-face-name: @landcover-face-name;
       text-halo-radius: @standard-halo-radius;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-placement: interior;
     }
   }
@@ -2112,7 +2113,7 @@
     text-dy: -10;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-placement: interior;
     text-wrap-width: @standard-wrap-width;
   }
@@ -2124,7 +2125,7 @@
     text-dy: -10;
     text-face-name: @oblique-fonts;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-placement: interior;
     text-wrap-width: @standard-wrap-width;
   }
@@ -2136,7 +2137,7 @@
     text-fill: @man-made-icon;
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-placement: interior;
     text-wrap-width: @standard-wrap-width;
   }
@@ -2151,7 +2152,7 @@
     [zoom >= 20] { text-dy: 18; }
     text-face-name: @standard-font;
     text-halo-radius: @standard-halo-radius;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-fill: @standard-halo-fill;
     text-placement: interior;
     text-wrap-width: @standard-wrap-width;
   }
diff --git a/ferry-routes.mss b/ferry-routes.mss
index 68def29..e78bd27 100644
--- a/ferry-routes.mss
+++ b/ferry-routes.mss
@@ -25,8 +25,8 @@
     text-fill: @ferry-route-text;
     text-spacing: 1000;
     text-size: 10;
-    text-halo-radius: 1;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-radius: @standard-halo-radius;
+    text-halo-fill: @standard-halo-fill;
     text-dy: -8;
   }
 }
diff --git a/indexes.sql b/indexes.sql
index e392840..2052baa 100644
--- a/indexes.sql
+++ b/indexes.sql
@@ -20,6 +20,11 @@ CREATE INDEX planet_osm_line_river
 CREATE INDEX planet_osm_line_name
   ON planet_osm_line USING GIST (way)
   WHERE name IS NOT NULL;
+CREATE INDEX planet_osm_polygon_water
+  ON planet_osm_polygon USING GIST (way)
+  WHERE waterway IN ('dock', 'riverbank', 'canal')
+    OR landuse IN ('reservoir', 'basin')
+    OR "natural" IN ('water', 'glacier');
 CREATE INDEX planet_osm_polygon_military
   ON planet_osm_polygon USING GIST (way)
   WHERE landuse = 'military';
diff --git a/indexes.yml b/indexes.yml
index fe48822..a6ef32e 100644
--- a/indexes.yml
+++ b/indexes.yml
@@ -21,6 +21,12 @@ polygon:
     where: building IS NULL
   military:
     where: landuse = 'military'
+  water:
+    # The indentation here makes sense in the SQL output
+    where: |-
+      waterway IN ('dock', 'riverbank', 'canal')
+          OR landuse IN ('reservoir', 'basin')
+          OR "natural" IN ('water', 'glacier')
   way_area_z6:
     where: way_area > 59750
 roads:
diff --git a/landcover.mss b/landcover.mss
index dcc13c3..4083763 100644
--- a/landcover.mss
+++ b/landcover.mss
@@ -22,18 +22,18 @@
 @farmland: #fbecd7;         // Lch(94,12,80) (Also used for farm)
 @farmland-line: #d6c4ab;    // Lch(80,15,80)
 
- at farmyard: #EFD6B5;         // Lch(87,20,80)
+ at farmyard: #f5dcba;         // Lch(89,20,80)
 @farmyard-line: #D1B48C;    // Lch(75,25,80)
 
 // --- Other ----
 
 @aerodrome: #e9e7e2;
- at allotments: #e5c7ab;
+ at allotments: #eecfb3;       // Lch(85,19,70)
 @apron: #e9d1ff;
 @bare_ground: #eee5dc;
 @campsite: #def6c0; // also caravan_site, picnic_site
 @cemetery: #aacbaf; // also grave_yard
- at construction: #b6b592;
+ at construction: #c7c7b4;
 @danger_area: pink;
 @garages: #dfddce;
 @heath: #d6d99f;
@@ -221,7 +221,7 @@
 
   [feature = 'leisure_dog_park'] {
     [zoom >= 10] {
-      polygon-fill: darken(@park, 5%);
+      polygon-fill: @playground;
       [way_pixels >= 4]  { polygon-gamma: 0.75; }
       [way_pixels >= 64] { polygon-gamma: 0.3;  }
     }
@@ -241,7 +241,7 @@
   }
 
   [feature = 'landuse_allotments'] {
-    [zoom >= 10][zoom < 14] {
+    [zoom >= 10] {
       polygon-fill: @allotments;
       [way_pixels >= 4]  { polygon-gamma: 0.75; }
       [way_pixels >= 64] { polygon-gamma: 0.3;  }
@@ -707,8 +707,8 @@
   [feature = 'natural_cliff'][zoom >= 15],
   [feature = 'man_made_embankment'][zoom >= 15] {
     text-name: "[name]";
-    text-halo-radius: 1;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-radius: @standard-halo-radius;
+    text-halo-fill: @standard-halo-fill;
     text-fill: #999;
     text-size: 10;
     text-face-name: @book-fonts;
diff --git a/placenames.mss b/placenames.mss
index 50052ff..e5e33db 100644
--- a/placenames.mss
+++ b/placenames.mss
@@ -21,8 +21,8 @@
     }
     text-fill: @country-labels;
     text-face-name: @book-fonts;
-    text-halo-fill: rgba(255,255,255,0.6);
-    text-halo-radius: 1.5;
+    text-halo-fill: @standard-halo-fill;
+    text-halo-radius: @standard-halo-radius * 1.5;
     text-wrap-width: 35;
     text-placement: interior;
     text-character-spacing: 0.5;
@@ -38,8 +38,8 @@
       text-size: 9;
       text-fill: @state-labels;
       text-face-name: @oblique-fonts;
-      text-halo-fill: rgba(255,255,255,0.6);
-      text-halo-radius: 1.5;
+      text-halo-fill: @standard-halo-fill;
+      text-halo-radius: @standard-halo-radius * 1.5;
       text-wrap-width: 0;
       text-placement: interior;
       [zoom >= 5] {
@@ -62,8 +62,8 @@
       text-size: 11;
       text-fill: @placenames;
       text-face-name: @book-fonts;
-      text-halo-radius: 1.5;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 30;
       [zoom >= 5] {
         text-size: 11;
@@ -97,8 +97,8 @@
       text-size: 10;
       text-fill: @placenames;
       text-face-name: @book-fonts;
-      text-halo-radius: 1.5;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 30;
       [zoom >= 9] {
         text-size: 12;
@@ -123,8 +123,8 @@
       text-size: 10;
       text-fill: @placenames;
       text-face-name: @book-fonts;
-      text-halo-radius: 1.5;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 45;
       [zoom >= 11] {
         text-size: 11;
@@ -148,8 +148,8 @@
     text-size: 11;
     text-fill: @placenames;
     text-face-name: @book-fonts;
-    text-halo-radius: 1.5;
-    text-halo-fill: rgba(255,255,255,0.6);
+    text-halo-radius: @standard-halo-radius * 1.5;
+    text-halo-fill: @standard-halo-fill;
     text-wrap-width: 55;
     [zoom >= 14] {
       text-size: 14;
@@ -171,8 +171,8 @@
       text-size: 10;
       text-fill: @placenames;
       text-face-name: @book-fonts;
-      text-halo-radius: 1.5;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 50;
       [zoom >= 14] {
         text-fill: @placenames-light;
@@ -199,8 +199,8 @@
       text-size: 10;
       text-fill: @placenames;
       text-face-name: @book-fonts;
-      text-halo-radius: 1.5;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 45;
     }
     [zoom >= 16] {
diff --git a/project.mml b/project.mml
index fe00f2b..d9492e6 100644
--- a/project.mml
+++ b/project.mml
@@ -113,7 +113,8 @@
         85.05112877980659
       ],
       "properties": {
-        "maxzoom": 9
+        "maxzoom": 9,
+        "minzoom": 7
       },
       "advanced": {}
     },
@@ -204,7 +205,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT way, waterway, intermittent\n  FROM planet_osm_line\n  WHERE waterway = 'river'\n) AS water_lines_low_zoom",
+        "table": "(SELECT\n    way,\n    waterway,\n    intermittent\n  FROM planet_osm_line\n  WHERE waterway = 'river'\n) AS water_lines_low_zoom",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -353,7 +354,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT way, waterway, name\n  FROM planet_osm_line\n  WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_line",
+        "table": "(SELECT\n    way,\n    waterway,\n    name\n  FROM planet_osm_line\n  WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_line",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -379,7 +380,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT way, waterway, name\n  FROM planet_osm_polygon\n  WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_poly",
+        "table": "(SELECT\n    way,\n    waterway,\n    name\n  FROM planet_osm_polygon\n  WHERE waterway IN ('dam', 'weir', 'lock_gate')\n) AS water_barriers_poly",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -582,12 +583,12 @@
       "name": "tunnels",
       "srs-name": "900913",
       "geometry": "linestring",
-      "class": "tunnels-fill tunnels-casing access directions",
+      "class": "tunnels-fill tunnels-casing access",
       "id": "tunnels",
       "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, int_surface, access, construction,\n        service, oneway, link, layernotnull\n  FROM ( -- subselect that contains both roads and rail/aero\n    SELECT\n        way,\n        ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n        horse,\n   [...]
+        "table": "(SELECT\n    way,\n    (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n    horse,\n    foot,\n    bicycle,\n    tracktype,\n    int_surface,\n    access,\n    construction,\n    service,\n    link,\n    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 acc [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -821,7 +822,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, int_surface, access, construction,\n        service, oneway, link, layernotnull\n  FROM ( -- subselect that contains both roads and rail/aero\n    SELECT\n        way,\n        ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n        horse,\n   [...]
+        "table": "(SELECT\n    way,\n    (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n    horse,\n    foot,\n    bicycle,\n    tracktype,\n    int_surface,\n    access,\n    construction,\n    service,\n    link,\n    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 acc [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -868,12 +869,12 @@
       "name": "roads-fill",
       "srs-name": "900913",
       "geometry": "linestring",
-      "class": "roads-fill access directions",
+      "class": "roads-fill access",
       "id": "roads-fill",
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n    horse,\n    foot,\n    bicycle,\n    tracktype,\n    int_surface,\n    access,\n    construction,\n    service,\n    oneway,\n    link,\n    layernotnull\n  FROM ( -- begin \"features\" subselect that contains both roads and rail/aero\n    SELECT\n        way,\n        ('highway_' || highway) AS feature, -- only m [...]
+        "table": "(SELECT\n    way,\n    (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n    horse,\n    foot,\n    bicycle,\n    tracktype,\n    int_surface,\n    access,\n    construction,\n    service,\n    link,\n    layernotnull\n  FROM ( -- begin \"features\" subselect that contains both roads and rail/aero\n    SELECT\n        way,\n        ('highway_' || highway) AS feature, -- only motorway to te [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -999,12 +1000,12 @@
       "name": "bridges",
       "srs-name": "900913",
       "geometry": "linestring",
-      "class": "bridges-fill bridges-casing access directions",
+      "class": "bridges-fill bridges-casing access",
       "id": "bridges",
       "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, int_surface, access, construction,\n        service, oneway, link, layernotnull\n  FROM ( -- subselect that contains both roads and rail/aero\n    SELECT\n        way,\n        ('highway_' || highway) AS feature, --only motorway to tertiary links are accepted later on\n        horse,\n   [...]
+        "table": "(SELECT\n    way,\n    (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,\n    horse,\n    foot,\n    bicycle,\n    tracktype,\n    int_surface,\n    access,\n    construction,\n    service,\n    link,\n    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 acc [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1070,7 +1071,8 @@
       ],
       "id": "admin-low-zoom",
       "properties": {
-        "maxzoom": 10
+        "maxzoom": 10,
+        "minzoom": 4
       },
       "advanced": {}
     },
@@ -1501,7 +1503,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, highway, height, width, refs FROM\n  (SELECT\n      way, highway,\n      array_length(refs,1) AS height,\n      (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,\n      array_to_string(refs, E'\\n') AS refs\n    FROM (\n      SELECT\n          way,\n          highway,\n          string_to_array(ref, ';') AS refs\n      FROM planet_osm_roads\n        WHERE highway IN ('motorway', 'trunk', 'primary', 'secondary')\n        AND ref IS NOT NUL [...]
+        "table": "(SELECT\n    way,\n    highway,\n    height,\n    width,\n    refs\n  FROM (\n    SELECT\n        way, highway,\n        array_length(refs,1) AS height,\n        (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,\n        array_to_string(refs, E'\\n') AS refs\n      FROM (\n        SELECT\n            way,\n            highway,\n            string_to_array(ref, ';') AS refs\n        FROM planet_osm_roads\n          WHERE highway IN ('motorway', 'trunk' [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1580,7 +1582,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, highway, height, width, refs FROM\n  (SELECT\n      way, highway,\n      array_length(refs,1) AS height,\n      (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,\n      array_to_string(refs, E'\\n') AS refs\n    FROM (\n      SELECT\n          way,\n          COALESCE(\n            CASE WHEN highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'unclassified', 'residential') THEN highway ELSE NULL END,\n            CASE WHE [...]
+        "table": "(SELECT\n    way,\n    highway,\n    height,\n    width,\n    refs\n  FROM (\n    SELECT\n        way, highway,\n        array_length(refs,1) AS height,\n        (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,\n        array_to_string(refs, E'\\n') AS refs\n      FROM (\n        SELECT\n            way,\n            COALESCE(\n              CASE WHEN highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'unclassified', 'residential')  [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1627,12 +1629,12 @@
       "name": "roads-text-name",
       "srs-name": "900913",
       "geometry": "linestring",
-      "class": "",
+      "class": "directions",
       "id": "roads-text-name",
       "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\n    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    CASE\n      WHEN oneway IN ('yes', '-1') THEN onewa [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1997,7 +1999,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    COALESCE(\n      'highway_' || CASE WHEN highway IN ('mini_roundabout') THEN highway ELSE NULL END,\n      'railway_' || CASE WHEN railway IN ('level_crossing') THEN railway ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'bench', 'waste_basket') THEN amenity ELSE NULL END,\n      'historic_' || CASE WHEN historic IN ('wayside_cross') THEN historic ELSE NULL END,\n      'man_made_' || C [...]
+        "table": "(SELECT\n    way,\n    COALESCE(\n      'highway_' || CASE WHEN highway IN ('mini_roundabout') THEN highway ELSE NULL END,\n      'railway_' || CASE WHEN railway IN ('level_crossing', 'crossing') THEN railway ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'bench', 'waste_basket') THEN amenity ELSE NULL END,\n      'historic_' || CASE WHEN historic IN ('wayside_cross') THEN historic ELSE NULL END,\n      'man [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
diff --git a/project.yaml b/project.yaml
index 07464d9..d8fe8ea 100644
--- a/project.yaml
+++ b/project.yaml
@@ -128,6 +128,7 @@ Layer:
           ) AS features
         ) AS landcover_low_zoom
     properties:
+      minzoom: 7
       maxzoom: 9
     advanced: {}
   - id: "landcover"
@@ -223,7 +224,10 @@ Layer:
     Datasource:
       <<: *osm2pgsql
       table: |-
-        (SELECT way, waterway, intermittent
+        (SELECT
+            way,
+            waterway,
+            intermittent
           FROM planet_osm_line
           WHERE waterway = 'river'
         ) AS water_lines_low_zoom
@@ -338,7 +342,10 @@ Layer:
     Datasource:
       <<: *osm2pgsql
       table: |-
-        (SELECT way, waterway, name
+        (SELECT
+            way,
+            waterway,
+            name
           FROM planet_osm_line
           WHERE waterway IN ('dam', 'weir', 'lock_gate')
         ) AS water_barriers_line
@@ -353,7 +360,10 @@ Layer:
     Datasource:
       <<: *osm2pgsql
       table: |-
-        (SELECT way, waterway, name
+        (SELECT
+            way,
+            waterway,
+            name
           FROM planet_osm_polygon
           WHERE waterway IN ('dam', 'weir', 'lock_gate')
         ) AS water_barriers_poly
@@ -488,7 +498,7 @@ Layer:
     advanced: {}
   - id: "tunnels"
     name: "tunnels"
-    class: "tunnels-fill tunnels-casing access directions"
+    class: "tunnels-fill tunnels-casing access"
     geometry: "linestring"
     <<: *extents
     Datasource:
@@ -498,9 +508,19 @@ Layer:
       # ALL is present, and to use an ordering different than current osm2pgsql
       # an order is generated in SQL.
       table: |-
-        (SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,
-                horse, foot, bicycle, tracktype, int_surface, access, construction,
-                service, oneway, link, layernotnull
+        (SELECT
+            way,
+            (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,
+            horse,
+            foot,
+            bicycle,
+            tracktype,
+            int_surface,
+            access,
+            construction,
+            service,
+            link,
+            layernotnull
           FROM ( -- subselect that contains both roads and rail/aero
             SELECT
                 way,
@@ -525,11 +545,6 @@ Layer:
                   ELSE 'INT-normal'::text
                 END AS service,
                 CASE
-                  WHEN oneway IN ('yes', '-1') THEN oneway
-                  WHEN junction IN ('roundabout') AND (oneway IS NULL OR NOT oneway IN ('no', 'reversible')) THEN 'yes'
-                  ELSE NULL
-                END AS oneway,
-                CASE
                   WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes'
                   ELSE 'no'
                 END AS link,
@@ -558,7 +573,6 @@ Layer:
                 END AS access,
                 construction,
                 CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,
-                NULL AS oneway,
                 'no' AS link,
                 CASE WHEN layer~E'^-?\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull
               FROM planet_osm_line
@@ -783,9 +797,19 @@ Layer:
     Datasource:
       <<: *osm2pgsql
       table: |-
-        (SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,
-                horse, foot, bicycle, tracktype, int_surface, access, construction,
-                service, oneway, link, layernotnull
+        (SELECT
+            way,
+            (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,
+            horse,
+            foot,
+            bicycle,
+            tracktype,
+            int_surface,
+            access,
+            construction,
+            service,
+            link,
+            layernotnull
           FROM ( -- subselect that contains both roads and rail/aero
             SELECT
                 way,
@@ -810,11 +834,6 @@ Layer:
                   ELSE 'INT-normal'::text
                 END AS service,
                 CASE
-                  WHEN oneway IN ('yes', '-1') THEN oneway
-                  WHEN junction IN ('roundabout') AND (oneway IS NULL OR NOT oneway IN ('no', 'reversible')) THEN 'yes'
-                  ELSE NULL
-                END AS oneway,
-                CASE
                   WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes'
                   ELSE 'no'
                 END AS link,
@@ -845,7 +864,6 @@ Layer:
                 END AS access,
                 construction,
                 CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,
-                NULL AS oneway,
                 'no' AS link,
                 CASE WHEN layer~E'^-?\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull
               FROM planet_osm_line
@@ -936,7 +954,7 @@ Layer:
     advanced: {}
   - id: "roads-fill"
     name: "roads-fill"
-    class: "roads-fill access directions"
+    class: "roads-fill access"
     geometry: "linestring"
     <<: *extents
     Datasource:
@@ -958,7 +976,6 @@ Layer:
             access,
             construction,
             service,
-            oneway,
             link,
             layernotnull
           FROM ( -- begin "features" subselect that contains both roads and rail/aero
@@ -985,11 +1002,6 @@ Layer:
                   ELSE 'INT-normal'::text
                 END AS service,
                 CASE
-                  WHEN oneway IN ('yes', '-1') THEN oneway
-                  WHEN junction IN ('roundabout') AND (oneway IS NULL OR NOT oneway IN ('no', 'reversible')) THEN 'yes'
-                  ELSE NULL
-                END AS oneway,
-                CASE
                   WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes'
                   ELSE 'no'
                 END AS link,
@@ -1020,7 +1032,6 @@ Layer:
                 END AS access,
                 construction,
                 CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,
-                NULL AS oneway,
                 'no' AS link,
                 CASE WHEN layer~E'^-?\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull
               FROM planet_osm_line
@@ -1190,15 +1201,25 @@ Layer:
     advanced: {}
   - id: "bridges"
     name: "bridges"
-    class: "bridges-fill bridges-casing access directions"
+    class: "bridges-fill bridges-casing access"
     geometry: "linestring"
     <<: *extents
     Datasource:
       <<: *osm2pgsql
       table: |-
-        (SELECT way, (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,
-                horse, foot, bicycle, tracktype, int_surface, access, construction,
-                service, oneway, link, layernotnull
+        (SELECT
+            way,
+            (CASE WHEN substr(feature, length(feature)-3, 4) = 'link' THEN substr(feature, 0, length(feature)-4) ELSE feature END) AS feature,
+            horse,
+            foot,
+            bicycle,
+            tracktype,
+            int_surface,
+            access,
+            construction,
+            service,
+            link,
+            layernotnull
           FROM ( -- subselect that contains both roads and rail/aero
             SELECT
                 way,
@@ -1223,11 +1244,6 @@ Layer:
                   ELSE 'INT-normal'::text
                 END AS service,
                 CASE
-                  WHEN oneway IN ('yes', '-1') THEN oneway
-                  WHEN junction IN ('roundabout') AND (oneway IS NULL OR NOT oneway IN ('no', 'reversible')) THEN 'yes'
-                  ELSE NULL
-                END AS oneway,
-                CASE
                   WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes'
                   ELSE 'no'
                 END AS link,
@@ -1256,7 +1272,6 @@ Layer:
                 END AS access,
                 construction,
                 CASE WHEN service IN ('parking_aisle', 'drive-through', 'driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text END AS service,
-                NULL AS oneway,
                 'no' AS link,
                 CASE WHEN layer~E'^-?\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END AS layernotnull
               FROM planet_osm_line
@@ -1353,6 +1368,7 @@ Layer:
           ORDER BY admin_level DESC
         ) AS admin_low_zoom
     properties:
+      minzoom: 4
       maxzoom: 10
     advanced: {}
   - id: "admin-mid-zoom"
@@ -1849,20 +1865,26 @@ Layer:
     Datasource:
       <<: *osm2pgsql
       table: |-
-        (SELECT way, highway, height, width, refs FROM
-          (SELECT
-              way, highway,
-              array_length(refs,1) AS height,
-              (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,
-              array_to_string(refs, E'\n') AS refs
-            FROM (
-              SELECT
-                  way,
-                  highway,
-                  string_to_array(ref, ';') AS refs
-              FROM planet_osm_roads
-                WHERE highway IN ('motorway', 'trunk', 'primary', 'secondary')
-                AND ref IS NOT NULL
+        (SELECT
+            way,
+            highway,
+            height,
+            width,
+            refs
+          FROM (
+            SELECT
+                way, highway,
+                array_length(refs,1) AS height,
+                (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,
+                array_to_string(refs, E'\n') AS refs
+              FROM (
+                SELECT
+                    way,
+                    highway,
+                    string_to_array(ref, ';') AS refs
+                FROM planet_osm_roads
+                  WHERE highway IN ('motorway', 'trunk', 'primary', 'secondary')
+                  AND ref IS NOT NULL
               ) AS p) AS q
           WHERE height <= 4 AND width <= 11) AS roads_text_ref_low_zoom
     properties:
@@ -1916,23 +1938,29 @@ Layer:
     Datasource:
       <<: *osm2pgsql
       table: |-
-        (SELECT way, highway, height, width, refs FROM
-          (SELECT
-              way, highway,
-              array_length(refs,1) AS height,
-              (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,
-              array_to_string(refs, E'\n') AS refs
-            FROM (
-              SELECT
-                  way,
-                  COALESCE(
-                    CASE WHEN highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'unclassified', 'residential') THEN highway ELSE NULL END,
-                    CASE WHEN aeroway IN ('runway', 'taxiway') THEN aeroway ELSE NULL END
-                  ) AS highway,
-                  string_to_array(ref, ';') AS refs
-                FROM planet_osm_line
-                  WHERE (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'unclassified', 'residential') OR aeroway IN ('runway', 'taxiway'))
-                    AND ref IS NOT NULL
+        (SELECT
+            way,
+            highway,
+            height,
+            width,
+            refs
+          FROM (
+            SELECT
+                way, highway,
+                array_length(refs,1) AS height,
+                (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,
+                array_to_string(refs, E'\n') AS refs
+              FROM (
+                SELECT
+                    way,
+                    COALESCE(
+                      CASE WHEN highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'unclassified', 'residential') THEN highway ELSE NULL END,
+                      CASE WHEN aeroway IN ('runway', 'taxiway') THEN aeroway ELSE NULL END
+                    ) AS highway,
+                    string_to_array(ref, ';') AS refs
+                  FROM planet_osm_line
+                    WHERE (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'unclassified', 'residential') OR aeroway IN ('runway', 'taxiway'))
+                      AND ref IS NOT NULL
               ) AS p) AS q
           WHERE height <= 4 AND width <= 11) AS roads_text_ref
     properties:
@@ -1961,17 +1989,24 @@ Layer:
     advanced: {}
   - id: "roads-text-name"
     name: "roads-text-name"
-    class: ""
+    class: "directions"
     geometry: "linestring"
     <<: *extents
     Datasource:
       <<: *osm2pgsql
       table: |-
-        (SELECT way,
+        (SELECT
+            way,
             CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE highway END,
             CASE WHEN (tunnel = 'yes' OR tunnel = 'building_passage' OR covered = 'yes') THEN 'yes' ELSE 'no' END AS tunnel,
             CASE WHEN construction IN ('service', 'footway', 'cycleway', 'bridleway', 'path', 'track') THEN 'yes' ELSE 'no' END AS int_construction_minor,
-            name
+            name,
+            CASE
+              WHEN oneway IN ('yes', '-1') THEN oneway
+              WHEN junction IN ('roundabout') AND (oneway IS NULL OR NOT oneway IN ('no', 'reversible')) THEN 'yes'
+              ELSE NULL
+            END AS oneway,
+            horse, bicycle
           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')
@@ -2472,7 +2507,7 @@ Layer:
             way,
             COALESCE(
               'highway_' || CASE WHEN highway IN ('mini_roundabout') THEN highway ELSE NULL END,
-              'railway_' || CASE WHEN railway IN ('level_crossing') THEN railway ELSE NULL END,
+              'railway_' || CASE WHEN railway IN ('level_crossing', 'crossing') THEN railway ELSE NULL END,
               'amenity_' || CASE WHEN amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'bench', 'waste_basket') THEN amenity ELSE NULL END,
               'historic_' || CASE WHEN historic IN ('wayside_cross') THEN historic ELSE NULL END,
               'man_made_' || CASE WHEN man_made IN ('cross') THEN man_made ELSE NULL END,
@@ -2482,7 +2517,7 @@ Layer:
             CASE WHEN amenity='waste_basket' THEN 2 ELSE 1 END AS prio
           FROM planet_osm_point p
           WHERE highway IN ('mini_roundabout')
-             OR railway IN ('level_crossing')
+             OR railway IN ('level_crossing', 'crossing')
              OR amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'bench', 'waste_basket')
              OR historic IN ('wayside_cross')
              OR man_made IN ('cross')
diff --git a/roads.mss b/roads.mss
index 69debbc..28b8db2 100644
--- a/roads.mss
+++ b/roads.mss
@@ -2378,14 +2378,14 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       ref/text-fill: @junction-text-color;
       ref/text-min-distance: 2;
       ref/text-face-name: @oblique-fonts;
-      ref/text-halo-radius: 1.5;
+      ref/text-halo-radius: @standard-halo-radius * 1.5;
       [zoom >= 12] {
         name/text-name: "[name]";
         name/text-size: 9;
         name/text-fill: @junction-text-color;
         name/text-dy: -9;
         name/text-face-name: @oblique-fonts;
-        name/text-halo-radius: 1;
+        name/text-halo-radius: @standard-halo-radius;
         name/text-wrap-character: ";";
         name/text-wrap-width: 2;
         name/text-min-distance: 2;
@@ -2405,8 +2405,8 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-size: 10;
       text-fill: black;
       text-face-name: @book-fonts;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 30;
       text-min-distance: 2;
       [zoom >= 17] {
@@ -2428,8 +2428,8 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-size: 8;
       text-fill: black;
       text-face-name: @book-fonts;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-min-distance: 2;
       text-wrap-width: 30;
       [way_pixels > 250] {
@@ -2437,7 +2437,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       }
       [way_pixels > 1000] {
         text-size: 11;
-        text-halo-radius: 1.5;
+        text-halo-radius: @standard-halo-radius * 1.5;
       }
       [way_pixels > 4000] {
         text-size: 12;
@@ -2701,7 +2701,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-face-name: @book-fonts;
       text-min-distance: 40;
       text-halo-radius: 2;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-fill: @standard-halo-fill;
       text-spacing: 760;
       text-clip: false;
     }
@@ -2718,8 +2718,8 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-placement: line;
       text-min-distance: 18;
       text-face-name: @book-fonts;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
     }
   }
 }
@@ -2737,7 +2737,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-placement: line;
       text-face-name: @book-fonts;
       [tunnel = 'no'] {
-        text-halo-radius: 1;
+        text-halo-radius: @standard-halo-radius;
         [highway = 'motorway'] { text-halo-fill: @motorway-fill; }
         [highway = 'trunk'] { text-halo-fill: @trunk-fill; }
         [highway = 'primary'] { text-halo-fill: @primary-fill; }
@@ -2765,7 +2765,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-clip: false;
       text-placement: line;
       text-face-name: @book-fonts;
-      text-halo-radius: 1;
+      text-halo-radius: @standard-halo-radius;
       text-halo-fill: @secondary-fill;
     }
     [zoom >= 14] {
@@ -2791,7 +2791,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-clip: false;
       text-placement: line;
       text-face-name: @book-fonts;
-      text-halo-radius: 1;
+      text-halo-radius: @standard-halo-radius;
       text-halo-fill: @tertiary-fill;
     }
     [zoom >= 17] {
@@ -2810,8 +2810,8 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-spacing: 300;
       text-clip: false;
       text-placement: line;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-face-name: @book-fonts;
       [zoom >= 17] {
         text-size: 11;
@@ -2831,7 +2831,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-spacing: 300;
       text-clip: false;
       text-placement: line;
-      text-halo-radius: 1;
+      text-halo-radius: @standard-halo-radius;
       text-halo-fill: @residential-fill;
       text-face-name: @book-fonts;
     }
@@ -2857,7 +2857,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-spacing: 300;
       text-clip: false;
       text-placement: line;
-      text-halo-radius: 1;
+      text-halo-radius: @standard-halo-radius;
       [highway = 'raceway'] { text-halo-fill: @raceway-fill; }
       [highway = 'service'] { text-halo-fill: @service-fill; }
       text-face-name: @book-fonts;
@@ -2876,7 +2876,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-spacing: 300;
       text-clip: false;
       text-placement: line;
-      text-halo-radius: 1;
+      text-halo-radius: @standard-halo-radius;
       [highway = 'living_street'] { text-halo-fill: @living-street-fill; }
       [highway = 'pedestrian'] { text-halo-fill: @pedestrian-fill; }
       text-face-name: @book-fonts;
@@ -2918,8 +2918,8 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-name: "[name]";
       text-fill: #222;
       text-size: 8;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-spacing: 300;
       text-clip: false;
       text-placement: line;
@@ -2946,8 +2946,8 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-name: "[name]";
       text-fill: #222;
       text-size: 9;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-spacing: 300;
       text-clip: false;
       text-placement: line;
@@ -2965,29 +2965,29 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
 .directions::directions {
   [zoom >= 16] {
     // intentionally omitting highway_platform, highway_construction
-    [feature = 'highway_motorway'],
-    [feature = 'highway_motorway_link'],
-    [feature = 'highway_trunk'],
-    [feature = 'highway_trunk_link'],
-    [feature = 'highway_primary'],
-    [feature = 'highway_primary_link'],
-    [feature = 'highway_secondary'],
-    [feature = 'highway_secondary_link'],
-    [feature = 'highway_tertiary'],
-    [feature = 'highway_tertiary_link'],
-    [feature = 'highway_residential'],
-    [feature = 'highway_unclassified'],
-    [feature = 'highway_living_street'],
-    [feature = 'highway_road'],
-    [feature = 'highway_service'],
-    [feature = 'highway_pedestrian'],
-    [feature = 'highway_raceway'],
-    [feature = 'highway_cycleway'],
-    [feature = 'highway_footway'],
-    [feature = 'highway_path'],
-    [feature = 'highway_steps'],
-    [feature = 'highway_track'],
-    [feature = 'highway_bridleway'] {
+    [highway = 'motorway'],
+    [highway = 'motorway_link'],
+    [highway = 'trunk'],
+    [highway = 'trunk_link'],
+    [highway = 'primary'],
+    [highway = 'primary_link'],
+    [highway = 'secondary'],
+    [highway = 'secondary_link'],
+    [highway = 'tertiary'],
+    [highway = 'tertiary_link'],
+    [highway = 'residential'],
+    [highway = 'unclassified'],
+    [highway = 'living_street'],
+    [highway = 'road'],
+    [highway = 'service'],
+    [highway = 'pedestrian'],
+    [highway = 'raceway'],
+    [highway = 'cycleway'],
+    [highway = 'footway'],
+    [highway = 'path'],
+    [highway = 'steps'],
+    [highway = 'track'],
+    [highway = 'bridleway'] {
       [oneway = 'yes'],
       [oneway = '-1'] {
         marker-placement: line;
@@ -2999,43 +2999,43 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
           marker-file: url('symbols/oneway-reverse.svg');
         }
 
-        [feature = 'highway_motorway'],
-        [feature = 'highway_motorway_link'] {
+        [highway = 'motorway'],
+        [highway = 'motorway_link'] {
           marker-fill: @motorway-oneway-arrow-color;
         }
-        [feature = 'highway_trunk'],
-        [feature = 'highway_trunk_link'] {
+        [highway = 'trunk'],
+        [highway = 'trunk_link'] {
           marker-fill: @trunk-oneway-arrow-color;
         }
-        [feature = 'highway_primary'],
-        [feature = 'highway_primary_link'] {
+        [highway = 'primary'],
+        [highway = 'primary_link'] {
           marker-fill: @primary-oneway-arrow-color;
         }
-        [feature = 'highway_secondary'],
-        [feature = 'highway_secondary_link'] {
+        [highway = 'secondary'],
+        [highway = 'secondary_link'] {
           marker-fill: @secondary-oneway-arrow-color;
         }
-        [feature = 'highway_tertiary'],
-        [feature = 'highway_tertiary_link'] {
+        [highway = 'tertiary'],
+        [highway = 'tertiary_link'] {
           marker-fill: @tertiary-oneway-arrow-color;
         }
-        [feature = 'highway_residential'],
-        [feature = 'highway_unclassified'],
-        [feature = 'highway_road'],
-        [feature = 'highway_service'] {
+        [highway = 'residential'],
+        [highway = 'unclassified'],
+        [highway = 'road'],
+        [highway = 'service'] {
           marker-fill: @residential-oneway-arrow-color;
         }
-        [feature = 'highway_living_street'] {
+        [highway = 'living_street'] {
           marker-fill: @living-street-oneway-arrow-color;
         }
-        [feature = 'highway_pedestrian'] {
+        [highway = 'pedestrian'] {
           marker-fill: @pedestrian-oneway-arrow-color;
         }
-        [feature = 'highway_raceway'] {
+        [highway = 'raceway'] {
           marker-fill: @raceway-oneway-arrow-color;
         }
-        [feature = 'highway_footway'],
-        [feature = 'highway_path'] {
+        [highway = 'footway'],
+        [highway = 'path'] {
           marker-fill: @footway-oneway-arrow-color;
           [horse = 'designated'] {
             marker-fill: @bridleway-oneway-arrow-color;
@@ -3044,16 +3044,16 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
             marker-fill: @cycleway-oneway-arrow-color;
           }
         }
-        [feature = 'highway_steps'] {
+        [highway = 'steps'] {
           marker-fill: @steps-oneway-arrow-color;
         }
-        [feature = 'highway_cycleway'] {
+        [highway = 'cycleway'] {
           marker-fill: @cycleway-oneway-arrow-color;
         }
-        [feature = 'highway_track'] {
+        [highway = 'track'] {
           marker-fill: @track-oneway-arrow-color;
         }
-        [feature = 'highway_bridleway'] {
+        [highway = 'bridleway'] {
           marker-fill: @bridleway-oneway-arrow-color;
         }
       }
diff --git a/scripts/generate_road_colours.py b/scripts/generate_road_colours.py
index 6217b24..754a690 100755
--- a/scripts/generate_road_colours.py
+++ b/scripts/generate_road_colours.py
@@ -43,7 +43,7 @@ def generate_colours(settings, section):
     road_classes = settings['roads']
     colour_divisions = len(road_classes) - 1
     hues = OrderedDict()
-    
+
     min_h = settings['hue'][0]
     max_h = settings['hue'][1]
 
diff --git a/scripts/yaml2mml.py b/scripts/yaml2mml.py
index 4213a6d..a284bf2 100755
--- a/scripts/yaml2mml.py
+++ b/scripts/yaml2mml.py
@@ -1,30 +1,36 @@
 #!/usr/bin/env python
 
 from __future__ import print_function
-import argparse, json, os, sys, yaml
+import argparse
+import json
+import os
+import sys
+import yaml
 
 parser = argparse.ArgumentParser(description='Keeps project files in sync by converting project.yaml to project.mml.')
-parser.add_argument('--check', dest='check', help='write generated JSON to stdout instead to project.mml', required=False, action='store_true', default=False)
+parser.add_argument('--check', dest='check',
+                    help='write generated JSON to stdout instead to project.mml',
+                    required=False, action='store_true', default=False)
 args = parser.parse_args()
 
 yaml_path = os.path.join(os.path.dirname(__file__), '../project.yaml')
 mml_path = os.path.join(os.path.dirname(__file__), '../project.mml')
 
 try:
-  yaml_file = open(yaml_path)
-  yaml = yaml.safe_load(yaml_file)
-  yaml_file.close()
+    yaml_file = open(yaml_path)
+    yaml = yaml.safe_load(yaml_file)
+    yaml_file.close()
 
-  try:
-    if (args.check == False):
-      mml_file = open(mml_path, 'wb')
-      json.dump(yaml, mml_file, indent=2, separators=(',', ': '))
-      mml_file.close()
-    else:
-      json.dump(yaml, sys.stdout, indent=2, separators=(',', ': '))
-  except IOError:
-    print('Could not save MML file. Aborting.')
-    sys.exit(1)
+    try:
+        if not args.check:
+            mml_file = open(mml_path, 'wb')
+            json.dump(yaml, mml_file, indent=2, separators=(',', ': '))
+            mml_file.close()
+        else:
+            json.dump(yaml, sys.stdout, indent=2, separators=(',', ': '))
+    except IOError:
+        print('Could not save MML file. Aborting.')
+        sys.exit(1)
 except IOError:
-  print('Could not read YAML file. Aborting.')
-  sys.exit(1)
+    print('Could not read YAML file. Aborting.')
+    sys.exit(1)
diff --git a/stations.mss b/stations.mss
index b48dee5..a1cf20f 100644
--- a/stations.mss
+++ b/stations.mss
@@ -24,8 +24,8 @@
       text-size: 10;
       text-fill: @station-text;
       text-dy: 9;
-      text-halo-radius: 1.5;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 0;
       text-placement: interior;
     }
@@ -53,8 +53,8 @@
       text-size: 10;
       text-fill: @station-text;
       text-dy: 10;
-      text-halo-radius: 1.5;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 0;
       text-placement: interior;
     }
@@ -77,8 +77,8 @@
       text-size: 10;
       text-fill: @station-text;
       text-dy: 10;
-      text-halo-radius: 1.5;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 0;
       text-placement: interior;
     }
@@ -101,8 +101,8 @@
       text-size: 10;
       text-fill: @station-text;
       text-dy: 10;
-      text-halo-radius: 1.5;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: 0;
       text-placement: interior;
     }
diff --git a/style.mss b/style.mss
index a6aca14..67e77fc 100644
--- a/style.mss
+++ b/style.mss
@@ -2,14 +2,22 @@ Map {
   background-color: @water-color;
 }
 
+/* A regular style. */
 @book-fonts:    "DejaVu Sans Book", "Arundina Regular", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular",
                 "Mukti Narrow Regular", "Gargi Regular", "TSCu_Paranar Regular", "Tibetan Machine Uni Regular",
                 "Droid Sans Fallback Regular", "Unifont Medium", "unifont Medium";
+
+/* A bold style is available for almost all scripts. Bold text is heavier than regular text and can be used for emphasis.
+   Fallback is a regular style. */
 @bold-fonts:    "DejaVu Sans Bold", "Arundina Bold", "Arundina Sans Bold", "Padauk Bold", "TSCu_Paranar Bold",
                 "DejaVu Sans Book", "Arundina Regular", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular",
                 "Mukti Narrow Regular", "gargi Medium", "TSCu_Paranar Regular", "Tibetan Machine Uni Regular",
                 "Droid Sans Fallback Regular", "Unifont Medium", "unifont Medium";
 
+/* An oblique or italic style is available for various (mostly latin-like) scripts. Oblique and italic style are not heavier than
+   regular style. But they are distinguishable from regular style. Fallback is a regular style. Because many (mostly asian) scripts
+   do not have an oblique or italic style by nature, be aware that for a considerable number of labels this style will make no
+   difference to the regular style. */
 @oblique-fonts: "DejaVu Sans Oblique", "Arundina Italic", "Arundina Sans Italic", "TSCu_Paranar Italic",
                 "DejaVu Sans Book", "Arundina Regular", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular",
                 "Mukti Narrow Regular", "Gargi Regular", "TSCu_Paranar Regular", "Tibetan Machine Uni Regular",
@@ -17,3 +25,6 @@ Map {
 
 @water-color: #b5d0d0;
 @land-color: #f2efe9;
+
+ at standard-halo-radius: 1;
+ at standard-halo-fill: rgba(255,255,255,0.6);
diff --git a/symbols/allotments.png b/symbols/allotments.png
index 43b4e08..c4077a7 100644
Binary files a/symbols/allotments.png and b/symbols/allotments.png differ
diff --git a/symbols/dog_park.16.svg b/symbols/dog_park.16.svg
deleted file mode 100644
index 7373f86..0000000
--- a/symbols/dog_park.16.svg
+++ /dev/null
@@ -1,59 +0,0 @@
-<?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"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="100%"
-   height="100%"
-   viewBox="0 0 16 16"
-   id="svg2"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="fast_food.16.svg">
-  <metadata
-     id="metadata10">
-    <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="defs8" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1855"
-     inkscape:window-height="1056"
-     id="namedview6"
-     showgrid="false"
-     inkscape:zoom="14.75"
-     inkscape:cx="8"
-     inkscape:cy="8"
-     inkscape:window-x="65"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <path
-     id="path2193-6"
-     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;fill-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
-     d="m 12.687351,8.6978703 c 0.882828,-0.234079 1.711529,0.194669 1.851022,0.957622 0.13961,0.7629817 -0.463039,1.5713077 -1.345824,1.8054887 -0.882813,0.234181 -1.711601,-0.194436 -1.851255,-0.95736 -0.139609,-0.7629377 0.462807,-1.5713367 1.345577,-1.8056337 M 10.909827,4.123512 c 0.965591,-0.6676112 2.00599,-0.5184178 2.323878,0.333202 0.317874,0.8516052 -0.207131,2.0832254 -1.172649,2.7509529 C 11.095508,7.8753944 10.055052,7.72639 9.7370185,6.8748866 9.4189985,6.0233541 9.9438294 [...]
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="csssccsssccsssccssscssssss" />
-</svg>
diff --git a/symbols/dog_park.png b/symbols/dog_park.png
index e9a819d..14f1a53 100644
Binary files a/symbols/dog_park.png and b/symbols/dog_park.png differ
diff --git a/water-features.mss b/water-features.mss
index 7c8f305..43005c2 100644
--- a/water-features.mss
+++ b/water-features.mss
@@ -122,8 +122,8 @@
     #text-line[zoom >= 15],
     #text-point[zoom >= 17] {
       text-name: "[name]";
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-fill: #222;
       text-size: 10;
       text-face-name: @book-fonts;
@@ -148,8 +148,8 @@
     #text-poly,
     #text-line {
       text-name: "[name]";
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-fill: #222;
       text-size: 10;
       text-face-name: @book-fonts;
diff --git a/water.mss b/water.mss
index c37ed97..918ba1d 100644
--- a/water.mss
+++ b/water.mss
@@ -201,7 +201,7 @@
 }
 
 #water-lines-text {
-  [lock != 'yes'] {
+  [lock != 'yes'][int_tunnel != 'yes'] {
     [waterway = 'river'][zoom >= 13] {
       text-name: "[name]";
       text-face-name: @oblique-fonts;
@@ -209,8 +209,8 @@
       text-fill: @water-text;
       text-spacing: 400;
       text-size: 10;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       [zoom >= 14] { text-size: 12; }
       [int_tunnel = 'yes'] { text-min-distance: 200; }
     }
@@ -218,8 +218,8 @@
     [waterway = 'canal'][zoom >= 13][zoom < 14] {
       text-name: "[name]";
       text-face-name: @oblique-fonts;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-size: 10;
       text-placement: line;
       text-fill: @water-text;
@@ -230,8 +230,8 @@
       text-size: 10;
       text-face-name: @oblique-fonts;
       text-fill: @water-text;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-spacing: 600;
       text-placement: line;
       text-vertical-alignment: middle;
@@ -247,8 +247,8 @@
         text-fill: @water-text;
         text-spacing: 600;
         text-placement: line;
-        text-halo-radius: 1;
-        text-halo-fill: rgba(255,255,255,0.6);
+        text-halo-radius: @standard-halo-radius;
+        text-halo-fill: @standard-halo-fill;
       }
     }
 
@@ -258,8 +258,8 @@
       text-fill: @water-text;
       text-placement: line;
       text-face-name: @oblique-fonts;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
     }
 
     [waterway = 'derelict_canal'][zoom >= 13] {
@@ -269,8 +269,8 @@
       text-face-name: @oblique-fonts;
       text-placement: line;
       text-spacing: 600;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       [zoom >= 14] {
         text-size: 12;
       }
@@ -288,8 +288,8 @@
       text-size: 12;
       text-fill: @water-text;
       text-face-name: @oblique-fonts;
-      text-halo-radius: 1;
-      text-halo-fill: rgba(255,255,255,0.6);
+      text-halo-radius: @standard-halo-radius;
+      text-halo-fill: @standard-halo-fill;
       text-wrap-width: @standard-wrap-width;
       text-placement: interior;
     }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/openstreetmap-carto.git



More information about the Pkg-grass-devel mailing list