[openstreetmap-carto] 01/03: Imported Upstream version 3.1.0

Bas Couwenberg sebastic at debian.org
Sun Jan 29 09:29:14 UTC 2017


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

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

commit 08e6e8eed143630e60b4147dd95880fe69482f3e
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Sun Jan 29 10:28:07 2017 +0100

    Imported Upstream version 3.1.0
---
 CHANGELOG.md            |  14 +-
 LICENSE.txt             |   5 +-
 amenity-points.mss      |  20 +-
 landcover.mss           |   1 +
 placenames.mss          | 175 ++++++++---
 project.mml             | 814 ++++++++++++++++++++++--------------------------
 symbols/bus_stop.12.svg |  17 +-
 symbols/shop/coffee.svg |   9 +
 8 files changed, 555 insertions(+), 500 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b368a1c..bce6967 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,14 @@
-## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v3.0.0...master)
+## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v3.1.0...master)
 
-## [v3.0.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v3.0.0...v3.0.1) - 2016-12-22
+## [v3.1.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v3.0.1...v3.1.0) - 2017-01-28
+### Changes
+- Added coffee shop rendering
+- Added health clinic rendering
+- Adjusted place label typography
+- Road shield rendering improvements
+- Internal code cleanups
+
+## [v3.0.1](https://github.com/gravitystorm/openstreetmap-carto/compare/v3.0.0...v3.0.1) - 2016-12-22
 ### Changes
 - Revert of junction area changes which were preventing index usage
 
@@ -15,7 +23,7 @@
 - Noto Naskh is now used for Arabic
 - Visual impact of campsites and quarries reduced below z13
 - Wilderness huts rendered
-- Subway entrances rendered
+- "ref" (reference) text of subway entrances rendered
 
 ## [v2.45.1](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.45.0...v2.45.1) - 2016-12-03
 ### Changes
diff --git a/LICENSE.txt b/LICENSE.txt
index 86cca83..031f3ec 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -7,9 +7,10 @@ This software and associated documentation files (the "Software") is
 released under the CC0 Public Domain Dedication, version 1.0, as
 published by Creative Commons. To the extent possible under law, the
 author(s) have dedicated all copyright and related and neighboring
-rights to the Software to the public domain worldwide. The Software is
+rights to the Software to the public domain worldwide. For avoidance
+of doubt, this includes the cartographic design. The Software is
 distributed WITHOUT ANY WARRANTY.
 
 If you did not receive a copy of the CC0 Public Domain Dedication
 along with the Software, see
-<http://creativecommons.org/publicdomain/zero/1.0/>
\ No newline at end of file
+<http://creativecommons.org/publicdomain/zero/1.0/>
diff --git a/amenity-points.mss b/amenity-points.mss
index 4979964..be5b115 100644
--- a/amenity-points.mss
+++ b/amenity-points.mss
@@ -344,7 +344,7 @@
     marker-placement: interior;
     marker-clip: false;
     marker-fill: @transportation-icon;
-    [access != ''][access != 'public'][access != 'yes'] {
+    [access != ''][access != 'permissive'][access != 'yes'] {
       marker-opacity: 0.33;
     }
   }
@@ -460,7 +460,7 @@
     marker-fill: @amenity-brown;
     marker-placement: interior;
     marker-clip: false;
-    [access != ''][access != 'yes'] {
+    [access != ''][access != 'permissive'][access != 'yes'] {
       marker-opacity: 0.33;
     }
   }
@@ -638,6 +638,13 @@
     }
   }
 
+  [feature = 'shop_coffee'][zoom >= 17] {
+    marker-file: url('symbols/shop/coffee.svg');
+    marker-placement: interior;
+    marker-clip: false;
+    marker-fill: @shop-icon;
+  }
+
   [feature = 'shop_computer'][zoom >= 17] {
     marker-file: url('symbols/shop/computer.svg');
     marker-placement: interior;
@@ -974,7 +981,7 @@
     marker-fill: @amenity-brown;
     marker-placement: interior;
     marker-clip: false;
-    [access != ''][access != 'yes'] {
+    [access != ''][access != 'permissive'][access != 'yes'] {
       marker-opacity: 0.33;
     }
   }
@@ -1111,7 +1118,7 @@
     marker-placement: interior;
     marker-clip: false;
     marker-fill: @transportation-icon;
-    [access != ''][access != 'public'][access != 'yes'] {
+    [access != ''][access != 'permissive'][access != 'yes'] {
       marker-opacity: 0.33;
     }
   }
@@ -1275,7 +1282,7 @@
     text-halo-fill: @standard-halo-fill;
     text-wrap-width: @standard-wrap-width;
     text-placement: interior;
-    [access != ''][access != 'public'][access != 'yes'] {
+    [access != ''][access != 'permissive'][access != 'yes'] {
       text-fill: #66ccaf;
     }
     [feature = 'amenity_bicycle_parking'],
@@ -1444,7 +1451,7 @@
       text-halo-fill: @standard-halo-fill;
       text-wrap-width: @standard-wrap-width;
       text-placement: interior;
-      [access != ''][access != 'yes'] {
+      [access != ''][access != 'permissive'][access != 'yes'] {
         text-fill: darken(@park, 50%);
       }
     }
@@ -1923,6 +1930,7 @@
   [feature = 'shop_beverages'],
   [feature = 'shop_books'],
   [feature = 'shop_clothes'],
+  [feature = 'shop_coffee'],
   [feature = 'shop_computer'],
   [feature = 'shop_fashion'],
   [feature = 'shop_convenience'],
diff --git a/landcover.mss b/landcover.mss
index fcba4ed..0d11dcf 100644
--- a/landcover.mss
+++ b/landcover.mss
@@ -463,6 +463,7 @@
   }
 
   [feature = 'amenity_hospital'],
+  [feature = 'amenity_clinic'],
   [feature = 'amenity_university'],
   [feature = 'amenity_college'],
   [feature = 'amenity_school'],
diff --git a/placenames.mss b/placenames.mss
index d381759..4b84e4b 100644
--- a/placenames.mss
+++ b/placenames.mss
@@ -7,47 +7,58 @@
   [zoom >= 3][way_pixels > 1000][way_pixels < 360000] {
     text-name: "[name]";
     text-size: 10;
+    text-wrap-width: 35; // 3.5 em
+    text-line-spacing: -1.5; // -0.15 em
+    text-margin: 7.0; // 0.7 em
     [zoom >= 4] {
       text-size: 11;
+      text-wrap-width: 40; // 3.6 em
+      text-line-spacing: -1.4; // -0.13 em
+      text-margin: 7.7; // 0.7 em
     }
     [zoom >= 5] {
       text-size: 12;
+      text-wrap-width: 45; // 3.8 em
+      text-line-spacing: -1.2; // -0.10 em
+      text-margin: 8.4; // 0.7 em
     }
     [zoom >= 7] {
       text-size: 13;
+      text-wrap-width: 50; // 3.8 em
+      text-line-spacing: -1.0; // -0.08 em
+      text-margin: 9.1; // 0.7 em
     }
     [zoom >= 10] {
       text-size: 14;
+      text-wrap-width: 55; // 3.9 em
+      text-line-spacing: -0.7; // -0.05 em
     }
     text-fill: @country-labels;
     text-face-name: @book-fonts;
     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;
-    text-line-spacing: 1;
   }
 }
 
 .state {
-  [zoom >= 4][zoom < 5][way_pixels > 750],
   [zoom >= 5][way_pixels > 3000][way_pixels < 196000] {
-    text-name: "[ref]";
-    text-size: 9;
+    text-name: "[name]";
+    text-size: 10;
+    text-wrap-width: 30; // 3.0 em
+    text-line-spacing: -1.5; // -0.15 em
+    text-margin: 7.0; // 0.7 em
     text-fill: @state-labels;
     text-face-name: @oblique-fonts;
     text-halo-fill: @standard-halo-fill;
     text-halo-radius: @standard-halo-radius * 1.5;
-    text-wrap-width: 0;
     text-placement: interior;
-    [zoom >= 5] {
-      text-name: "[name]";
-      text-wrap-width: 30;
-    }
     [zoom >= 7] {
       text-size: 11;
-      text-wrap-width: 50;
+      text-wrap-width: 50; // 4.5 em
+      text-line-spacing: -0.6; // -0.05 em
+      text-margin: 7.7; // 0.7 em
     }
   }
 }
