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

Bas Couwenberg sebastic at debian.org
Tue Apr 25 13:33:39 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 56536e9cf5de000058ac9be790f106411258d6d8
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Tue Apr 25 15:29:21 2017 +0200

    Imported Upstream version 3.2.0
---
 CARTOGRAPHY.md                                |   2 +-
 CHANGELOG.md                                  |  12 +-
 INSTALL.md                                    |  16 ++-
 README.md                                     |   2 +-
 RELEASES.md                                   |   3 +-
 addressing.mss                                |   8 +-
 aerialways.mss                                |   3 +-
 amenity-points.mss                            |  19 +++-
 buildings.mss                                 |  13 +--
 landcover.mss                                 |  33 ++++--
 project.mml                                   |  40 +++----
 roads.mss                                     | 152 +++++++++++++++-----------
 symbols/generating_patterns/plant_nursery.md  |   5 +
 symbols/generating_patterns/plant_nursery.svg |   9 ++
 symbols/plant_nursery.png                     | Bin 0 -> 507 bytes
 water.mss                                     |  30 ++---
 16 files changed, 217 insertions(+), 130 deletions(-)

diff --git a/CARTOGRAPHY.md b/CARTOGRAPHY.md
index e93597c..68543ed 100644
--- a/CARTOGRAPHY.md
+++ b/CARTOGRAPHY.md
@@ -18,7 +18,7 @@ This style has multiple purposes:
 * It's an important feedback mechanism for mappers to validate their edits and helps to prevent unfavorable fragmentation of tag use.
 * It's a major part of the public face of OpenStreetMap, for many people the map on osm.org rendered with this style _is_ OpenStreetMap.
 * It's used in many map applications as a general purpose map.
-* It's an examplar stylesheet for rendering OSM data.
+* It's an exemplar stylesheet for rendering OSM data.
 
 There is no ranking of these purposes.  To allow serving all of them and to 
 avoid satisfying only some at the cost of the others the following main goals 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bce6967..1cc9ce6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,14 @@
-## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v3.1.0...master)
+## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v3.2.0...master)
+
+## [v3.2.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v3.1.0...v3.2.0) - 2017-04-17
+### Changes
+- Render aeroway terminal buildings like other buildings
+- Removed rendering of `landuse=farm`
+- Added rendering for arts centre, fitness centre, plant nursery, mixed lift aerialways
+- Rendering for fens changed
+- Typography for point road-related features, addresses, and water features changed
+- Removed rendering of `waterway=canal` as an area
+- Take text properties of roads under construction from the type of road they will be
 
 ## [v3.1.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v3.0.1...v3.1.0) - 2017-01-28
 ### Changes
diff --git a/INSTALL.md b/INSTALL.md
index 9077eec..c9e1803 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -43,13 +43,15 @@ The repeated www.naturalearthdata.com in the Natural Earth shapefiles is correct
 Put these shapefiles at `path/to/openstreetmap-carto/data`.
 
 ## Fonts
-The stylesheet uses Noto Sans, an openly licensed font from Google with support for multiple scripts. The "UI" version is used where available, with its vertical metrics which fit better with Latin text. Other fonts from the Noto family are used for some other languages.
+The stylesheet uses Noto, an openly licensed font family from Google with support for multiple scripts. The stylesheet uses Noto's "Sans" style where available. If not available, this stylesheet uses another appropriate style of the Noto family. The "UI" version is used where available, with its vertical metrics which fit better with Latin text.
 
 DejaVu Sans is used as an optional fallback font for systems without Noto Sans. If all the Noto fonts are installed, it should never be used.
 
 Unifont is used as a last resort fallback, with it's excellent coverage, common presence on machines, and ugly look.
 