@@ -62,7 +73,9 @@
     shield-face-name: @book-fonts;
     shield-fill: @placenames;
     shield-size: 11;
-    shield-wrap-width: 30;
+    shield-wrap-width: 30; // 2.7 em
+    shield-line-spacing: -1.6; // -0.15 em
+    shield-margin: 7.7; // 0.7 em
     shield-halo-fill: @standard-halo-fill;
     shield-halo-radius: @standard-halo-radius * 1.5;
     shield-placement-type: simple;
@@ -73,11 +86,14 @@
     shield-unlock-image: true;
 
     [zoom >= 5] {
-      shield-wrap-width: 45;
+      shield-wrap-width: 45; // 4.1 em
+      shield-line-spacing: -1.1; // -0.10 em
     }
     [zoom >= 6] {
       shield-size: 12;
-      shield-wrap-width: 60;
+      shield-wrap-width: 60; // 5.0 em
+      shield-line-spacing: -0.6; // -0.05 em
+      shield-margin: 8.4; // 0.7 em
     }
     [zoom >= 7] {
       shield-file: url('symbols/place/place-capital-8.svg');
@@ -90,13 +106,23 @@
     text-face-name: @book-fonts;
     text-fill: @placenames;
     text-size: 13;
-    text-wrap-width: 60;
+    text-wrap-width: 65; // 5.0 em
+    text-line-spacing: -0.65; // -0.05 em
+    text-margin: 9.1; // 0.7 em
     text-halo-fill: @standard-halo-fill;
     text-halo-radius: @standard-halo-radius * 1.5;
 
+    [zoom >= 10] {
+      text-size: 14;
+      text-wrap-width: 70; // 5.0 em
+      text-line-spacing: -0.70; // -0.05 em
+      text-margin: 9.8; // 0.7 em
+    }
     [zoom >= 11] {
       text-size: 15;
-      text-wrap-width: 75;
+      text-wrap-width: 75; // 5.0 em
+      text-line-spacing: -0.75; // -0.05 em
+      text-margin: 10.5; // 0.7 em
     }
   }
 }
@@ -112,7 +138,9 @@
       shield-face-name: @book-fonts;
       shield-fill: @placenames;
       shield-size: 11;
-      shield-wrap-width: 30;
+      shield-wrap-width: 30; // 2.7 em
+      shield-line-spacing: -1.65; // -0.15 em
+      shield-margin: 7.7; // 0.7 em
       shield-halo-fill: @standard-halo-fill;
       shield-halo-radius: @standard-halo-radius * 1.5;
       shield-placement-type: simple;
@@ -123,11 +151,14 @@
       shield-unlock-image: true;
 
       [zoom >= 5] {
-        shield-wrap-width: 45;
+        shield-wrap-width: 45; // 4.1 em
+        shield-line-spacing: -1.1; // -0.10 em
       }
       [zoom >= 6] {
         shield-size: 12;
-        shield-wrap-width: 60;
+        shield-wrap-width: 60; // 5.0 em
+        shield-line-spacing: -0.6; // -0.05 em
+        shield-margin: 8.4; // 0.7 em
 
         shield-file: url('symbols/place/place-6.svg');
         shield-text-dx: 5;
@@ -142,13 +173,23 @@
       text-face-name: @book-fonts;
       text-fill: @placenames;
       text-size: 13;
-      text-wrap-width: 60;
+      text-wrap-width: 65; // 5.0 em
+      text-line-spacing: -0.65; // -0.05 em
+      text-margin: 9.1; // 0.7 em
       text-halo-fill: @standard-halo-fill;
       text-halo-radius: @standard-halo-radius * 1.5;
 
+      [zoom >= 10] {
+        text-size: 14;
+        text-wrap-width: 70; // 5.0 em
+        text-line-spacing: -0.7; // -0.05 em
+        text-margin: 9.8; // 0.7 em
+      }
       [zoom >= 11] {
         text-size: 15;
-        text-wrap-width: 75;
+        text-wrap-width: 75; // 5.0 em
+        text-line-spacing: -0.75; // -0.05 em
+        text-margin: 10.5; // 0.7 em
       }
     }
   }
@@ -167,7 +208,9 @@
       shield-face-name: @book-fonts;
       shield-halo-fill: @standard-halo-fill;
       shield-halo-radius: @standard-halo-radius * 1.5;
-      shield-wrap-width: 30;
+      shield-wrap-width: 30; // 3.0 em
+      shield-line-spacing: -1.5; // -0.15 em
+      shield-margin: 7.0; // 0.7 em
       shield-placement-type: simple;
       shield-placements: 'S,N,E,W';
       [dir = 1] {
@@ -185,18 +228,32 @@
       text-face-name: @book-fonts;
       text-halo-fill: @standard-halo-fill;
       text-halo-radius: @standard-halo-radius * 1.5;
-      text-wrap-width: 60;
+      text-wrap-width: 40; // 4.0 em
+      text-line-spacing: -1.0; // -0.10 em
+      text-margin: 7.0; // 0.7 em
       [zoom >= 9] {
         text-size: 12;
-        text-wrap-width: 60;
+        text-wrap-width: 60; // 5.0 em
+        text-line-spacing: -0.6; // -0.05 em
+        text-margin: 8.4; // 0.7 em
+      }
+      [zoom >= 10] {
+        text-size: 13;
+        text-wrap-width: 65; // 5.0 em
+        text-line-spacing: -0.65; // -0.05 em
+        text-margin: 9.1; // 0.7 em
       }
       [zoom >= 11] {
         text-size: 14;
-        text-wrap-width: 70;
+        text-wrap-width: 70; // 5.0 em
+        text-line-spacing: -0.7; // -0.05 em
+        text-margin: 9.8; // 0.7 em
       }
       [zoom >= 14] {
         text-size: 15;
-        text-wrap-width: 75;
+        text-wrap-width: 75; // 5.0 em
+        text-line-spacing: -0.7; // -0.05 em
+        text-margin: 10.5; // 0.7 em
       }
     }
   }
@@ -211,18 +268,26 @@
       text-face-name: @book-fonts;
       text-halo-fill: @standard-halo-fill;
       text-halo-radius: @standard-halo-radius * 1.5;
-      text-wrap-width: 45;
+      text-wrap-width: 45; // 4.5 em
+      text-line-spacing: -0.8; // -0.08 em
+      text-margin: 7; // 0.7 em
       [zoom >= 11] {
         text-size: 11;
-        text-wrap-width: 55;
+        text-wrap-width: 55; // 5.0 em
+        text-line-spacing: -0.55; // -0.05 em
+        text-margin: 7.7; // 0.7 em
       }
       [zoom >= 12] {
         text-size: 13;
-        text-wrap-width: 65;
+        text-wrap-width: 65; // 5.0 em
+        text-line-spacing: -0.65; // -0.05 em
+        text-margin: 8.4; // 0.7 em
       }
       [zoom >= 14] {
         text-size: 15;
-        text-wrap-width: 70;
+        text-wrap-width: 75; // 5.0 em
+        text-line-spacing: -0.75; // -0.05 em
+        text-margin: 10.5; // 0.7 em
       }
     }
   }
@@ -236,16 +301,28 @@
     text-face-name: @book-fonts;
     text-halo-fill: @standard-halo-fill;
     text-halo-radius: @standard-halo-radius * 1.5;
-    text-wrap-width: 55;
+    text-wrap-width: 55; // 5.0 em
+    text-line-spacing: -0.55; // -0.05 em
+    text-margin: 7.7; // 0.7 em
+    [zoom >= 13] {
+      text-size: 12;
+      text-wrap-width: 60; // 5.0 em
+      text-line-spacing: -0.60; // -0.05 em
+      text-margin: 8.4; // 0.7 em
+    }
     [zoom >= 14] {
       text-size: 14;
-      text-wrap-width: 70;
+      text-wrap-width: 70; // 5.0 em
+      text-line-spacing: -0.70; // -0.05 em
+      text-margin: 9.8; // 0.7 em
       text-fill: @placenames-light;
       text-halo-fill: white;
     }
     [zoom >= 16] {
       text-size: 15;
-      text-wrap-width: 75;
+      text-wrap-width: 75; // 5.0 em
+      text-line-spacing: -0.75; // -0.05 em
+      text-margin: 10.5; // 0.7 em
     }
   }
 }
@@ -259,16 +336,34 @@
       text-face-name: @book-fonts;
       text-halo-fill: @standard-halo-fill;
       text-halo-radius: @standard-halo-radius * 1.5;
-      text-wrap-width: 50;
+      text-wrap-width: 50; // 5.0 em
+      text-line-spacing: -0.50; // -0.05 em
+      text-margin: 7.0; // 0.7 em
+      [zoom >= 11] {
+        text-size: 11;
+        text-wrap-width: 55; // 5.0 em
+        text-line-spacing: -0.55; // -0.05 em
+        text-margin: 7.7; // 0.7 em
+      }
       [zoom >= 14] {
         text-fill: @placenames-light;
         text-halo-fill: white;
         text-size: 13;
-        text-wrap-width: 65;
+        text-wrap-width: 65; // 5.0 em
+        text-line-spacing: -0.65; // -0.05 em
+        text-margin: 9.1; // 0.7 em
+      }
+      [zoom >= 15] {
+        text-size: 14;
+        text-wrap-width: 70; // 5.0 em
+        text-line-spacing: -0.70; // -0.05 em
+        text-margin: 9.8; // 0.7 em
       }
       [zoom >= 16] {
         text-size: 15;
-        text-wrap-width: 75;
+        text-wrap-width: 75; // 5.0 em
+        text-line-spacing: -0.75; // -0.05 em
+        text-margin: 10.5; // 0.7 em
       }
     }
   }
@@ -287,11 +382,15 @@
       text-face-name: @book-fonts;
       text-halo-fill: @standard-halo-fill;
       text-halo-radius: @standard-halo-radius * 1.5;
-      text-wrap-width: 45;
+      text-wrap-width: 45; // 4.5 em
+      text-line-spacing: -0.8; // -0.08 em
+      text-margin: 7.0; // 0.7 em
     }
     [zoom >= 16] {
       text-size: 12;
-      text-wrap-width: 60;
+      text-wrap-width: 60; // 5.0 em
+      text-line-spacing: -0.60; // -0.05 em
+      text-margin: 8.4; // 0.7 em
       text-fill: @placenames-light;
       text-halo-fill: white;
     }
diff --git a/project.mml b/project.mml
index e45372e..33e487d 100644
--- a/project.mml
+++ b/project.mml
@@ -1,7 +1,7 @@
 scale: 1
 metatile: 2
-name: "OpenStreetMap Carto"
-description: "A general-purpose OpenStreetMap mapnik style, in CartoCSS"
+name: OpenStreetMap Carto
+description: A general-purpose OpenStreetMap mapnik style, in CartoCSS
 bounds: &world
   - -180
   - -85.05112877980659
@@ -11,7 +11,7 @@ center:
   - 0
   - 0
   - 4
-format: "png"
+format: png
 interactivity: false
 minzoom: 0
 maxzoom: 22
@@ -36,75 +36,66 @@ _parts:
     extent: "-20037508,-20037508,20037508,20037508"
 
 Stylesheet:
-  - "style.mss"
-  - "shapefiles.mss"
-  - "landcover.mss"
-  - "water.mss"
-  - "water-features.mss"
-  - "road-colors-generated.mss"
-  - "roads.mss"
-  - "power.mss"
-  - "placenames.mss"
-  - "buildings.mss"
-  - "stations.mss"
-  - "amenity-points.mss"
-  - "ferry-routes.mss"
-  - "aerialways.mss"
-  - "admin.mss"
-  - "addressing.mss"
+  - style.mss
+  - shapefiles.mss
+  - landcover.mss
+  - water.mss
+  - water-features.mss
+  - road-colors-generated.mss
+  - roads.mss
+  - power.mss
+  - placenames.mss
+  - buildings.mss
+  - stations.mss
+  - amenity-points.mss
+  - ferry-routes.mss
+  - aerialways.mss
+  - admin.mss
+  - addressing.mss
 Layer:
-  - id: "world"
-    name: "world"
-    class: ""
-    geometry: "polygon"
+  - id: world
+    name: world
+    geometry: polygon
     <<: *extents
     Datasource:
-      file: "data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp"
-      type: "shape"
-    advanced: {}
+      file: data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp
+      type: shape
     properties:
       maxzoom: 9
-  - id: "coast-poly"
-    name: "coast-poly"
-    class: ""
-    geometry: "polygon"
+  - id: coast-poly
+    name: coast-poly
+    geometry: polygon
     <<: *extents
     Datasource:
-      file: "data/land-polygons-split-3857/land_polygons.shp"
-      type: "shape"
+      file: data/land-polygons-split-3857/land_polygons.shp
+      type: shape
     properties:
       minzoom: 10
-    advanced: {}
-  - id: "builtup"
-    name: "builtup"
-    geometry: "polygon"
-    class: ""
+  - id: builtup
+    name: builtup
+    geometry: polygon
     extent: *world
-    srs-name: "mercator"
+    srs-name: mercator
     srs: "+proj=merc +datum=WGS84 +over"
     Datasource:
-      file: "data/world_boundaries/builtup_area.shp"
-      type: "shape"
+      file: data/world_boundaries/builtup_area.shp
+      type: shape
     properties:
       minzoom: 8
       maxzoom: 9
-    advanced: {}
-  - id: "necountries"
-    name: "necountries"
-    class: ""
-    geometry: "linestring"
+  - id: necountries
+    name: necountries
+    geometry: linestring
     <<: *extents84
     Datasource:
-      file: "data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp"
-      type: "shape"
+      file: data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp
+      type: shape
     properties:
       minzoom: 1
       maxzoom: 3
-    advanced: {}
-  - id: "landcover-low-zoom"
-    name: "landcover-low-zoom"
-    class: ""
-    geometry: "polygon"
+  - id: landcover-low-zoom
+    name: landcover-low-zoom
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -129,11 +120,9 @@ Layer:
     properties:
       minzoom: 7
       maxzoom: 9
-    advanced: {}
-  - id: "landcover"
-    name: "landcover"
-    class: ""
-    geometry: "polygon"
+  - id: landcover
+    name: landcover
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -181,11 +170,9 @@ Layer:
         ) AS features
     properties:
       minzoom: 10
-    advanced: {}
-  - id: "landcover-line"
-    name: "landcover-line"
-    class: ""
-    geometry: "linestring"
+  - id: landcover-line
+    name: landcover-line
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -195,13 +182,11 @@ Layer:
           FROM planet_osm_line
           WHERE man_made = 'cutline'
         ) AS landcover_line
-    advanced: {}
     properties:
       minzoom: 14
-  - id: "water-lines-casing"
-    name: "water-lines-casing"
-    class: ""
-    geometry: "linestring"
+  - id: water-lines-casing
+    name: water-lines-casing
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -214,11 +199,9 @@ Layer:
         ) AS water_lines_casing
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "water-lines-low-zoom"
-    name: "water-lines-low-zoom"
-    class: ""
-    geometry: "linestring"
+  - id: water-lines-low-zoom
+    name: water-lines-low-zoom
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -233,22 +216,18 @@ Layer:
     properties:
       minzoom: 8
       maxzoom: 11
-    advanced: {}
-  - id: "icesheet-poly"
-    name: "icesheet-poly"
-    class: ""
-    geometry: "polygon"
+  - id: icesheet-poly
+    name: icesheet-poly
+    geometry: polygon
     <<: *extents
     Datasource:
-      file: "data/antarctica-icesheet-polygons-3857/icesheet_polygons.shp"
-      type: "shape"
+      file: data/antarctica-icesheet-polygons-3857/icesheet_polygons.shp
+      type: shape
     properties:
       minzoom: 4
-    advanced: {}
-  - id: "water-areas"
-    name: "water-areas"
-    class: ""
-    geometry: "polygon"
+  - id: water-areas
+    name: water-areas
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -271,11 +250,9 @@ Layer:
         ) AS water_areas
     properties:
       minzoom: 4
-    advanced: {}
-  - id: "landcover-area-symbols"
-    name: "landcover-area-symbols"
-    class: ""
-    geometry: "polygon"
+  - id: landcover-area-symbols
+    name: landcover-area-symbols
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -301,22 +278,19 @@ Layer:
         ) AS landcover_area_symbols
     properties:
       minzoom: 10
-    advanced: {}
-  - id: "icesheet-outlines"
-    name: "icesheet-outlines"
-    class: ""
-    geometry: "linestring"
+  - id: icesheet-outlines
+    name: icesheet-outlines
+    geometry: linestring
     <<: *extents
     Datasource:
-      file: "data/antarctica-icesheet-outlines-3857/icesheet_outlines.shp"
-      type: "shape"
+      file: data/antarctica-icesheet-outlines-3857/icesheet_outlines.shp
+      type: shape
     properties:
       minzoom: 4
-    advanced: {}
-  - id: "water-lines"
-    name: "water-lines"
-    class: "water-lines"
-    geometry: "linestring"
+  - id: water-lines
+    name: water-lines
+    class: water-lines
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -332,11 +306,9 @@ Layer:
         ) AS water_lines
     properties:
       minzoom: 12
-    advanced: {}
-  - id: "water-barriers-line"
-    name: "water-barriers-line"
-    class: ""
-    geometry: "linestring"
+  - id: water-barriers-line
+    name: water-barriers-line
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -348,13 +320,11 @@ Layer:
           FROM planet_osm_line
           WHERE waterway IN ('dam', 'weir', 'lock_gate')
         ) AS water_barriers_line
-    advanced: {}
     properties:
       minzoom: 13
-  - id: "water-barriers-poly"
-    name: "water-barriers-poly"
-    class: ""
-    geometry: "polygon"
+  - id: water-barriers-poly
+    name: water-barriers-poly
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -366,13 +336,11 @@ Layer:
           FROM planet_osm_polygon
           WHERE waterway IN ('dam', 'weir', 'lock_gate')
         ) AS water_barriers_poly
-    advanced: {}
     properties:
       minzoom: 13
-  - id: "marinas-area"
-    name: "marinas-area"
-    class: ""
-    geometry: "polygon"
+  - id: marinas-area
+    name: marinas-area
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -384,11 +352,9 @@ Layer:
         ) AS marinas_area
     properties:
       minzoom: 14
-    advanced: {}
-  - id: "piers-poly"
-    name: "piers-poly"
-    class: ""
-    geometry: "polygon"
+  - id: piers-poly
+    name: piers-poly
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -400,11 +366,9 @@ Layer:
         ) AS piers_poly
     properties:
       minzoom: 12
-    advanced: {}
-  - id: "piers-line"
-    name: "piers-line"
-    class: ""
-    geometry: "linestring"
+  - id: piers-line
+    name: piers-line
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -416,11 +380,9 @@ Layer:
         ) AS piers_line
     properties:
       minzoom: 12