-On Ubuntu 16.04 or Debian Testing you can install the required fonts except Noto Emoji Regular with
+### Installation on Ubuntu/Debian
+
+On Ubuntu 16.04 or Debian Testing you can download and install the required fonts except Noto Emoji Regular with
 
 ```
 sudo apt-get install fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted ttf-unifont
@@ -61,6 +63,16 @@ It might be useful to have a more recent version of the fonts for [rare non-lati
 
 DejaVu is packaged as `fonts-dejavu-core`.
 
+### Installation on other operation systems
+
+The fonts can be downloaded here:
+
+* [Noto homepage](http://www.google.com/get/noto/) and [Noto github repositories](http://github.com/googlei18n?utf8=%E2%9C%93&q=noto)
+* [DejaVu homepage](http://dejavu-fonts.org/)
+* [Unifont homepage](http://unifoundry.com/)
+
+After the download, you have to install the font files in the usual way of your operation system.
+
 ### Non-latin scripts
 
 For proper rendering of non-latin scripts, particularly those with complicated diacritics and tone marks the requirements are
diff --git a/README.md b/README.md
index 7b63a21..82d0a29 100644
--- a/README.md
+++ b/README.md
@@ -89,7 +89,7 @@ maps using Mapnik, many based on this project. Some alternatives are:
 * [OSM-Bright](https://github.com/mapbox/osm-bright)
 * [XML-based stylesheets](https://trac.openstreetmap.org/browser/subversion/applications/rendering/mapnik)
 * [osmfr-cartocss](https://github.com/cquest/osmfr-cartocss)
-* [openstreetmap-carto-german](https://github.com/woodpeck/openstreetmap-carto-german)
+* [openstreetmap-carto-german](https://github.com/giggls/openstreetmap-carto-de)
 
 # Maintainers
 
diff --git a/RELEASES.md b/RELEASES.md
index 2321bc5..5b1cbb1 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -7,6 +7,7 @@ Throughout this document, replace $OLD_VERSION with the previous release and $NE
 1. Update your local master branch
 2. Review the changes in git since the last release with a command like `git log --graph $OLD_VERSION...master` or online at https://github.com/gravitystorm/openstreetmap-carto/compare/$OLD_VERSION...master
 3. Review [pull requests](https://github.com/gravitystorm/openstreetmap-carto/pulls) for anything that should be merged before release
+4. Check [`preview.png`](preview.png) and update it if needed. Preferred way is to import current Chicago data, export new image (for example from Kosmtik via [this link](http://127.0.0.1:6789/openstreetmap-carto/export/?showExtent=true&format=png&width=849&height=310&scale=1&zoom=15&bounds=-87.65145778656006%2C41.86914537674214%2C-87.61502265930177%2C41.8790515319021)) and upload as new version of this file
 
 Decide among the maintainers if a new release is due.
 
@@ -54,4 +55,4 @@ https://github.com/gravitystorm/openstreetmap-carto/issues.
 
 3. Post an [openstreetmap.org diary entry](http://www.openstreetmap.org/diary/new) with the text from the email. Add links and other markdown if needed.
 
-4. *Optional: Post on twitter with a link to the diary entry.*
\ No newline at end of file
+4. *Optional: Post on twitter with a link to the diary entry.*
diff --git a/addressing.mss b/addressing.mss
index 7a525c4..ccc8ff5 100644
--- a/addressing.mss
+++ b/addressing.mss
@@ -21,14 +21,17 @@
     }
     text-placement: interior;
     text-min-distance: 1;
-    text-wrap-width: 20;
     text-face-name: @book-fonts;
     text-fill: @address-color;
     text-halo-radius: @standard-halo-radius;
     text-halo-fill: @standard-halo-fill;
     text-size: 10;
+    text-wrap-width: 20; // 2.0 em
+    text-line-spacing: -1.5; // -0.15 em
     [zoom >= 20] {
         text-size: 11;
+        text-wrap-width: 22; // 2.0 em
+        text-line-spacing: -1.65; // -0.15 em
     }
   }
 }
@@ -41,11 +44,12 @@ no official postal addresses) */
   [zoom >= 17] {
     text-name: "[name]";
     text-placement: interior;
-    text-wrap-width: 20;
     text-face-name: @book-fonts;
     text-fill: #444;
     text-halo-radius: @standard-halo-radius;
     text-halo-fill: @standard-halo-fill;
     text-size: 11;
+    text-wrap-width: 22; // 2.0 em
+    text-line-spacing: -1.65; // -0.15 em
   }
 }
diff --git a/aerialways.mss b/aerialways.mss
index 7cd9154..0a0e5cf 100644
--- a/aerialways.mss
+++ b/aerialways.mss
@@ -1,6 +1,7 @@
 #aerialways {
   [aerialway = 'cable_car'],
-  [aerialway = 'gondola'] {
+  [aerialway = 'gondola'],
+  [aerialway = 'mixed_lift'] {
     [zoom >= 12] {
       line/line-width: 1;
       line/line-join: round;
diff --git a/amenity-points.mss b/amenity-points.mss
index be5b115..0cba35b 100644
--- a/amenity-points.mss
+++ b/amenity-points.mss
@@ -501,6 +501,13 @@
     marker-clip: false;
   }
 
+  [feature = 'amenity_arts_centre'][zoom >= 17] {
+    marker-file: url('symbols/shop/art.svg');
+    marker-fill: @amenity-brown;
+    marker-placement: interior;
+    marker-clip: false;
+  }
+
   [feature = 'amenity_toilets'][zoom >= 17] {
     marker-file: url('symbols/toilets.svg');
     marker-fill: @amenity-brown;
@@ -1233,7 +1240,8 @@
   [feature = 'amenity_theatre'],
   [feature = 'amenity_courthouse'],
   [feature = 'amenity_townhall'],
-  [feature = 'amenity_cinema'] {
+  [feature = 'amenity_cinema'],
+  [feature = 'amenity_arts_centre'] {
     [zoom >= 17] {
       text-name: "[name]";
       text-size: @standard-text-size;
@@ -1248,7 +1256,8 @@
       [feature = 'amenity_library'],
       [feature = 'tourism_museum'],
       [feature = 'amenity_theatre'],
-      [feature = 'amenity_cinema'] {
+      [feature = 'amenity_cinema'],
+      [feature = 'amenity_arts_centre'] {
         text-dy: 11;
       }
     }
@@ -1549,6 +1558,7 @@
   [feature = 'landuse_quarry'],
   [feature = 'landuse_vineyard'],
   [feature = 'landuse_orchard'],
+  [feature = 'landuse_plant_nursery'],
   [feature = 'landuse_cemetery'],
   [feature = 'amenity_grave_yard'],
   [feature = 'landuse_residential'],
@@ -1581,6 +1591,7 @@
   [feature = 'natural_beach'],
   [feature = 'natural_shoal'],
   [feature = 'natural_reef'],
+  [feature = 'leisure_fitness_centre'],
   [feature = 'leisure_sports_centre'],
   [feature = 'leisure_stadium'],
   [feature = 'leisure_track'],
@@ -1623,7 +1634,8 @@
         text-fill: darken(@quarry, 60%);
       }
       [feature = 'landuse_vineyard'],
-      [feature = 'landuse_orchard'] {
+      [feature = 'landuse_orchard'],
+      [feature = 'landuse_plant_nursery'] {
         text-fill: darken(@orchard, 50%);
       }
       [feature = 'landuse_cemetery'],
@@ -1695,6 +1707,7 @@
       [feature = 'natural_shoal'] {
         text-fill: darken(@beach, 60%);
       }
+      [feature = 'leisure_fitness_centre'],
       [feature = 'leisure_sports_centre'],
       [feature = 'leisure_stadium'] {
         text-fill: darken(@stadium, 70%);
diff --git a/buildings.mss b/buildings.mss
index 721e74d..cbad825 100644
--- a/buildings.mss
+++ b/buildings.mss
@@ -5,9 +5,6 @@
 @building-major-fill: darken(@building-fill, 20%);
 @building-major-line: darken(@building-major-fill, 25%);
 
- at building-aeroway-fill: #cc99ff;
- at building-aeroway-line: darken(@building-aeroway-fill,15%);
-
 
 #buildings {
   [zoom >= 13] {
@@ -24,15 +21,7 @@
 
 #buildings-major {
   [zoom >= 13] {
-    [aeroway = 'terminal'] {
-      polygon-fill: @building-aeroway-fill;
-      polygon-clip: false;
-      [zoom >= 15] {
-        line-width: .75;
-        line-clip: false;
-        line-color: @building-aeroway-line;
-      }
-    }
+    [aeroway = 'terminal'],
     [amenity = 'place_of_worship'],
     [building = 'train_station'] {
       polygon-fill: @building-major-fill;
diff --git a/landcover.mss b/landcover.mss
index 0d11dcf..23ce1ec 100644
--- a/landcover.mss
+++ b/landcover.mss
@@ -5,7 +5,7 @@
 @forest: #add19e;       // Lch(80,30,135)
 @forest-text: #46673b;  // Lch(40,30,135)
 @park: #c8facc;         // Lch(94,30,145) also recreation_ground
- at orchard: #aedfa3;
+ at orchard: #aedfa3; // also vineyard, plant_nursery
 
 // --- "Base" landuses ---
 
@@ -17,7 +17,7 @@
 @commercial-line: #d1b2b0;  // Lch(75,12,25)
 @industrial: #ebdbe8;       // Lch(89,9,330) (Also used for railway)
 @industrial-line: #c6b3c3;  // Lch(75,11,330) (Also used for railway-line)
- at farmland: #fbecd7;         // Lch(94,12,80) (Also used for farm)
+ at farmland: #fbecd7;         // Lch(94,12,80)
 @farmland-line: #d6c4ab;    // Lch(80,15,80)
 @farmyard: #f5dcba;         // Lch(89,20,80)
 @farmyard-line: #d1b48c;    // Lch(75,25,80)
@@ -59,7 +59,7 @@
 
 @pitch: #aae0cb; // also track
 @track: @pitch;
- at stadium: @societal_amenities; // also sports_centre
+ at stadium: @societal_amenities; // also fitness_centre and sports_centre
 @golf_course: #b5e3b5;
 
 #landcover-low-zoom[zoom < 10],
@@ -145,6 +145,20 @@
     }
   }
 
+  [feature = 'landuse_plant_nursery'] {
+    [zoom >= 10] {
+      polygon-fill: @orchard;
+      [way_pixels >= 4]  { polygon-gamma: 0.75; }
+      [way_pixels >= 64] { polygon-gamma: 0.3;  }
+    }
+    [zoom >= 14] {
+      polygon-pattern-file: url('symbols/plant_nursery.png');
+      polygon-pattern-alignment: global;
+      [way_pixels >= 4]  { polygon-pattern-gamma: 0.75; }
+      [way_pixels >= 64] { polygon-pattern-gamma: 0.3;  }
+    }
+  }
+
   [feature = 'landuse_cemetery'],
   [feature = 'amenity_grave_yard'] {
     [zoom >= 10] {
@@ -282,7 +296,6 @@
     [way_pixels >= 64] { polygon-gamma: 0.3;  }
   }
 
-  [feature = 'landuse_farm'],
   [feature = 'landuse_farmland'],
   [feature = 'landuse_greenhouse_horticulture'] {
     [zoom >= 10] {
@@ -454,6 +467,7 @@
   }
 
   [feature = 'wetland_wet_meadow'],
+  [feature = 'wetland_fen'],
   [feature = 'wetland_marsh'] {
     [zoom >= 10] {
       polygon-fill: @grass;
@@ -474,7 +488,7 @@
         polygon-fill: @societal_amenities;
         [zoom >= 13] {
           line-width: 0.3;
-          line-color: brown;
+          line-color: darken(@societal_amenities, 35%);
         }
       }
       [way_pixels >= 4]  { polygon-gamma: 0.75; }
@@ -528,12 +542,17 @@
     polygon-fill: @station;
   }
 
+  [feature = 'leisure_fitness_centre'],
   [feature = 'leisure_sports_centre'],
   [feature = 'leisure_stadium'] {
     [zoom >= 10] {
       polygon-fill: @stadium;
       [way_pixels >= 4]  { polygon-gamma: 0.75; }
       [way_pixels >= 64] { polygon-gamma: 0.3;  }
+      [zoom >= 13] {
+        line-width: 0.3;
+        line-color: darken(@stadium, 35%);
+      }
     }
   }
 
@@ -586,8 +605,7 @@
   [zoom >= 14] {
     [int_wetland = 'marsh'],
     [int_wetland = 'saltmarsh'],
-    [int_wetland = 'wet_meadow'],
-    [int_wetland = 'fen'] {
+    [int_wetland = 'wet_meadow'] {
       polygon-pattern-file: url('symbols/wetland_marsh.png');
       polygon-pattern-alignment: global;
     }
@@ -604,6 +622,7 @@
       polygon-pattern-alignment: global;
     }
     [int_wetland = 'bog'],
+    [int_wetland = 'fen'],
     [int_wetland = 'string_bog'] {
       polygon-pattern-file: url('symbols/wetland_bog.png');
       polygon-pattern-alignment: global;
diff --git a/project.mml b/project.mml
index 33e487d..0a3a3dc 100644
--- a/project.mml
+++ b/project.mml
@@ -137,11 +137,11 @@ Layer:
                                                     'hospital', 'kindergarten', 'grave_yard', 'prison', 'place_of_worship', 'clinic') 
                                                     THEN amenity ELSE NULL END)) AS amenity,
               ('landuse_' || (CASE WHEN landuse IN ('quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'meadow', 'grass', 
-                                                    'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'greenhouse_horticulture', 
+                                                    'allotments', 'forest', 'farmyard', 'farmland', 'greenhouse_horticulture', 
                                                     'recreation_ground', 'village_green', 'retail', 'industrial', 'railway', 'commercial', 
-                                                    'brownfield', 'landfill', 'construction') THEN landuse ELSE NULL END)) AS landuse,
+                                                    'brownfield', 'landfill', 'construction', 'plant_nursery') THEN landuse ELSE NULL END)) AS landuse,
               ('leisure_' || (CASE WHEN leisure IN ('swimming_pool', 'playground', 'park', 'recreation_ground', 'common', 'garden', 
-                                                    'golf_course', 'miniature_golf', 'picnic_table', 'sports_centre', 'stadium', 'pitch', 
+                                                    'golf_course', 'miniature_golf', 'picnic_table', 'fitness_centre', 'sports_centre', 'stadium', 'pitch', 
                                                     'track', 'dog_park') THEN leisure ELSE NULL END)) AS leisure,
               ('military_' || (CASE WHEN military IN ('danger_area') THEN military ELSE NULL END)) AS military,
               ('natural_' || (CASE WHEN "natural" IN ('beach', 'shoal', 'heath', 'grassland', 'wood', 'sand', 'scree', 'shingle', 'bare_rock', 'scrub') THEN "natural" ELSE NULL END)) AS "natural",
@@ -241,7 +241,7 @@ Layer:
             way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels
           FROM planet_osm_polygon
           WHERE
-            (waterway IN ('dock', 'riverbank', 'canal')
+            (waterway IN ('dock', 'riverbank')
               OR landuse IN ('reservoir', 'basin')
               OR "natural" IN ('water', 'glacier'))
             AND building IS NULL
@@ -1124,7 +1124,7 @@ Layer:
           ORDER BY z_order
         ) AS waterway_bridges
     properties:
-      minzoom: 15
+      minzoom: 12
   - id: bridges
     name: bridges
     class: bridges-fill bridges-casing access
@@ -1621,7 +1621,7 @@ Layer:
                                                   'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 
                                                   'fast_food', 'telephone', 'emergency_phone', 'taxi', 'theatre', 'toilets', 'drinking_water', 
                                                   'prison', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility',
-                                                  'charging_station') THEN amenity ELSE NULL END,
+                                                  'charging_station', 'arts_centre') THEN amenity ELSE NULL END,
               'shop_' || CASE WHEN shop IN ('supermarket', 'bag', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 
                                             'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', 
                                             'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 
@@ -1657,7 +1657,7 @@ Layer:
                            'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 
                            'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 'taxi', 
                            'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', 'veterinary',
-                           'social_facility', 'charging_station')
+                           'social_facility', 'charging_station', 'arts_centre')
             OR shop IS NOT NULL -- skip checking a huge list and use a null check
             OR leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table')
             OR man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill', 'obelisk')
@@ -1690,7 +1690,7 @@ Layer:
                                                   'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', 
                                                   'fast_food', 'telephone', 'emergency_phone', 'taxi', 'theatre', 'toilets', 'drinking_water', 
                                                   'prison', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility',
-                                                  'charging_station') THEN amenity ELSE NULL END,
+                                                  'charging_station', 'arts_centre') THEN amenity ELSE NULL END,
               'shop_' || CASE WHEN shop IN ('supermarket', 'bag', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 
                                             'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', 'garden_centre', 
                                             'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 
@@ -1737,7 +1737,7 @@ Layer:
                            'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', 
                            'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', 
                            'taxi', 'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', 
-                           'veterinary', 'social_facility', 'charging_station')
+                           'veterinary', 'social_facility', 'charging_station', 'arts_centre')
             OR shop IS NOT NULL -- skip checking a huge list and use a null check
             OR leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway',
                            'dog_park')
@@ -1953,7 +1953,7 @@ Layer:
             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,
+            construction,
             name,
             CASE
               WHEN oneway IN ('yes', '-1') THEN oneway
@@ -2071,7 +2071,7 @@ Layer:
                                                   'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', 
                                                   'atm', 'bicycle_rental', 'car_rental', 'car_wash', 'post_box', 'post_office',
                                                   'recycling', 'telephone', 'emergency_phone', 'toilets', 'taxi', 'drinking_water', 'hunting_stand', 
-                                                  'nightclub', 'veterinary', 'social_facility', 'charging_station') THEN amenity ELSE NULL END,
+                                                  'nightclub', 'veterinary', 'social_facility', 'charging_station', 'arts_centre') THEN amenity ELSE NULL END,
               'shop_' || CASE WHEN shop IN ('supermarket', 'bag', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 
                                             'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', 'garden_centre', 
                                             'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 
@@ -2081,14 +2081,14 @@ Layer:
                                             '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', 
+              'leisure_' || CASE WHEN leisure IN ('swimming_pool', 'water_park', 'miniature_golf', 'golf_course', 'fitness_centre', 'sports_centre', 'stadium', 'track', 
                                                   'pitch', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', 'marina', 
                                                   'picnic_table', 'dog_park') THEN leisure ELSE NULL END,
               'power_' || CASE WHEN power IN ('plant', 'station', 'generator', 'sub_station', 'substation') THEN power ELSE NULL END,
               'landuse_' || CASE WHEN landuse IN ('reservoir', 'basin', 'recreation_ground', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 
-                                                  'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 
+                                                  'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', 
                                                   'greenhouse_horticulture', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 
-                                                  'construction', 'military') THEN landuse ELSE NULL END,
+                                                  'construction', 'military', 'plant_nursery') THEN landuse ELSE NULL END,
               'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'pier', 'breakwater', 'groyne', 'obelisk') THEN man_made ELSE NULL END,
               'natural_' || CASE WHEN "natural" IN ('wood', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 
                                                     'grassland', 'scrub', 'beach', 'shoal', 'reef', 'glacier') THEN "natural" ELSE NULL END,
@@ -2199,7 +2199,7 @@ Layer:
                                                       'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental',
                                                       'car_wash', 'post_box', 'post_office', 'recycling', 'telephone', 'emergency_phone', 'toilets', 'taxi', 
                                                       'drinking_water', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility',
-                                                      'charging_station') THEN amenity ELSE NULL END,
+                                                      'charging_station', 'arts_centre') THEN amenity ELSE NULL END,
                   'shop_' || CASE WHEN shop IN ('supermarket', 'bag','bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', 
                                                 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', 'garden_centre', 'hairdresser', 
                                                 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', 
@@ -2208,14 +2208,14 @@ Layer:
                                                 'greengrocer', 'farm', 'stationery', 'laundry', 'dry_cleaning', 'beverages', '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',  
+                  'leisure_' || CASE WHEN leisure IN ('swimming_pool', 'water_park', 'miniature_golf', 'golf_course', 'fitness_centre', 'sports_centre', 'stadium', 'track',  
                                                       'pitch','playground', 'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', 'marina',  
                                                       'slipway', 'picnic_table', 'dog_park') THEN leisure ELSE NULL END,
                   'power_' || CASE WHEN power IN ('plant', 'station', 'generator', 'sub_station', 'substation') THEN power ELSE NULL END,
                   'landuse_' || CASE WHEN landuse IN ('reservoir', 'basin', 'recreation_ground', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 
-                                                      'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 
+                                                      'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', 
                                                       'greenhouse_horticulture', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 
-                                                      'construction', 'military') THEN landuse ELSE NULL END,
+                                                      'construction', 'military', 'plant_nursery') THEN landuse ELSE NULL END,
                   'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'obelisk') THEN man_made ELSE NULL END,
                   'natural_' || CASE WHEN "natural" IN ('wood', 'peak', 'volcano', 'saddle', 'cave_entrance', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring', 
                                                         'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier', 'tree') 
@@ -2254,8 +2254,8 @@ Layer:
                   OR shop IS NOT NULL
                   OR leisure IS NOT NULL
                   OR landuse IN ('reservoir', 'basin', 'recreation_ground', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 
-                                 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'greenhouse_horticulture', 
-                                 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military')
+                                 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', 'greenhouse_horticulture', 
+                                 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military', 'plant_nursery')
                   OR man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'cross', 'obelisk')
                   OR "natural" IS NOT NULL
                   OR place IN ('island', 'islet')
diff --git a/roads.mss b/roads.mss
index 6e638be..08d6dd8 100644
--- a/roads.mss
+++ b/roads.mss
@@ -267,9 +267,14 @@
 @track-oneway-arrow-color:        darken(@track-fill, 15%);
 @bridleway-oneway-arrow-color:    darken(@track-fill, 10%);
 
- at shield-size: 9;
- at shield-size-z16: 10;
- at shield-size-z18: 11;
+// Shield’s line wrap is based on OpenStreetMap data and not on line-wrap-width,
+// but lines are typically rather short, so we use narrow line spacing.
+ at shield-size: 10;
+ at shield-line-spacing: -1.50; // -0.15 em
+ at shield-size-z16: 11;
+ at shield-line-spacing-z16: -1.65; // -0.15 em
+ at shield-size-z18: 12;
+ at shield-line-spacing-z18: -1.80; // -0.15 em
 @shield-spacing: 760;
 @shield-min-distance: 40;
 @shield-font: @book-fonts;
@@ -2389,27 +2394,26 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
 #junctions {
   [highway = 'motorway_junction'] {
     [zoom >= 11] {
-      ref/text-name: "[ref]";
-      ref/text-size: 10;
-      ref/text-fill: @junction-text-color;
-      ref/text-min-distance: 2;
-      ref/text-face-name: @oblique-fonts;
-      ref/text-halo-radius: @standard-halo-radius * 1.5;
+      text-name: "[ref]";
+      text-size: 10;
+      text-fill: @junction-text-color;
+      text-min-distance: 2;
+      text-face-name: @oblique-fonts;
+      text-halo-radius: @standard-halo-radius;
+      text-wrap-character: ";";
+      text-wrap-width: 2; // effectively break after every wrap character
+      text-line-spacing: -1.5; // -0.15 em
       [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: @standard-halo-radius;
-        name/text-wrap-character: ";";
-        name/text-wrap-width: 2;
-        name/text-min-distance: 2;
+        ["name" != null]["ref" = null] {
+          text-name: "[name]";
+        }
+        ["name" != null]["ref" != null] {
+          text-name: [name] + "\n" + [ref];
+        }
       }
       [zoom >= 15] {
-        ref/text-size: 12;
-        name/text-size: 11;
-        name/text-dy: -10;
+        text-size: 11;
+        text-line-spacing: -1.65; // -0.15 em
       }
     }
   }
@@ -2423,10 +2427,12 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-face-name: @book-fonts;
       text-halo-radius: @standard-halo-radius;
       text-halo-fill: @standard-halo-fill;
-      text-wrap-width: 30;
+      text-wrap-width: 30;  // 3.0 em
+      text-line-spacing: -1.5; // -0.15 em
       text-min-distance: 2;
       [zoom >= 17] {
         text-size: 11;
+        text-line-spacing: -1.65; // -0.15 em
         /* Offset name on traffic_signals on zoomlevels where they are displayed
         in order not to hide the text */
         [highway = 'traffic_signals'] {
@@ -2441,7 +2447,9 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
   [man_made = 'bridge'] {
     [zoom >= 12][way_pixels > 62.5] {
       text-name: "[name]";
-      text-size: 8;
+      text-size: 10;
+      text-wrap-width: 30; // 3 em
+      text-line-spacing: -1.2; // -0.15 em
       text-fill: black;
       text-face-name: @book-fonts;
       text-halo-radius: @standard-halo-radius;
@@ -2450,17 +2458,25 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-wrap-width: 30;
       text-placement: interior;
       [way_pixels > 250] {
-        text-size: 9;
+        text-size: 11;
+        text-wrap-width: 33; // 3 em
+        text-line-spacing: -1.35; // -0.15 em
       }
       [way_pixels > 1000] {
-        text-size: 11;
+        text-size: 12;
+        text-wrap-width: 36; // 3 em
+        text-line-spacing: -1.65; // -0.15 em
         text-halo-radius: @standard-halo-radius * 1.5;
       }
       [way_pixels > 4000] {
-        text-size: 12;
+        text-size: 13;
+        text-wrap-width: 39; // 3 em
+        text-line-spacing: -1.80; // -0.15 em
       }
       [way_pixels > 16000] {
-        text-size: 13;
+        text-size: 14;
+        text-wrap-width: 42; // 3 em
+        text-line-spacing: -1.95; // -0.15 em
         text-halo-radius: 2;
       }
     }
@@ -2589,6 +2605,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
   [highway = 'secondary'][zoom >= 12] {
     shield-name: "[refs]";
     shield-size: @shield-size;
+    shield-line-spacing: @shield-line-spacing;
     shield-placement: line;
     shield-spacing: @shield-spacing;
     shield-min-distance: @shield-min-distance;
@@ -2626,12 +2643,15 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
     [zoom >= 13] {
       shield-name: "[refs]";
       shield-size: @shield-size;
+      shield-line-spacing: @shield-line-spacing;
 
       [zoom >= 16] {
         shield-size: @shield-size-z16;
+        shield-line-spacing: @shield-line-spacing-z16;
       }
       [zoom >= 18] {
         shield-size: @shield-size-z18;
+        shield-line-spacing: @shield-line-spacing-z18;
       }
 
       shield-placement: line;
@@ -2741,7 +2761,10 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
 #roads-text-name {
   [highway = 'motorway'],
   [highway = 'trunk'],
-  [highway = 'primary'] {
+  [highway = 'primary'],
+  [highway = 'construction'][construction = 'motorway'],
+  [highway = 'construction'][construction = 'trunk'],
+  [highway = 'construction'][construction = 'primary'] {
     [zoom >= 13] {
       text-name: "[name]";
       text-size: 8;
@@ -2770,7 +2793,8 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-size: 12;
     }
   }
-  [highway = 'secondary'] {
+  [highway = 'secondary'],
+  [highway = 'construction'][construction = 'secondary'] {
     [zoom >= 13] {
       text-name: "[name]";
       text-size: 8;
@@ -2796,7 +2820,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
     }
   }
   [highway = 'tertiary'],
-  [highway = 'tertiary_link'] {
+  [highway = 'construction'][construction = 'tertiary'] {
     [zoom >= 14] {
       text-name: "[name]";
       text-size: 9;
@@ -2815,29 +2839,32 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
       text-size: 12;
     }
   }
-  [highway = 'construction'] {
-    [int_construction_minor = 'no'][zoom >= 13],
-    [int_construction_minor = 'yes'][zoom >= 14] {
-      text-name: "[name]";
-      text-size: 9;
-      text-fill: black;
-      text-spacing: 300;
-      text-clip: false;
-      text-placement: line;
-      text-halo-radius: @standard-halo-radius;
-      text-halo-fill: @standard-halo-fill;
-      text-face-name: @book-fonts;
-      [zoom >= 17] {
-        text-size: 11;
-      }
-      [zoom >= 19] {
-        text-size: 12;
-      }
+  [highway = 'construction'][construction = null][zoom >= 16] {
+    text-name: "[name]";
+    text-size: 9;
+    text-fill: black;
+    text-spacing: 300;
+    text-clip: false;
+    text-placement: line;
+    text-halo-radius: @standard-halo-radius;
+    text-halo-fill: @standard-halo-fill;
+    text-face-name: @book-fonts;
+
+    [zoom >= 17] {
+      text-size: 11;
+      text-spacing: 400;
+    }
+    [zoom >= 19] {
+      text-size: 12;
+      text-spacing: 400;
     }
   }
   [highway = 'residential'],
   [highway = 'unclassified'],
-  [highway = 'road'] {
+  [highway = 'road'],
+  [highway = 'construction'][construction = 'residential'],
+  [highway = 'construction'][construction = 'unclassified'],
+  [highway = 'construction'][construction = 'road'] {
     [zoom >= 15] {
       text-name: "[name]";
       text-size: 8;
@@ -2863,7 +2890,9 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
   }
 
   [highway = 'raceway'],
-  [highway = 'service'] {
+  [highway = 'service'],
+  [highway = 'construction'][construction = 'raceway'],
+  [highway = 'construction'][construction = 'service'] {
     [zoom >= 16] {
       text-name: "[name]";
       text-size: 9;
@@ -2882,7 +2911,9 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
   }
 
   [highway = 'living_street'],
-  [highway = 'pedestrian'] {
+  [highway = 'pedestrian'],
+  [highway = 'construction'][construction = 'living_street'],
+  [highway = 'construction'][construction = 'pedestrian'] {
     [zoom >= 15] {
       text-name: "[name]";
       text-size: 8;
@@ -2910,19 +2941,12 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
 #roads-area-text-name {
   [way_pixels > 3000],
   [zoom >= 17] {
-    [zoom >= 15] {
-      text-name: "[name]";
-      text-size: 8;
-      text-face-name: @book-fonts;
-      text-placement: interior;
-      text-wrap-width: 30;
-    }
-    [zoom >= 16] {
-      text-size: 9;
-    }
-    [zoom >= 17] {
-      text-size: 11;
-    }
+    text-name: "[name]";
+    text-size: 11;
+    text-face-name: @book-fonts;
+    text-placement: interior;
+    text-wrap-width: 30; // 2.7 em
+    text-line-spacing: -1.7; // -0.15 em
   }
 }
 
diff --git a/symbols/generating_patterns/plant_nursery.md b/symbols/generating_patterns/plant_nursery.md
new file mode 100644
index 0000000..8c2cd34
--- /dev/null
+++ b/symbols/generating_patterns/plant_nursery.md
@@ -0,0 +1,5 @@
+This pattern is generated by jsdotpattern script through this link:
+
+http://www.imagico.de/map/jsdotpattern.php#x,128,jdp32360;gv,6,32,32;rd,1,0,0,pixel,0.125,4,4,0,jdp23814,749d6c,aedea3;
+
+Since exported SVG file is not properly handled by Mapnik, it was converted to PNG file with alpha channel.
diff --git a/symbols/generating_patterns/plant_nursery.svg b/symbols/generating_patterns/plant_nursery.svg
new file mode 100644
index 0000000..27491ca
--- /dev/null
+++ b/symbols/generating_patterns/plant_nursery.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="Svg" width="128" height="128">
+				<defs>
+					<clipPath id="clipPath">
+						
+					<rect x="0" y="0" width="128" height="128"/></clipPath>
+				<g style="" fill="#749d6c" transform="matrix(0.125,0,0,0.125,-0.5,-0.5)" id="gSixn3hf1k56"><g><path d="m 4,4 8,0 0,8 -8,0 z"/></g></g></defs>
+				<g id="Pattern" style="clip-path: url(#clipPath);">
+				<use a0:href="#gSixn3hf1k56" xmlns:a0="http://www.w3.org/1999/xlink" x="86" y="87"/><use a1:href="#gSixn3hf1k56" xmlns:a1="http://www.w3.org/1999/xlink" x="74" y="19"/><use a2:href="#gSixn3hf1k56" xmlns:a2="http://www.w3.org/1999/xlink" x="74" y="147"/><use a3:href="#gSixn3hf1k56" xmlns:a3="http://www.w3.org/1999/xlink" x="44" y="19"/><use a4:href="#gSixn3hf1k56" xmlns:a4="http://www.w3.org/1999/xlink" x="44" y="147"/><use a5:href="#gSixn3hf1k56" xmlns:a5="http://www.w3.org/1999/xlin [...]
+			<desc>Created with Snap</desc></svg>
\ No newline at end of file
diff --git a/symbols/plant_nursery.png b/symbols/plant_nursery.png
new file mode 100644
index 0000000..90b46aa
Binary files /dev/null and b/symbols/plant_nursery.png differ
diff --git a/water.mss b/water.mss
index f4f2d6c..c3b26fe 100644
--- a/water.mss
+++ b/water.mss
@@ -2,13 +2,6 @@
 @glacier: #ddecec;
 @glacier-line: #9cf;
 
- at water-font-size: 10;
- at water-font-size-big: 12;
- at water-font-size-bigger: 15;
- at water-wrap-width-size: 25;
- at water-wrap-width-size-big: 35;
- at water-wrap-width-size-bigger: 45;
-
 #water-areas {
   [natural = 'glacier']::natural {
     [zoom >= 6] {
@@ -25,8 +18,7 @@
     }
   }
 
-  [waterway = 'dock'],
-  [waterway = 'canal'] {
+  [waterway = 'dock'] {
     [zoom >= 9]::waterway {
       polygon-fill: @water-color;
       [way_pixels >= 4] {
@@ -292,15 +284,23 @@
     [zoom >= 10][way_pixels > 3000],
     [zoom >= 17] {
       text-name: "[name]";
-      text-size: @water-font-size;
-      text-wrap-width: @water-wrap-width-size;
+      text-size: 10;
+      text-wrap-width: 25; // 2.5 em
+      text-line-spacing: -1.5; // -0.15 em
       [way_pixels > 12000] {
-        text-size: @water-font-size-big;
-        text-wrap-width: @water-wrap-width-size-big;
+        text-size: 12;
+        text-wrap-width: 37; // 3.1 em
+        text-line-spacing: -1.6; // -0.13 em
       }
       [way_pixels > 48000] {
-        text-size: @water-font-size-bigger;
-        text-wrap-width: @water-wrap-width-size-bigger;
+        text-size: 15;
+        text-wrap-width: 59; // 3.9 em
+        text-line-spacing: -1.5; // -0.10 em
+      }
+      [way_pixels > 192000] {
+        text-size: 19;
+        text-wrap-width: 95; // 5.0 em
+        text-line-spacing: -0.95; // -0.05 em
       }
       text-fill: @water-text;
       text-face-name: @oblique-fonts;

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