-    advanced: {}
-  - id: "water-barriers-point"
-    name: "water-barriers-point"
-    class: ""
-    geometry: "point"
+  - id: water-barriers-point
+    name: water-barriers-point
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -432,11 +394,9 @@ Layer:
         ) AS water_barriers_points
     properties:
       minzoom: 17
-    advanced: {}
-  - id: "bridge"
-    name: "bridge"
-    class: ""
-    geometry: "polygon"
+  - id: bridge
+    name: bridge
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -451,11 +411,9 @@ Layer:
         ) AS bridge
     properties:
       minzoom: 12
-    advanced: {}
-  - id: "buildings"
-    name: "buildings"
-    class: ""
-    geometry: "polygon"
+  - id: buildings
+    name: buildings
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -466,16 +424,17 @@ Layer:
           FROM planet_osm_polygon
           WHERE building IS NOT NULL
             AND building != 'no'
+            AND (aeroway IS NULL OR aeroway != 'terminal')
+            AND (amenity IS NULL OR amenity != 'place_of_worship')
+            AND building != 'train_station'
             AND way_area > 0.01*!pixel_width!::real*!pixel_height!::real
           ORDER BY z_order, way_area DESC
         ) AS buildings
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "buildings-major"
-    name: "buildings-major"
-    class: ""
-    geometry: "polygon"
+  - id: buildings-major
+    name: buildings-major
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -494,11 +453,10 @@ Layer:
         AS buildings_major
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "tunnels"
-    name: "tunnels"
-    class: "tunnels-fill tunnels-casing access"
-    geometry: "linestring"
+  - id: tunnels
+    name: tunnels
+    class: tunnels-fill tunnels-casing access
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -631,13 +589,11 @@ Layer:
             CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 2 END
         ) AS tunnels
     properties:
-      group-by: "layernotnull"
+      group-by: layernotnull
       minzoom: 9
-    advanced: {}
-  - id: "landuse-overlay"
-    name: "landuse-overlay"
-    class: ""
-    geometry: "polygon"
+  - id: landuse-overlay
+    name: landuse-overlay
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -652,11 +608,10 @@ Layer:
         ) AS landuse_overlay
     properties:
       minzoom: 7
-    advanced: {}
-  - id: "line-barriers"
-    name: "line-barriers"
-    class: "barriers"
-    geometry: "linestring"
+  - id: line-barriers
+    name: line-barriers
+    class: barriers
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -676,11 +631,9 @@ Layer:
         ) AS line_barriers
     properties:
       minzoom: 14
-    advanced: {}
-  - id: "cliffs"
-    name: "cliffs"
-    class: ""
-    geometry: "linestring"
+  - id: cliffs
+    name: cliffs
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -692,11 +645,10 @@ Layer:
         ) AS cliffs
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "area-barriers"
-    name: "area-barriers"
-    class: "barriers"
-    geometry: "polygon"
+  - id: area-barriers
+    name: area-barriers
+    class: barriers
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -711,11 +663,9 @@ Layer:
         ) AS area_barriers
     properties:
       minzoom: 16
-    advanced: {}
-  - id: "ferry-routes"
-    name: "ferry-routes"
-    class: ""
-    geometry: "linestring"
+  - id: ferry-routes
+    name: ferry-routes
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -727,11 +677,9 @@ Layer:
         ) AS ferry_routes
     properties:
       minzoom: 7
-    advanced: {}
-  - id: "turning-circle-casing"
-    name: "turning-circle-casing"
-    class: ""
-    geometry: "point"
+  - id: turning-circle-casing
+    name: turning-circle-casing
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -758,11 +706,9 @@ Layer:
         ) AS turning_circle_casing
     properties:
       minzoom: 15
-    advanced: {}
-  - id: "highway-area-casing"
-    name: "highway-area-casing"
-    class: ""
-    geometry: "polygon"
+  - id: highway-area-casing
+    name: highway-area-casing
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -780,11 +726,10 @@ Layer:
         ) AS highway_area_casing
     properties:
       minzoom: 14
-    advanced: {}
-  - id: "roads-casing"
-    name: "roads-casing"
-    class: "roads-casing"
-    geometry: "linestring"
+  - id: roads-casing
+    name: roads-casing
+    class: roads-casing
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -918,10 +863,8 @@ Layer:
         ) AS roads_casing
     properties:
       minzoom: 9
-    advanced: {}
-  - id: "highway-area-fill"
-    name: "highway-area-fill"
-    class: ""
+  - id: highway-area-fill
+    name: highway-area-fill
     # FIXME: No geometry?
     <<: *extents
     Datasource:
@@ -943,11 +886,10 @@ Layer:
         ) AS highway_area_fill
     properties:
       minzoom: 14
-    advanced: {}
-  - id: "roads-fill"
-    name: "roads-fill"
-    class: "roads-fill access"
-    geometry: "linestring"
+  - id: roads-fill
+    name: roads-fill
+    class: roads-fill access
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1086,11 +1028,9 @@ Layer:
         ) AS roads_fill
     properties:
       minzoom: 10
-    advanced: {}
-  - id: "turning-circle-fill"
-    name: "turning-circle-fill"
-    class: ""
-    geometry: "point"
+  - id: turning-circle-fill
+    name: turning-circle-fill
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1117,11 +1057,9 @@ Layer:
         ) AS turning_circle_fill
     properties:
       minzoom: 15
-    advanced: {}
-  - id: "aerialways"
-    name: "aerialways"
-    class: ""
-    geometry: "linestring"
+  - id: aerialways
+    name: aerialways
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1134,11 +1072,9 @@ Layer:
         ) AS aerialways
     properties:
       minzoom: 12
-    advanced: {}
-  - id: "roads-low-zoom"
-    name: "roads-low-zoom"
-    class: ""
-    geometry: "linestring"
+  - id: roads-low-zoom
+    name: roads-low-zoom
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1167,11 +1103,10 @@ Layer:
     properties:
       minzoom: 5
       maxzoom: 9
-    advanced: {}
-  - id: "waterway-bridges"
-    name: "waterway-bridges"
-    class: "water-lines"
-    geometry: "linestring"
+  - id: waterway-bridges
+    name: waterway-bridges
+    class: water-lines
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1190,11 +1125,10 @@ Layer:
         ) AS waterway_bridges
     properties:
       minzoom: 15
-    advanced: {}
-  - id: "bridges"
-    name: "bridges"
-    class: "bridges-fill bridges-casing access"
-    geometry: "linestring"
+  - id: bridges
+    name: bridges
+    class: bridges-fill bridges-casing access
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1323,13 +1257,11 @@ Layer:
             CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 2 END
         ) AS bridges
     properties:
-      group-by: "layernotnull"
+      group-by: layernotnull
       minzoom: 9
-    advanced: {}
-  - id: "guideways"
-    name: "guideways"
-    class: ""
-    geometry: "linestring"
+  - id: guideways
+    name: guideways
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1341,11 +1273,9 @@ Layer:
         ) AS guideways
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "admin-low-zoom"
-    name: "admin-low-zoom"
-    class: ""
-    geometry: "linestring"
+  - id: admin-low-zoom
+    name: admin-low-zoom
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1362,11 +1292,9 @@ Layer:
     properties:
       minzoom: 4
       maxzoom: 10
-    advanced: {}
-  - id: "admin-mid-zoom"
-    name: "admin-mid-zoom"
-    class: ""
-    geometry: "linestring"
+  - id: admin-mid-zoom
+    name: admin-mid-zoom
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1383,11 +1311,9 @@ Layer:
     properties:
       minzoom: 11
       maxzoom: 12
-    advanced: {}
-  - id: "admin-high-zoom"
-    name: "admin-high-zoom"
-    class: ""
-    geometry: "linestring"
+  - id: admin-high-zoom
+    name: admin-high-zoom
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1403,11 +1329,9 @@ Layer:
         ) AS admin_high_zoom
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "power-minorline"
-    name: "power-minorline"
-    class: ""
-    geometry: "linestring"
+  - id: power-minorline
+    name: power-minorline
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1419,11 +1343,9 @@ Layer:
         ) AS power_minorline
     properties:
       minzoom: 16
-    advanced: {}
-  - id: "power-line"
-    name: "power-line"
-    class: ""
-    geometry: "linestring"
+  - id: power-line
+    name: power-line
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1435,11 +1357,9 @@ Layer:
         ) AS power_line
     properties:
       minzoom: 14
-    advanced: {}
-  - id: "nature-reserve-boundaries"
-    name: "nature-reserve-boundaries"
-    class: ""
-    geometry: "polygon"
+  - id: nature-reserve-boundaries
+    name: nature-reserve-boundaries
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1456,11 +1376,9 @@ Layer:
         ) AS national_park_boundaries
     properties:
       minzoom: 7
-    advanced: {}
-  - id: "tourism-boundary"
-    name: "tourism-boundary"
-    class: ""
-    geometry: "polygon"
+  - id: tourism-boundary
+    name: tourism-boundary
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1476,11 +1394,9 @@ Layer:
         ) AS tourism_boundary
     properties:
       minzoom: 10
-    advanced: {}
-  - id: "trees"
-    name: "trees"
-    class: ""
-    geometry: "polygon"
+  - id: trees
+    name: trees
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1497,11 +1413,10 @@ Layer:
         ) AS trees
     properties:
       minzoom: 16
-    advanced: {}
-  - id: "country-names"
-    name: "country-names"
-    class: "country"
-    geometry: "point"
+  - id: country-names
+    name: country-names
+    class: country
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1519,10 +1434,9 @@ Layer:
         ) AS country_names
     properties:
       minzoom: 2
-  - id: "capital-names"
-    name: "capital-names"
-    class: ""
-    geometry: "point"
+  - id: capital-names
+    name: capital-names
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1543,11 +1457,10 @@ Layer:
     properties:
       minzoom: 3
       maxzoom: 15
-    advanced: {}
-  - id: "state-names"
-    name: "state-names"
-    class: "state"
-    geometry: "point"
+  - id: state-names
+    name: state-names
+    class: state
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1566,11 +1479,9 @@ Layer:
         ) AS state_names
     properties:
       minzoom: 4
-    advanced: {}
-  - id: "placenames-medium"
-    name: "placenames-medium"
-    class: ""
-    geometry: "point"
+  - id: placenames-medium
+    name: placenames-medium
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1613,11 +1524,9 @@ Layer:
     properties:
       minzoom: 4
       maxzoom: 15
-    advanced: {}
-  - id: "placenames-small"
-    name: "placenames-small"
-    class: ""
-    geometry: "point"
+  - id: placenames-small
+    name: placenames-small
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1644,11 +1553,10 @@ Layer:
         ) AS placenames_small
     properties:
       minzoom: 12
-    advanced: {}
-  - id: "stations"
-    class: "stations"
-    name: "stations"
-    geometry: "point"
+  - id: stations
+    class: stations
+    name: stations
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1672,11 +1580,10 @@ Layer:
         ) AS stations
     properties:
       minzoom: 12
-    advanced: {}
-  - id: "stations-poly"
-    name: "stations-poly"
-    class: "stations"
-    geometry: "polygon"
+  - id: stations-poly
+    name: stations-poly
+    class: stations
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1693,11 +1600,10 @@ Layer:
         ) AS stations_poly
     properties:
       minzoom: 12
-    advanced: {}
-  - id: "amenity-points-poly"
-    name: "amenity-points-poly"
-    class: "points"
-    geometry: "polygon"
+  - id: amenity-points-poly
+    name: amenity-points-poly
+    class: points
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1723,7 +1629,7 @@ Layer:
                                             'mobile_phone', 'motorcycle', 'musical_instrument', 'newsagent', 'optician', 'jewelry', 'jewellery', 
                                             'electronics', 'chemist', 'toys', 'travel_agency', 'car_parts', 'greengrocer', 'farm', 'stationery', 
                                             'laundry', 'dry_cleaning', 'beverages', 'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', 
-                                            'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea') THEN shop 
+                                            'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea', 'coffee') THEN shop 
                               WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE 'other' END,
               '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', 'obelisk') THEN man_made ELSE NULL END,
@@ -1763,11 +1669,10 @@ Layer:
         ) AS amenity_points_poly
     properties:
       minzoom: 10
-    advanced: {}
-  - id: "amenity-points"
-    name: "amenity-points"
-    class: "points"
-    geometry: "point"
+  - id: amenity-points
+    name: amenity-points
+    class: points
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1792,7 +1697,8 @@ Layer:
                                             'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 
                                             'musical_instrument', 'newsagent', 'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 
                                             'travel_agency', 'car_parts', 'greengrocer', 'farm', 'stationery', 'laundry', 'dry_cleaning', 'beverages', 
-                                            'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea') THEN shop 
+                                            'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 
+                                            'tea', 'coffee') THEN shop 
                               WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE 'other' END,
               'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway',
                                                   'dog_park') THEN leisure ELSE NULL END,
@@ -1844,11 +1750,9 @@ Layer:
           ) AS amenity_points
     properties:
       minzoom: 10
-    advanced: {}
-  - id: "power-towers"
-    name: "power-towers"
-    class: ""
-    geometry: "point"
+  - id: power-towers
+    name: power-towers
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1860,11 +1764,9 @@ Layer:
         ) AS power_towers
     properties:
       minzoom: 14
-    advanced: {}
-  - id: "power-poles"
-    name: "power-poles"
-    class: ""
-    geometry: "point"
+  - id: power-poles
+    name: power-poles
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1876,11 +1778,9 @@ Layer:
         ) AS power_poles
     properties:
       minzoom: 16
-    advanced: {}
-  - id: "roads-text-ref-low-zoom"
-    name: "roads-text-ref-low-zoom"
-    class: ""
-    geometry: "linestring"
+  - id: roads-text-ref-low-zoom
+    name: roads-text-ref-low-zoom
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1893,28 +1793,47 @@ Layer:
             refs
           FROM (
             SELECT
-                way, highway,
+                way,
+                osm_id,
+                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,
+                    osm_id,
                     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
+          WHERE height <= 4 AND width <= 11
+          ORDER BY
+            CASE
+              WHEN highway = 'motorway' THEN 38
+              WHEN highway = 'trunk' THEN 37
+              WHEN highway = 'primary' THEN 36
+              WHEN highway = 'secondary' THEN 35
+              WHEN highway = 'tertiary' THEN 34
+              WHEN highway = 'unclassified' THEN 33
+              WHEN highway = 'residential' THEN 32
+              WHEN highway = 'runway' THEN 6
+              WHEN highway = 'taxiway' THEN 5
+              ELSE NULL
+            END DESC NULLS LAST,
+            height DESC,
+            width DESC,
+            refs,
+            osm_id
+        ) AS roads_text_ref_low_zoom
     properties:
       minzoom: 10
       maxzoom: 12
-    advanced: {}
-  - id: "junctions"
-    name: "junctions"
-    class: ""
-    geometry: "point"
+  - id: junctions
+    name: junctions
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1930,11 +1849,9 @@ Layer:
         ) AS junctions
     properties:
       minzoom: 11
-    advanced: {}
-  - id: "bridge-text"
-    name: "bridge-text"
-    class: ""
-    geometry: "polygon"
+  - id: bridge-text
+    name: bridge-text
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1949,11 +1866,9 @@ Layer:
         ) AS bridge_text
     properties:
       minzoom: 11
-    advanced: {}
-  - id: "roads-text-ref"
-    name: "roads-text-ref"
-    class: ""
-    geometry: "linestring"
+  - id: roads-text-ref
+    name: roads-text-ref
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -1966,12 +1881,15 @@ Layer:
             refs
           FROM (
             SELECT
-                way, highway,
+                osm_id,
+                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
+                    osm_id,
                     way,
                     COALESCE(
                       CASE WHEN highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'unclassified', 'residential') THEN highway ELSE NULL END,
@@ -1979,17 +1897,33 @@ Layer:
                     ) 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
+                  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
+          WHERE height <= 4 AND width <= 11
+          ORDER BY
+            CASE
+              WHEN highway = 'motorway' THEN 38
+              WHEN highway = 'trunk' THEN 37
+              WHEN highway = 'primary' THEN 36
+              WHEN highway = 'secondary' THEN 35
+              WHEN highway = 'tertiary' THEN 34
+              WHEN highway = 'unclassified' THEN 33
+              WHEN highway = 'residential' THEN 32
+              WHEN highway = 'runway' THEN 6
+              WHEN highway = 'taxiway' THEN 5
+              ELSE NULL
+            END DESC NULLS LAST,
+            height DESC,
+            width DESC,
+            refs,
+            osm_id
+        ) AS roads_text_ref
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "roads-area-text-name"
-    name: "roads-area-text-name"
-    class: ""
-    geometry: "polygon"
+  - id: roads-area-text-name
+    name: roads-area-text-name
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2003,14 +1937,14 @@ Layer:
           WHERE highway IN ('residential', 'unclassified', 'pedestrian', 'service', 'footway', 'cycleway', 'living_street', 'track', 'path', 'platform')
             OR railway IN ('platform')
             AND name IS NOT NULL
+          ORDER BY way_area DESC
         ) AS roads_area_text_name
     properties:
       minzoom: 15
-    advanced: {}
-  - id: "roads-text-name"
-    name: "roads-text-name"
-    class: "directions"
-    geometry: "linestring"
+  - id: roads-text-name
+    name: roads-text-name
+    class: directions
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2027,20 +1961,45 @@ Layer:
               ELSE NULL
             END AS oneway,
             horse, bicycle
-          FROM planet_osm_line
+          FROM planet_osm_line l
+          JOIN (VALUES -- this join is also putting a condition on what is selected. features not matching it do not make it into the results.
+              ('motorway', 380),
+              ('trunk', 370),
+              ('primary', 360),
+              ('secondary', 350),
+              ('tertiary', 340),
+              ('residential', 330),
+              ('unclassified', 330),
+              ('road', 330),
+              ('living_street', 320),
+              ('pedestrian', 310),
+              ('raceway', 300),
+              ('motorway_link', 240),
+              ('trunk_link', 230),
+              ('primary_link', 220),
+              ('secondary_link', 210),
+              ('tertiary_link', 200),
+              ('service', 150),
+              ('construction', 10)
+            ) AS ordertable (highway, prio)
+            USING (highway)
           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
               OR oneway IN ('yes', '-1')
               OR junction IN ('roundabout'))
+          ORDER BY
+            prio DESC, -- put important roads first
+            CASE WHEN layer~E'^-?\\d+$' AND length(layer)<10 THEN layer::integer ELSE 0 END DESC, -- put top layered roads first
+            length(name) DESC, -- Try to fit big labels in first
+            name DESC, -- Force a consistent ordering between differently named streets
+            l.osm_id DESC -- Force an ordering for streets of the same name, e.g. dualized roads
         ) AS roads_text_name
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "paths-text-name"
-    name: "paths-text-name"
-    class: ""
-    geometry: "linestring"
+  - id: paths-text-name
+    name: paths-text-name
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2055,11 +2014,10 @@ Layer:
         ) AS paths_text_name
     properties:
       minzoom: 15
-    advanced: {}
-  - id: "text-poly-low-zoom"
-    name: "text-poly-low-zoom"
-    class: "text-low-zoom"
-    geometry: "polygon"
+  - id: text-poly-low-zoom
+    name: text-poly-low-zoom
+    class: text-low-zoom
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2089,11 +2047,10 @@ Layer:
     properties:
       minzoom: 7
       maxzoom: 9
-    advanced: {}
-  - id: "text-poly"
-    name: "text-poly"
-    class: "text"
-    geometry: "polygon"
+  - id: text-poly
+    name: text-poly
+    class: text
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2121,7 +2078,8 @@ Layer:
                                             'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 
                                             'musical_instrument', 'newsagent', 'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 
                                             'travel_agency', 'car_parts', 'greengrocer', 'farm', 'stationery', 'laundry', 'dry_cleaning', 'beverages', 
-                                            'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea') THEN shop 
+                                            'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea', 
+                                            'coffee') THEN shop 
                               WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE 'other' END,
               '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', 
@@ -2173,11 +2131,9 @@ Layer:
         ) AS text_poly
     properties:
       minzoom: 10
-    advanced: {}
-  - id: "text-line"
-    name: "text-line"
-    class: ""
-    geometry: "linestring"
+  - id: text-line
+    name: text-line
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2198,13 +2154,12 @@ Layer:
               OR "natural" IN ('cliff'))
             AND name IS NOT NULL
         ) AS text_line
-    advanced: {}
     properties:
       minzoom: 10
-  - id: "text-point"
-    name: "text-point"
-    class: "text"
-    geometry: "point"
+  - id: text-point
+    name: text-point
+    class: text
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2251,7 +2206,7 @@ Layer:
                                                 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'musical_instrument', 
                                                 'newsagent', 'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 'travel_agency', 'car_parts', 
                                                 'greengrocer', 'farm', 'stationery', 'laundry', 'dry_cleaning', 'beverages', 'perfumery', 'cosmetics', 
-                                                'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea') THEN shop 
+                                                'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea', 'coffee') THEN shop 
                                   WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE 'other' END,
                   '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',  
@@ -2319,11 +2274,9 @@ Layer:
           ) AS text
     properties:
       minzoom: 10
-    advanced: {}
-  - id: "building-text"
-    name: "building-text"
-    class: ""
-    geometry: "polygon"
+  - id: building-text
+    name: building-text
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2340,11 +2293,9 @@ Layer:
         ) AS building_text
     properties:
       minzoom: 14
-    advanced: {}
-  - id: "interpolation"
-    name: "interpolation"
-    class: ""
-    geometry: "linestring"
+  - id: interpolation
+    name: interpolation
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2356,11 +2307,9 @@ Layer:
         ) AS interpolation
     properties:
       minzoom: 17
-    advanced: {}
-  - id: "addresses"
-    name: "addresses"
-    class: ""
-    geometry: "point"
+  - id: addresses
+    name: addresses
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2385,11 +2334,9 @@ Layer:
         ) AS addresses
     properties:
       minzoom: 17
-    advanced: {}
-  - id: "water-lines-text"
-    name: "water-lines-text"
-    class: ""
-    geometry: "linestring"
+  - id: water-lines-text
+    name: water-lines-text
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2409,11 +2356,9 @@ Layer:
         ) AS water_lines_text
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "ferry-routes-text"
-    name: "ferry-routes-text"
-    class: ""
-    geometry: "linestring"
+  - id: ferry-routes-text
+    name: ferry-routes-text
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2427,11 +2372,9 @@ Layer:
         ) AS ferry_routes_text
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "admin-text"
-    name: "admin-text"
-    class: ""
-    geometry: "linestring"
+  - id: admin-text
+    name: admin-text
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2448,11 +2391,9 @@ Layer:
         ) AS admin_text
     properties:
       minzoom: 16
-    advanced: {}
-  - id: "nature-reserve-text"
-    name: "nature-reserve-text"
-    class: ""
-    geometry: "linestring"
+  - id: nature-reserve-text
+    name: nature-reserve-text
+    geometry: linestring
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2467,11 +2408,10 @@ Layer:
         ) AS nature_reserve_text
     properties:
       minzoom: 13
-    advanced: {}
-  - id: "amenity-low-priority"
-    name: "amenity-low-priority"
-    class: "amenity-low-priority"
-    geometry: "point"
+  - id: amenity-low-priority
+    name: amenity-low-priority
+    class: amenity-low-priority
+    geometry: point
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2499,11 +2439,10 @@ Layer:
           ) AS amenity_low_priority
     properties:
       minzoom: 14
-    advanced: {}
-  - id: "amenity-low-priority-poly"
-    name: "amenity-low-priority-poly"
-    class: "amenity-low-priority"
-    geometry: "polygon"
+  - id: amenity-low-priority-poly
+    name: amenity-low-priority-poly
+    class: amenity-low-priority
+    geometry: polygon
     <<: *extents
     Datasource:
       <<: *osm2pgsql
@@ -2521,4 +2460,3 @@ Layer:
           ) AS amenity_low_priority_poly
     properties:
       minzoom: 14
-    advanced: {}
diff --git a/symbols/bus_stop.12.svg b/symbols/bus_stop.12.svg
index f4ade01..65f3534 100644
--- a/symbols/bus_stop.12.svg
+++ b/symbols/bus_stop.12.svg
@@ -1,14 +1,5 @@
-<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="0 0 12 12" id="svg2">
-  <metadata id="metadata9">
-    <rdf:RDF>
-      <cc:Work rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
-        <dc:title/>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs id="defs7"/>
-  <rect width="12" height="12" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/>
-  <path d="M 2,0 1,1 1,9 1.65625,9 c 0,0 0.1011489,1 0.81275,1 C 3.1581295,10 3.25,9 3.25,9 l 3.5,0 c 0,0 0.1143421,1 0.781,1 0.8164686,0 0.81275,-1 0.81275,-1 L 9,9 9,1 8,0 z M 3,1 7,1 7,2 3,2 z M 2,3 8,3 8,6 2,6 z M 2,7 3,7 3,8 2,8 z M 7,7 8,7 8,8 7,8 z" id="bus-stop" style="fill:#000000;fill-opacity:1;stroke:none" transform="translate(1,1)"/>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" height="12" width="12" version="1.1">
+  <rect style="fill:none;stroke:none;visibility:hidden" y="0" x="0" height="12" width="12" />
+  <path d="m 3,1 -1,1 0,8 0.65625,0 c 0,0 0.1011489,1 0.81275,1 0.6891295,0 0.781,-1 0.781,-1 l 3.5,0 c 0,0 0.1143421,1 0.781,1 0.8164686,0 0.81275,-1 0.81275,-1 L 10,10 10,2 9,1 Z M 4,2 8,2 8,3 4,3 Z M 3,4 9,4 9,7 3,7 Z M 3,8 4,8 4,9 3,9 Z M 8,8 9,8 9,9 8,9 Z" />
 </svg>
diff --git a/symbols/shop/coffee.svg b/symbols/shop/coffee.svg
new file mode 100644
index 0000000..c30d174
--- /dev/null
+++ b/symbols/shop/coffee.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="14"
+   height="14">
+  <path
+     d="m 12.384493,0.563045 c 0,0 -0.755812,-0.70671723 -2.001266,-0.5366193 C 9.1377731,0.19652406 5.67408,1.8563585 4.064323,3.2842072 2.4545656,4.7120561 0.24023006,7.0019767 0.09832664,8.5231653 -0.04357662,10.044353 -0.27583032,10.704286 1.4065218,12.384527 c 1.682352,1.68024 5.6574649,0.07602 5.6574649,0.07602 0,0 3.4984663,-1.595396 5.2184953,-4.5534894 1.720029,-2.9580935 1.659359,-4.2103848 1.659359,-4.2103848 0,0 0.238751,-1.0939281 -0.251224,-2.0514304 -0.489975,-0.95750278 - [...]
+</svg>

-- 
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