[openstreetmap-carto] 01/02: Imported Upstream version 2.13.0
Christopher Baines
cbaines-guest at moszumanska.debian.org
Thu Apr 17 13:17:16 UTC 2014
This is an automated email from the git hooks/post-receive script.
cbaines-guest pushed a commit to branch master
in repository openstreetmap-carto.
commit e5acdb08d6a5d251ada74374a0bbfdda115b4c20
Author: Christopher Baines <mail at cbaines.net>
Date: Thu Apr 17 14:15:25 2014 +0100
Imported Upstream version 2.13.0
---
.gitignore | 4 +
CARTOGRAPHY.md | 37 +
LICENSE.txt | 15 +
README.md | 153 ++
TODO.md | 28 +
addressing.mss | 49 +
admin.mss | 117 ++
aerialways.mss | 20 +
amenity-points.mss | 1148 +++++++++++++
amenity-symbols.mss | 112 ++
buildings.mss | 52 +
citywalls.mss | 24 +
ferry-routes.mss | 11 +
get-shapefiles.sh | 65 +
landcover.mss | 436 +++++
openstreetmap-carto.style | 226 +++
placenames.mss | 142 ++
power.mss | 34 +
project.mml | 1757 +++++++++++++++++++
roads.mss | 2449 +++++++++++++++++++++++++++
shapefiles.mss | 37 +
stations.mss | 54 +
style.mss | 12 +
symbols/aerodrome.p.16.png | Bin 0 -> 377 bytes
symbols/aerodrome.png | Bin 0 -> 888 bytes
symbols/aiga_parking1.png | Bin 0 -> 1542 bytes
symbols/allotments.png | Bin 0 -> 911 bytes
symbols/alpinehut.p.16.png | Bin 0 -> 565 bytes
symbols/amenity_court.p.20.png | Bin 0 -> 802 bytes
symbols/amenity_prison.p.20.png | Bin 0 -> 417 bytes
symbols/arrow.png | Bin 0 -> 320 bytes
symbols/arrow_back.png | Bin 0 -> 353 bytes
symbols/atm.png | Bin 0 -> 222 bytes
symbols/atm2.p.16.png | Bin 0 -> 437 bytes
symbols/bandb.p.20.png | Bin 0 -> 398 bytes
symbols/bank2.p.16.png | Bin 0 -> 410 bytes
symbols/bar.p.20.png | Bin 0 -> 459 bytes
symbols/beach.png | Bin 0 -> 162 bytes
symbols/biergarten.p.16.png | Bin 0 -> 501 bytes
symbols/bollard.png | Bin 0 -> 104 bytes
symbols/buddhist.png | Bin 0 -> 406 bytes
symbols/bus_station.n.16.png | Bin 0 -> 552 bytes
symbols/bus_stop.p.12.png | Bin 0 -> 353 bytes
symbols/bus_stop.png | Bin 0 -> 904 bytes
symbols/bus_stop_small.png | Bin 0 -> 95 bytes
symbols/cable_car.png | Bin 0 -> 229 bytes
symbols/cafe.p.16.png | Bin 0 -> 361 bytes
symbols/camping.n.16.png | Bin 0 -> 517 bytes
symbols/car_share.p.16.png | Bin 0 -> 489 bytes
symbols/caravan_park.p.24.png | Bin 0 -> 486 bytes
symbols/cemetery_jewish.18.png | Bin 0 -> 400 bytes
symbols/chair_lift.png | Bin 0 -> 230 bytes
symbols/chalet.p.16.png | Bin 0 -> 440 bytes
symbols/christian3.p.14.png | Bin 0 -> 252 bytes
symbols/cinema.p.24.png | Bin 0 -> 791 bytes
symbols/cliff.png | Bin 0 -> 26214 bytes
symbols/cliff2.png | Bin 0 -> 26214 bytes
symbols/communications.p.20.png | Bin 0 -> 445 bytes
symbols/danger.png | Bin 0 -> 146 bytes
symbols/department_store.p.16.png | Bin 0 -> 993 bytes
symbols/embassy.png | Bin 0 -> 2893 bytes
symbols/fast_food.png | Bin 0 -> 3091 bytes
symbols/firestation.p.16.png | Bin 0 -> 479 bytes
symbols/florist.p.16.png | Bin 0 -> 422 bytes
symbols/food_bar.p.16.png | Bin 0 -> 376 bytes
symbols/food_drinkingtap.p.20.png | Bin 0 -> 386 bytes
symbols/forest.png | Bin 0 -> 190 bytes
symbols/fuel.p.16.png | Bin 0 -> 306 bytes
symbols/gate.png | Bin 0 -> 106 bytes
symbols/gate2.png | Bin 0 -> 111 bytes
symbols/glacier.png | Bin 0 -> 122 bytes
symbols/glacier2.png | Bin 0 -> 199 bytes
symbols/grave_yard.png | Bin 0 -> 291 bytes
symbols/grave_yard_generic.png | Bin 0 -> 1013 bytes
symbols/guest_house.p.16.png | Bin 0 -> 503 bytes
symbols/halt.png | Bin 0 -> 94 bytes
symbols/helipad.p.16.png | Bin 0 -> 519 bytes
symbols/hindu.png | Bin 0 -> 464 bytes
symbols/hospital.p.16.png | Bin 0 -> 557 bytes
symbols/hospital.png | Bin 0 -> 491 bytes
symbols/hostel.p.20.png | Bin 0 -> 539 bytes
symbols/hotel2.p.20.png | Bin 0 -> 368 bytes
symbols/information.p.16.png | Bin 0 -> 294 bytes
symbols/islamic3.p.16.png | Bin 0 -> 387 bytes
symbols/jewish3.p.16.png | Bin 0 -> 397 bytes
symbols/landfill.png | Bin 0 -> 122 bytes
symbols/level_crossing.png | Bin 0 -> 124 bytes
symbols/level_crossing2.png | Bin 0 -> 154 bytes
symbols/library.p.20.png | Bin 0 -> 715 bytes
symbols/liftgate.png | Bin 0 -> 166 bytes
symbols/lighthouse.p.20.png | Bin 0 -> 487 bytes
symbols/lock_gate.png | Bin 0 -> 172 bytes
symbols/london-tube-24.png | Bin 0 -> 621 bytes
symbols/marsh.png | Bin 0 -> 621 bytes
symbols/memorial.png | Bin 0 -> 3055 bytes
symbols/military_red_hatch.png | Bin 0 -> 132 bytes
symbols/mini_round.png | Bin 0 -> 26852 bytes
symbols/mosque.png | Bin 0 -> 1023 bytes
symbols/mot_shield1.png | Bin 0 -> 412 bytes
symbols/mot_shield2.png | Bin 0 -> 439 bytes
symbols/mot_shield3.png | Bin 0 -> 441 bytes
symbols/mot_shield4.png | Bin 0 -> 445 bytes
symbols/mot_shield5.png | Bin 0 -> 446 bytes
symbols/mot_shield6.png | Bin 0 -> 447 bytes
symbols/mot_shield7.png | Bin 0 -> 447 bytes
symbols/mot_shield8.png | Bin 0 -> 450 bytes
symbols/motel.p.20.png | Bin 0 -> 657 bytes
symbols/motorway_shield1.png | Bin 0 -> 176 bytes
symbols/motorway_shield2.png | Bin 0 -> 256 bytes
symbols/motorway_shield3.png | Bin 0 -> 251 bytes
symbols/motorway_shield4.png | Bin 0 -> 239 bytes
symbols/motorway_shield5.png | Bin 0 -> 205 bytes
symbols/motorway_shield6.png | Bin 0 -> 207 bytes
symbols/mud.png | Bin 0 -> 104 bytes
symbols/museum.p.16.png | Bin 0 -> 311 bytes
symbols/nature_reserve.png | Bin 0 -> 141 bytes
symbols/nature_reserve2.png | Bin 0 -> 170 bytes
symbols/nature_reserve2T.png | Bin 0 -> 246 bytes
symbols/nature_reserve5.png | Bin 0 -> 341 bytes
symbols/nature_reserve6.png | Bin 0 -> 365 bytes
symbols/nature_reserveT.png | Bin 0 -> 209 bytes
symbols/orchard.png | Bin 0 -> 110 bytes
symbols/parking.p.16.png | Bin 0 -> 312 bytes
symbols/parking.png | Bin 0 -> 409 bytes
symbols/parking_private.p.16.png | Bin 0 -> 377 bytes
symbols/peak.png | Bin 0 -> 119 bytes
symbols/pharmacy.p.16.png | Bin 0 -> 341 bytes
symbols/picnic.p.16.png | Bin 0 -> 409 bytes
symbols/pint.png | Bin 0 -> 486 bytes
symbols/place_of_worship.png | Bin 0 -> 209 bytes
symbols/place_of_worship3.p.16.png | Bin 0 -> 190 bytes
symbols/place_of_worship3.png | Bin 0 -> 103 bytes
symbols/playground.p.20.png | Bin 0 -> 575 bytes
symbols/poi_cave.p.16.png | Bin 0 -> 270 bytes
symbols/police.p.16.png | Bin 0 -> 657 bytes
symbols/post_box.p.16.png | Bin 0 -> 367 bytes
symbols/post_box.png | Bin 0 -> 337 bytes
symbols/post_office.p.16.png | Bin 0 -> 494 bytes
symbols/post_office.png | Bin 0 -> 413 bytes
symbols/postoffice.png | Bin 0 -> 297 bytes
symbols/power_line.png | Bin 0 -> 131 bytes
symbols/power_pole.png | Bin 0 -> 94 bytes
symbols/power_tower.png | Bin 0 -> 115 bytes
symbols/power_tower_3x3.png | Bin 0 -> 933 bytes
symbols/power_tower_5x5.png | Bin 0 -> 947 bytes
symbols/power_wind.png | Bin 0 -> 638 bytes
symbols/pri_shield1.png | Bin 0 -> 422 bytes
symbols/pri_shield2.png | Bin 0 -> 431 bytes
symbols/pri_shield3.png | Bin 0 -> 433 bytes
symbols/pri_shield4.png | Bin 0 -> 437 bytes
symbols/pri_shield5.png | Bin 0 -> 439 bytes
symbols/pri_shield6.png | Bin 0 -> 440 bytes
symbols/pri_shield7.png | Bin 0 -> 440 bytes
symbols/pri_shield8.png | Bin 0 -> 442 bytes
symbols/primary_shield1.png | Bin 0 -> 175 bytes
symbols/primary_shield2.png | Bin 0 -> 181 bytes
symbols/primary_shield3.png | Bin 0 -> 181 bytes
symbols/primary_shield4.png | Bin 0 -> 197 bytes
symbols/primary_shield5.png | Bin 0 -> 197 bytes
symbols/primary_shield6.png | Bin 0 -> 199 bytes
symbols/primary_shield7.png | Bin 0 -> 199 bytes
symbols/primary_shield8.png | Bin 0 -> 207 bytes
symbols/pub.p.16.png | Bin 0 -> 433 bytes
symbols/pub.png | Bin 0 -> 307 bytes
symbols/quarry.png | Bin 0 -> 131 bytes
symbols/quarry2.png | Bin 0 -> 139 bytes
symbols/recycle.png | Bin 0 -> 1118 bytes
symbols/recycling.p.16.png | Bin 0 -> 562 bytes
symbols/recycling.png | Bin 0 -> 645 bytes
symbols/rental_bicycle.p.20.png | Bin 0 -> 802 bytes
symbols/restaurant.p.16.png | Bin 0 -> 502 bytes
symbols/school.png | Bin 0 -> 3136 bytes
symbols/scrub.png | Bin 0 -> 166 bytes
symbols/sec_shield1.png | Bin 0 -> 422 bytes
symbols/sec_shield2.png | Bin 0 -> 431 bytes
symbols/sec_shield3.png | Bin 0 -> 433 bytes
symbols/sec_shield4.png | Bin 0 -> 437 bytes
symbols/sec_shield5.png | Bin 0 -> 439 bytes
symbols/sec_shield6.png | Bin 0 -> 440 bytes
symbols/sec_shield7.png | Bin 0 -> 440 bytes
symbols/sec_shield8.png | Bin 0 -> 442 bytes
symbols/secondary_shield1.png | Bin 0 -> 168 bytes
symbols/secondary_shield2.png | Bin 0 -> 174 bytes
symbols/secondary_shield3.png | Bin 0 -> 176 bytes
symbols/secondary_shield4.png | Bin 0 -> 191 bytes
symbols/secondary_shield5.png | Bin 0 -> 194 bytes
symbols/secondary_shield6.png | Bin 0 -> 196 bytes
symbols/secondary_shield7.png | Bin 0 -> 195 bytes
symbols/secondary_shield8.png | Bin 0 -> 202 bytes
symbols/shelter2.p.16.png | Bin 0 -> 571 bytes
symbols/shinto.png | Bin 0 -> 413 bytes
symbols/shop_bakery.p.16.png | Bin 0 -> 441 bytes
symbols/shop_butcher.png | Bin 0 -> 780 bytes
symbols/shop_clothes.p.16.png | Bin 0 -> 312 bytes
symbols/shop_convenience.p.16.png | Bin 0 -> 373 bytes
symbols/shop_diy.p.16.png | Bin 0 -> 383 bytes
symbols/shop_hairdresser.p.16.png | Bin 0 -> 472 bytes
symbols/shop_supermarket.p.16.png | Bin 0 -> 425 bytes
symbols/shopping_bicycle.p.16.png | Bin 0 -> 522 bytes
symbols/shopping_car.p.16.png | Bin 0 -> 438 bytes
symbols/shopping_car_repair.p.16.png | Bin 0 -> 457 bytes
symbols/sikh.png | Bin 0 -> 1297 bytes
symbols/sikh3.p.16.png | Bin 0 -> 400 bytes
symbols/sosphone.png | Bin 0 -> 508 bytes
symbols/spring.png | Bin 0 -> 108 bytes
symbols/station.png | Bin 0 -> 95 bytes
symbols/station_disused.png | Bin 0 -> 95 bytes
symbols/station_small.png | Bin 0 -> 95 bytes
symbols/synagogue.png | Bin 0 -> 376 bytes
symbols/taoist.png | Bin 0 -> 536 bytes
symbols/telephone.p.16.png | Bin 0 -> 444 bytes
symbols/ter_shield1.png | Bin 0 -> 422 bytes
symbols/ter_shield2.png | Bin 0 -> 431 bytes
symbols/ter_shield3.png | Bin 0 -> 433 bytes
symbols/ter_shield4.png | Bin 0 -> 437 bytes
symbols/ter_shield5.png | Bin 0 -> 439 bytes
symbols/ter_shield6.png | Bin 0 -> 440 bytes
symbols/ter_shield7.png | Bin 0 -> 440 bytes
symbols/ter_shield8.png | Bin 0 -> 442 bytes
symbols/tertiary_shield1.png | Bin 0 -> 176 bytes
symbols/tertiary_shield2.png | Bin 0 -> 182 bytes
symbols/tertiary_shield3.png | Bin 0 -> 184 bytes
symbols/tertiary_shield4.png | Bin 0 -> 204 bytes
symbols/tertiary_shield5.png | Bin 0 -> 204 bytes
symbols/tertiary_shield6.png | Bin 0 -> 206 bytes
symbols/tertiary_shield7.png | Bin 0 -> 206 bytes
symbols/tertiary_shield8.png | Bin 0 -> 214 bytes
symbols/theatre.p.20.png | Bin 0 -> 785 bytes
symbols/toilets.p.20.png | Bin 0 -> 586 bytes
symbols/tourist_archaeological2.glow.24.png | Bin 0 -> 1134 bytes
symbols/tourist_memorial.p.20.png | Bin 0 -> 533 bytes
symbols/tower.png | Bin 0 -> 327 bytes
symbols/tower_water.p.20.png | Bin 0 -> 477 bytes
symbols/traffic_light.png | Bin 0 -> 1169 bytes
symbols/transport_ford.p.16.png | Bin 0 -> 490 bytes
symbols/transport_slipway.p.20.png | Bin 0 -> 604 bytes
symbols/tree.png | Bin 0 -> 102 bytes
symbols/tree2.png | Bin 0 -> 120 bytes
symbols/tru_shield1.png | Bin 0 -> 422 bytes
symbols/tru_shield2.png | Bin 0 -> 431 bytes
symbols/tru_shield3.png | Bin 0 -> 433 bytes
symbols/tru_shield4.png | Bin 0 -> 437 bytes
symbols/tru_shield5.png | Bin 0 -> 441 bytes
symbols/tru_shield6.png | Bin 0 -> 440 bytes
symbols/tru_shield7.png | Bin 0 -> 440 bytes
symbols/tru_shield8.png | Bin 0 -> 442 bytes
symbols/trunk_shield1.png | Bin 0 -> 175 bytes
symbols/trunk_shield2.png | Bin 0 -> 181 bytes
symbols/trunk_shield3.png | Bin 0 -> 184 bytes
symbols/trunk_shield4.png | Bin 0 -> 202 bytes
symbols/trunk_shield5.png | Bin 0 -> 202 bytes
symbols/trunk_shield6.png | Bin 0 -> 205 bytes
symbols/trunk_shield7.png | Bin 0 -> 204 bytes
symbols/trunk_shield8.png | Bin 0 -> 212 bytes
symbols/view_point.p.16.png | Bin 0 -> 636 bytes
symbols/vineyard.png | Bin 0 -> 149 bytes
symbols/volcano.png | Bin 0 -> 264 bytes
symbols/walking.n.12.png | Bin 0 -> 372 bytes
symbols/windmill.png | Bin 0 -> 186 bytes
symbols/zoo.png | Bin 0 -> 129 bytes
water-features.mss | 72 +
water.mss | 313 ++++
262 files changed, 7367 insertions(+)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..59f0845
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.thumb.png
+layers/
+data/
+*.xml
diff --git a/CARTOGRAPHY.md b/CARTOGRAPHY.md
new file mode 100644
index 0000000..8b2b9a0
--- /dev/null
+++ b/CARTOGRAPHY.md
@@ -0,0 +1,37 @@
+# Cartography
+
+This is a style that serves multiple purposes, so here are some guidelines when considering cartographic changes.
+
+## Purposes
+
+There are multiple primary purposes of the map style, which pull in different directions
+
+* It's the primary feedback mechanism for mappers to validate their edits - so detail is useful
+* It's a major part of the impression visitors to osm.org receive - so clear design is useful
+* It's an examplar stylesheet for rendering OSM data - so easy customisation is useful
+
+It must always be borne in mind that a map style cannot show every detail of the OSM data, and in many cases it is more appropriate to show the detail in other, more specialist styles.
+
+## Colours
+
+Firstly, this is a map, not merely a colourful 2-dimensional visualisation of the database. Colours should be chosen based on their effectiveness and to make things look nice, not chosen for distinctiveness.
+
+The colour palette should be moving towards pastel/light/desaturated for background layers, midtones for streets and save highlights/bolds/saturated for points of interest. If colourspace can be left unused, that enables overlays for third parties.
+
+Colour definitions should, where useful, be put into variables at the top of the file, to enable easier customisation.
+
+## Data manipulation
+
+OpenStreetMap data has to be manipulated for rendering, but since this style is intended for use by mappers to check their work, it should minimise any distortions. For example, line-smoothing improves the look of railways and rivers, but introduces confusion for mappers. Post processing of geometries can improve the cartographic results, but breaks the cause-and-effect between editing the data and seeing the results.
+
+For similar reasons, use of external non-OSM data should be avoided.
+
+## Legibility
+
+I mean this not only in terms of font size, but in the ability of users to be able to "read" the map style. For example, a user might not be familiar with our exact road colours, but should be able to understand their relative importance via intensity of colour, width or other attributes. Important features should be more easily spotted and understood than less important information. It should be possible to gain an understanding of the majority of the map without using a legend.
+
+## The Mapper Feedback Loop
+
+If you thought that mappers were happy just to press "Save" on their editor, you'd be wrong. A key part of their feedback loop - to reassure them their work has been saved, and also to check that they have mapped 'correctly' - is waiting to see the results of their mapping on the main map layer on www.osm.org
+
+While this desire is in obvious conflict with the above comments on level of detail, it has a second impact on the map style. We need to, wherever possible, avoid accidentally encouraging mistakes - that is, avoiding the situation where a clearly misspelled or misused tag leads to the originally expected result. So `highway=mtorway` shouldn't show up as if it was `highway=motorway`, and so on. This has been a problem with "catch-all" rules in queries and filters, such as `where leisure i [...]
\ No newline at end of file
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..86cca83
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,15 @@
+OpenStreetMap Carto: A global map style for OpenStreetMap maps.
+
+Created by Andy Allan <andy at gravitystorm.co.uk> and contributors.
+Based on original cartography by Steve Chilton and others.
+
+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
+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
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ec1f1cc
--- /dev/null
+++ b/README.md
@@ -0,0 +1,153 @@
+# OpenStreetMap Carto
+
+An implemention of the standard OpenStreetMap mapnik style, in CartoCSS.
+
+These stylesheets can be used in your own cartography projects, and are designed to be easily
+customised. They work with [TileMill](http://www.mapbox.com/tilemill/) and also with the command-line [CartoCSS](https://github.com/mapbox/carto) processor.
+
+Since August 2013 these stylesheets are used on the OSMF tileservers (tile.openstreetmap.org), and
+are updated from each point release. They supersede the previous [XML-based stylesheets](https://trac.openstreetmap.org/browser/subversion/applications/rendering/mapnik)
+
+# Setup
+
+You need OpenStreetMap data loaded into a PostGIS database (see below for [dependencies](https://github.com/gravitystorm/openstreetmap-carto#dependencies)). These stylesheets currently work only with the osm2pgsql defaults (i.e. database name is 'gis', table names are 'planet_osm_point' etc).
+
+It's probably easiest to grab an PBF of OSM data from [metro.teczno.com](http://metro.teczno.com/) or [geofabrik](http://download.geofabrik.de/). Once you've set up your PostGIS database, import with osm2pgsql:
+
+```
+osm2pgsql -d gis ~/path/to/data.osm.pbf --style openstreetmap-carto.style
+```
+
+Additionally you need some shapefiles.
+
+## Scripted download
+
+To download the shapefiles you can run the following script from this directory. No further steps should be needed as the data has been processed and placed in the requisite directories.
+
+```
+sh get-shapefiles.sh
+```
+
+## Manual download
+
+You can also download them manually at the following paths:
+
+* `simplified-land-polygons.shp` [download](http://data.openstreetmapdata.com/simplified-land-polygons-complete-3857.zip)
+* `land-polygon.shp` [download](http://data.openstreetmapdata.com/land-polygons-split-3857.zip)
+* `builtup_area.shp` [download](http://planet.openstreetmap.org/historical-shapefiles/world_boundaries-spherical.tgz)
+* `ne_110m_admin_0_boundary_lines_land.shp` [download](http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_boundary_lines_land.zip)
+* `ne_10m_populated_places_fixed.shp` [download](http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip) (and see below)
+
+Put these shapefiles at path/to/opentreetmap-carto/data
+
+### Populated places shapefile
+
+The Natural Earth 2.0 populated places shapefile contains data that triggers a bug in mapnik. As
+a workaround we run the shapefile through ogr2ogr to clean up the data.
+
+```
+ogr2ogr ne_10m_populated_places_fixed.shp ne_10m_populated_places.shp
+```
+
+See https://github.com/mapnik/mapnik/issues/1605 for more details.
+
+## Fonts
+The stylesheet depends on a number of openly licensed fonts for support of all the languages found on the map. The package which supplies these fonts on Ubuntu is indicated.
+
+If a font is missing, it will skip to the next available font which contains those characters. If you are not concerned with a particular language, you do not need its fonts. DejaVu Sans and Unifont are the two required fonts, and included on most systems.
+
+### Global
+* DejaVu Sans, for most languages (``ttf-dejavu``)
+* Droid Sans Fallback, as a reasonable fallback (``fonts-droid``)
+* Unifont, as a last resort fallback (``ttf-unifont``)
+
+### Southeast Asia
+* Arundina Sans, for Thai (``fonts-sipa-arundina``)
+* Padauk, for Burmese (``fonts-sil-padauk``)
+* Khmer OS Metal Chrieng Regular, for Khmer (``fonts-khmeros``)
+
+## Dependencies
+
+* [TileMill](http://mapbox.com/tilemill) - This is a TileMill project you can copy (or symlink) directly into your Mapbox/project directory
+
+If you aren't using TileMill, you can compile the CartoCSS stylesheets into Mapnik XML using the command-line `carto` command.
+
+* [carto](https://github.com/mapbox/carto) >= 0.9.3 (we're using instances with cascading rules)
+* [mapnik](https://github.com/mapnik/mapnik/wiki/Mapnik-Installation) >= 2.1.0
+
+---
+
+* [osm2pgsql](http://wiki.openstreetmap.org/wiki/Osm2pgsql) to import your data into a PostGIS database
+* [PostgreSQL](http://www.postgresql.org/)
+* [PostGIS](http://postgis.org/)
+* [ogr2ogr](http://www.gdal.org/) command line GDAL utility for processing vector data. here we use it to work around a encoding bug in the Nautral Earth data.
+* curl, unzip for downloading and decompressing files
+* shapeindex (a companion utility to Mapnik found in the mapnik-utils package) for indexing downloaded shapefiles
+
+# Roadmap
+
+## Initial Release (v1.0.0, December 2012)
+
+This was a full re-implementation of the original OSM style, with only a few bugs discovered later. There's been
+no interest in creating further point releases in the v1.x series.
+
+## Easier to wrangle (v2.x)
+
+There are a number of refactorings that can be made to the style, either to fix glitches
+with the current style, or to leverage new features in carto / mapnik to simplify the stylesheets
+with only small changes to the output. It's also appropriate to pull out some of the 'old-skool'
+tagging methods that are now rarely used.
+
+Care is being taken to not get too clever with variables and expressions. While these often make
+it easier to customise, experience has shown that over-cleverness (e.g. [interpolated entities][cleverness])
+can discourage contributions.
+
+The end goal will be a style that hews close to the current look of the standard style, but is
+much more suitable for further development, and/or forking for third-parties to customise.
+
+## Tackle the backlog (v3.x)
+
+There are over [400 open requests][trac] on trac, some that have been open for years. These need
+reviewing and dividing into obvious fixes, or additional new features that need some cartographic
+judgement. The work done already in v1.0 and v2.0 will make it much easier to process these.
+
+# CartoCSS Style Guidelines
+
+* Always specify zoom levels as either >= or < . Don't use = or =< or >
+* Open curly braces on the same line, and close on an empty line.
+* One space before and after = etc
+* Two space indents. No tabs.
+* space after : but not before
+* Dashes, not underscores, in layer names
+* Name SQL subqueries after the layer name (but use underscores)
+* Avoid restating defaults, e.g. don't add `point-allow-overlap = false`
+* Avoid repeating the layer name for layers with mutiple attachments, i.e., prefer
+
+```
+#layer {
+ ::outline {
+ line-width: 6;
+ line-color: black;
+ }
+ ::inline {
+ line-width: 2;
+ line-color: white;
+ }
+}
+```
+instead of
+
+```
+#layer::outline {
+ line-width: 6;
+ line-color: black;
+}
+#layer::inline {
+ line-width: 2;
+ line-color: white;
+}
+```
+* Order the selectors in a style-sheet in rough order of importance (i.e., highway=primary, then highway=secondary) and beyond that, add layers that are rendered later (i.e., higher) lower in the file.
+
+[trac]: https://trac.openstreetmap.org/query?component=mapnik&status=!closed&order=changetime&desc=1&max=500
+[cleverness]: https://github.com/openstreetmap/mapnik-stylesheets/blob/master/inc/settings.xml.inc.template#L16
diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000..c496e12
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,28 @@
+# TODO
+
+## Roads
+
+turning circles for living streets
+turning circles for service
+widths for living streets
+highway area casing - should be wider
+highway area casing and fills should be variables
+tunnel casing widths
+tunnel fill widths
+motorway links are narrower than motorways (fair enough) but nothing else is (fix)
+service casing and fill widths
+pedestrian widths
+residential 10-13 width
+highway = road widths
+bridge casing widths
+paths etc widths
+paths etc colours
+railway colours
+paths etc tunnels
+track colours, width and dasharray
+track tunnels
+bridge casing
+bridge colour
+lowzoom widths
+tram width and colour
+guideways width and colour
diff --git a/addressing.mss b/addressing.mss
new file mode 100644
index 0000000..a01a46b
--- /dev/null
+++ b/addressing.mss
@@ -0,0 +1,49 @@
+#interpolation {
+ [zoom >= 17] {
+ line-color: #888;
+ line-width: 1;
+ line-dasharray: 2,4;
+ }
+}
+
+#housenumbers {
+ [zoom >= 17] {
+ text-name: "[addr:housenumber]";
+ text-placement: interior;
+ text-min-distance: 1;
+ text-wrap-width: 0;
+ text-face-name: @book-fonts;
+ text-fill: #444;
+ text-size: 9;
+ }
+}
+
+#housenames {
+ [zoom >= 17] {
+ text-name: "[addr:housename]";
+ text-placement: interior;
+ text-wrap-width: 20;
+ text-face-name: @book-fonts;
+ text-size: 8;
+ text-fill: #444;
+ [zoom >= 18] {
+ text-size: 9;
+ }
+ }
+}
+
+#building-text {
+ [way_area >= 150000][zoom >= 14],
+ [way_area >= 80000][zoom >= 15],
+ [way_area >= 20000][zoom >= 16],
+ [zoom >= 17] {
+ text-name: "[name]";
+ text-size: 11;
+ text-fill: #444;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 20;
+ text-halo-fill: rgba(255,255,255,0.5);
+ text-placement: interior;
+ }
+}
diff --git a/admin.mss b/admin.mss
new file mode 100644
index 0000000..dd7bdb9
--- /dev/null
+++ b/admin.mss
@@ -0,0 +1,117 @@
+ at admin-boundaries: #ac46ac;
+
+#admin-01234 {
+ [admin_level = '2'],
+ [admin_level = '3'] {
+ [zoom >= 4] {
+ line-color: @admin-boundaries;
+ line-width: 0.6;
+ }
+ [zoom >= 7] {
+ line-width: 2;
+ }
+ [zoom >= 10] {
+ [admin_level = '2'] {
+ line-width: 6;
+ }
+ [admin_level = '3'] {
+ line-width: 5;
+ line-dasharray: 4,2;
+ line-clip: false;
+ }
+ }
+ }
+ [admin_level = '4'] {
+ [zoom >= 4] {
+ line-color: @admin-boundaries;
+ line-width: 0.6;
+ line-dasharray: 4,3;
+ line-clip: false;
+ }
+ [zoom >= 7] {
+ line-width: 1;
+ }
+ [zoom >= 11] {
+ line-width: 3;
+ }
+ }
+ opacity: 0.4;
+}
+
+#admin-5678 {
+ [admin_level = '5'][zoom >= 11] {
+ line-color: @admin-boundaries;
+ line-width: 2;
+ line-dasharray: 6,3,2,3,2,3;
+ line-clip: false;
+ }
+ [admin_level = '6'][zoom >= 11] {
+ line-color: @admin-boundaries;
+ line-width: 2;
+ line-dasharray: 6,3,2,3;
+ line-clip: false;
+ }
+ [admin_level = '7'],
+ [admin_level = '8'] {
+ [zoom >= 12] {
+ line-color: @admin-boundaries;
+ line-width: 1.5;
+ line-dasharray: 5,2;
+ line-clip: false;
+ }
+ }
+ opacity: 0.5;
+}
+
+#admin-other {
+ [admin_level = '9'],
+ [admin_level = '10'] {
+ [zoom >= 13] {
+ line-color: @admin-boundaries;
+ line-width: 2;
+ line-dasharray: 2,3;
+ line-clip: false;
+ }
+ }
+ opacity: 0.5;
+}
+
+#admin-text[zoom >= 16] {
+ text-name: "[name]";
+ text-face-name: @book-fonts;
+ text-fill: @admin-boundaries;
+ text-placement: line;
+ text-halo-radius: 1.0;
+ text-placement: line;
+ text-dy: -10;
+}
+
+#national-park-boundaries {
+ [zoom >= 7] {
+ ::fill [zoom < 13] {
+ opacity: 0.05;
+ polygon-fill: green;
+ }
+ ::line {
+ opacity: 0.15;
+ line-color: green;
+ line-width: 1.5;
+ line-dasharray: 4,2;
+ [zoom >= 10] {
+ line-width: 3;
+ line-dasharray: 6,2;
+ line-join: bevel;
+ }
+ }
+ }
+ [way_area > 200000000][zoom >= 8][zoom < 12],
+ [zoom >= 11][zoom < 12] {
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: #9c9;
+ text-face-name: @bold-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 14;
+ [zoom >= 11] { text-size: 11; }
+ }
+}
diff --git a/aerialways.mss b/aerialways.mss
new file mode 100644
index 0000000..6fef77f
--- /dev/null
+++ b/aerialways.mss
@@ -0,0 +1,20 @@
+#aerialways {
+ [aerialway = 'cable_car'],
+ [aerialway = 'gondola'],
+ [aerialway = 'goods'] {
+ [zoom >= 12] {
+ line-pattern-file: url('symbols/cable_car.png');
+ }
+ }
+
+ [aerialway = 'chair_lift'],
+ [aerialway = 'drag_lift'],
+ [aerialway = 't-bar'],
+ [aerialway = 'j-bar'],
+ [aerialway = 'platter'],
+ [aerialway = 'rope_tow'] {
+ [zoom >= 12] {
+ line-pattern-file: url('symbols/chair_lift.png');
+ }
+ }
+}
diff --git a/amenity-points.mss b/amenity-points.mss
new file mode 100644
index 0000000..42640f7
--- /dev/null
+++ b/amenity-points.mss
@@ -0,0 +1,1148 @@
+ at marina-text: #576ddf; // also swimming_pool
+ at military-text: #99001a;
+ at park-text: #2c4b2c;
+
+.points {
+ [tourism = 'alpine_hut'][zoom >= 13]::tourism {
+ point-file: url('symbols/alpinehut.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'shelter'][zoom >= 16]::amenity {
+ point-file: url('symbols/shelter2.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'atm'][zoom >=17]::amenity {
+ point-file: url('symbols/atm2.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'bank'][zoom >= 17]::amenity {
+ point-file: url('symbols/bank2.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'bar'][zoom >=17]::amenity {
+ point-file: url('symbols/bar.p.20.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'bicycle_rental'][zoom >= 17]::amenity {
+ point-file: url('symbols/rental_bicycle.p.20.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'bus_stop']::amenity,
+ [highway = 'bus_stop']::highway {
+ [zoom >= 16] {
+ point-file: url('symbols/bus_stop_small.png');
+ point-placement: interior;
+ }
+ [zoom >= 17] {
+ point-file: url('symbols/bus_stop.p.12.png');
+ }
+ }
+
+ [amenity = 'bus_station'][zoom >= 16]::amenity {
+ point-file: url('symbols/bus_station.n.16.png');
+ point-placement: interior;
+ }
+
+ [highway = 'traffic_signals'][zoom >= 17]::highway {
+ point-file: url('symbols/traffic_light.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'cafe'][zoom >=17]::amenity {
+ point-file: url('symbols/cafe.p.16.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'camp_site'][zoom >= 16]::tourism {
+ point-file: url('symbols/camping.n.16.png');
+ point-placement: interior;
+ }
+
+ [highway = 'ford'][zoom >= 16]::highway {
+ point-file: url('symbols/transport_ford.p.16.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'caravan_site'][zoom >= 16]::tourism {
+ point-file: url('symbols/caravan_park.p.24.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'car_sharing'][zoom >= 16]::amenity {
+ point-file: url('symbols/car_share.p.16.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'chalet'][zoom >= 17]::tourism {
+ point-file: url('symbols/chalet.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'cinema'][zoom >= 17]::amenity {
+ point-file: url('symbols/cinema.p.24.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'fire_station'][zoom >= 17]::amenity {
+ point-file: url('symbols/firestation.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'fuel'][zoom >= 17]::amenity {
+ point-file: url('symbols/fuel.p.16.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'guest_house'][zoom >= 17]::tourism {
+ point-file: url('symbols/guest_house.p.16.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'bed_and_breakfast'][zoom >= 17]::tourism {
+ point-file: url('symbols/bandb.p.20.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'hospital'][zoom >= 15]::amenity {
+ point-file: url('symbols/hospital.p.16.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'hostel'][zoom >= 17]::tourism {
+ point-file: url('symbols/hostel.p.20.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'hotel'][zoom >= 17]::tourism {
+ point-file: url('symbols/hotel2.p.20.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'motel'][zoom >= 17]::tourism {
+ point-file: url('symbols/motel.p.20.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'information'][zoom >= 16]::tourism {
+ point-file: url('symbols/information.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'embassy'][zoom >= 17]::amenity {
+ point-file: url('symbols/embassy.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'library'][zoom >= 17]::amenity {
+ point-file: url('symbols/library.p.20.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'courthouse'][zoom > 17]::amenity {
+ point-file: url('symbols/amenity_court.p.20.png');
+ point-placement: interior;
+ }
+
+ [waterway = 'lock']::waterway,
+ [lock = 'yes']::lock {
+ [zoom >= 15] {
+ point-file: url('symbols/lock_gate.png');
+ point-placement: interior;
+ }
+ }
+
+ [man_made = 'mast'][zoom >= 17]::man_made {
+ point-file: url('symbols/communications.p.20.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'museum'][zoom >= 17]::tourism {
+ point-file: url('symbols/museum.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'parking'][zoom >= 15]::amenity {
+ point-file: url('symbols/parking.p.16.png');
+ point-placement: interior;
+ [access != ''][access != 'public'][access != 'yes'] {
+ point-file: url('symbols/parking_private.p.16.png');
+ }
+ }
+
+ [amenity = 'pharmacy'][zoom >= 17]::amenity {
+ point-file: url('symbols/pharmacy.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'place_of_worship'][zoom >= 16]::amenity {
+ point-file: url('symbols/place_of_worship3.p.16.png');
+ point-placement: interior;
+ [religion = 'christian'] {
+ point-file: url('symbols/christian3.p.14.png');
+ }
+ [religion = 'muslim'] {
+ point-file: url('symbols/islamic3.p.16.png');
+ }
+ [religion = 'sikh'] {
+ point-file: url('symbols/sikh3.p.16.png');
+ }
+ [religion = 'jewish'] {
+ point-file: url('symbols/jewish3.p.16.png');
+ }
+ [religion = 'hindu'] {
+ point-file: url('symbols/hindu.png');
+ }
+ [religion = 'buddhist'] {
+ point-file: url('symbols/buddhist.png');
+ }
+ [religion = 'shinto'] {
+ point-file: url('symbols/shinto.png');
+ }
+ [religion = 'taoist'] {
+ point-file: url('symbols/taoist.png');
+ }
+ }
+
+ [amenity = 'police'][zoom >= 17]::amenity {
+ point-file: url('symbols/police.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'post_box'][zoom >= 17]::amenity {
+ point-file: url('symbols/post_box.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'post_office'][zoom >= 17]::amenity {
+ point-file: url('symbols/post_office.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'pub'][zoom >= 16]::amenity {
+ point-file: url('symbols/pub.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'biergarten'][zoom >= 16]::amenity {
+ point-file: url('symbols/biergarten.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'recycling'][zoom >= 16]::amenity {
+ point-file: url('symbols/recycling.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'restaurant'][zoom >= 17]::amenity {
+ point-file: url('symbols/restaurant.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'fast_food'][zoom >= 17]::amenity {
+ point-file: url('symbols/fast_food.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'telephone'][zoom >= 17]::amenity {
+ point-file: url('symbols/telephone.p.16.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'emergency_phone'][zoom >= 17]::amenity {
+ point-file: url('symbols/sosphone.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'theatre'][zoom >= 17]::amenity {
+ point-file: url('symbols/theatre.p.20.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'toilets'][zoom >= 17]::amenity {
+ point-file: url('symbols/toilets.p.20.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'drinking_water'][zoom >= 17]::amenity {
+ point-file: url('symbols/food_drinkingtap.p.20.png');
+ point-placement: interior;
+ }
+
+ [amenity = 'prison'][zoom >= 17]::amenity {
+ point-file: url('symbols/amenity_prison.p.20.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'viewpoint'][zoom >= 16]::tourism {
+ point-file: url('symbols/view_point.p.16.png');
+ point-placement: interior;
+ }
+
+ [man_made = 'water_tower'][zoom >= 17]::man_made {
+ point-file: url('symbols/tower_water.p.20.png');
+ point-placement: interior;
+ }
+
+ [historic = 'memorial'][zoom >= 17]::historic {
+ point-file: url('symbols/tourist_memorial.p.20.png');
+ point-placement: interior;
+ }
+
+ [historic = 'archaeological_site'][zoom >= 16]::historic {
+ point-file: url('symbols/tourist_archaeological2.glow.24.png');
+ point-placement: interior;
+ }
+
+ [shop = 'supermarket'][zoom >= 16]::shop {
+ point-file: url('symbols/shop_supermarket.p.16.png');
+ point-placement: interior;
+ }
+
+ [shop = 'bakery'][zoom >= 17]::shop {
+ point-file: url('symbols/shop_bakery.p.16.png');
+ point-placement: interior;
+ }
+
+ [shop = 'butcher'][zoom >= 17]::shop {
+ point-file: url('symbols/shop_butcher.png');
+ point-placement: interior;
+ }
+
+ [shop = 'clothes']::shop,
+ [shop = 'fashion']::shop {
+ [zoom >= 17] {
+ point-file: url('symbols/shop_clothes.p.16.png');
+ point-placement: interior;
+ }
+ }
+
+ [shop = 'convenience'][zoom >= 17]::shop {
+ point-file: url('symbols/shop_convenience.p.16.png');
+ point-placement: interior;
+ }
+
+ [shop = 'department_store'][zoom >= 16]::shop {
+ point-file: url('symbols/department_store.p.16.png');
+ point-placement: interior;
+ }
+
+ [shop = 'doityourself'][zoom >= 17]::shop {
+ point-file: url('symbols/shop_diy.p.16.png');
+ point-placement: interior;
+ }
+
+ [shop = 'florist'][zoom >= 17]::shop {
+ point-file: url('symbols/florist.p.16.png');
+ point-placement: interior;
+ }
+
+ [shop = 'hairdresser'][zoom >= 17]::shop {
+ point-file: url('symbols/shop_hairdresser.p.16.png');
+ point-placement: interior;
+ }
+
+ [shop = 'car'][zoom >= 17]::shop {
+ point-file: url('symbols/shopping_car.p.16.png');
+ point-placement: interior;
+ }
+
+ [shop = 'car_repair'][zoom >= 17]::shop {
+ point-file: url('symbols/shopping_car_repair.p.16.png');
+ point-placement: interior;
+ }
+
+ [shop = 'bicycle'][zoom >= 17]::shop {
+ point-file: url('symbols/shopping_bicycle.p.16.png');
+ point-placement: interior;
+ }
+
+ [leisure = 'playground'][zoom >= 17]::leisure {
+ point-file: url('symbols/playground.p.20.png');
+ point-placement: interior;
+ }
+
+ [tourism = 'picnic_site'][zoom >= 16]::tourism {
+ point-file: url('symbols/picnic.p.16.png');
+ point-placement: interior;
+ }
+
+ [leisure = 'picnic_table'][zoom >= 17]::leisure {
+ point-file: url('symbols/picnic.p.16.png');
+ point-placement: interior;
+ }
+
+ [leisure = 'slipway'][zoom >= 17]::leisure {
+ point-file: url('symbols/transport_slipway.p.20.png');
+ point-placement: interior;
+ }
+}
+
+
+.text {
+ [place = 'island'][zoom >= 12]::place {
+ text-name: "[name]";
+ text-fill: #000;
+ text-size: 9;
+ text-face-name: @oblique-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [amenity = 'pub']::amenity,
+ [amenity = 'restaurant']::amenity,
+ [amenity = 'cafe']::amenity,
+ [amenity = 'fast_food']::amenity,
+ [amenity = 'biergarten']::amenity {
+ [zoom >= 17] {
+ text-name: "[name]";
+ text-fill: #734a08;
+ text-size: 10;
+ text-dy: 9;
+ text-face-name: @bold-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 34;
+ text-placement: interior;
+ }
+ }
+
+ [amenity = 'bar'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #734a08;
+ text-dy: 11;
+ text-face-name: @bold-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [amenity = 'library']::amenity,
+ [amenity = 'theatre']::amenity,
+ [amenity = 'courthouse']::amenity {
+ [zoom >= 17] {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #734a08;
+ text-dy: 12;
+ text-face-name: @bold-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+ }
+
+ [amenity = 'cinema'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #734a08;
+ text-dy: 14;
+ text-face-name: @bold-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [amenity = 'parking'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #0066ff;
+ text-dy: 9;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 34;
+ text-placement: interior;
+ [access != ''][access != 'public'][access != 'yes'] {
+ text-fill: #66ccaf;
+ }
+ }
+
+ [amenity = 'police'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #734a08;
+ text-dy: 10;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 30;
+ text-placement: interior;
+ }
+
+ [amenity = 'fire_station'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #734a08;
+ text-dy: 9;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 30;
+ text-placement: interior;
+ }
+
+ [amenity = 'place_of_worship'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #000033;
+ text-dy: 12;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 30;
+ text-placement: interior;
+ }
+
+ [natural = 'wood'][zoom >= 15]::natural {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: darken(@wood, 50%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ text-placement: interior;
+ }
+
+ [natural = 'peak']::natural,
+ [natural = 'volcano']::natural {
+ [zoom >= 13] {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: brown;
+ text-dy: 7;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ ele/text-name: "[ele]";
+ ele/text-size: 9;
+ ele/text-fill: brown;
+ ele/text-dy: 6;
+ ele/text-face-name: @oblique-fonts;
+ ele/text-halo-radius: 1;
+ ele/text-placement: interior;
+ [name != ''] {
+ ele/text-dy: 19;
+ }
+ }
+ }
+
+ [natural = 'cave_entrance'][zoom >= 15]::natural {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: brown;
+ text-dy: 9;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 20;
+ text-placement: interior;
+ }
+
+ [historic = 'memorial'][zoom >= 17]::historic {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: brown;
+ text-dy: 13;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 20;
+ text-placement: interior;
+ }
+
+ [historic = 'archaeological_site'][zoom >= 17]::historic {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: brown;
+ text-dy: 15;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 20;
+ text-placement: interior;
+ }
+
+ [natural = 'water']::natural,
+ [natural = 'lake']::natural,
+ [landuse = 'reservoir']::landuse,
+ [landuse = 'basin']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 12;
+ text-fill: @water-text;
+ text-face-name: @oblique-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 20;
+ text-placement: interior;
+ }
+ }
+
+ [leisure = 'swimming_pool']::leisure {
+ [zoom >= 17] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: @marina-text;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ text-placement: interior;
+ }
+ }
+
+ [leisure = 'sports_centre']::leisure,
+ [leisure = 'stadium']::leisure,
+ [leisure = 'track']::leisure,
+ [leisure = 'pitch']::leisure {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@stadium, 30%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ text-placement: interior;
+ }
+ }
+
+ [leisure = 'playground']::leisure,
+ [leisure = 'park']::leisure,
+ [leisure = 'recreation_ground']::leisure,
+ [landuse = 'recreation_ground']::landuse,
+ [landuse = 'conservation']::landuse,
+ [landuse = 'village_green']::landuse,
+ [leisure = 'common']::leisure,
+ [leisure = 'garden']::leisure,
+ [leisure = 'golf_course']::leisure,
+ [leisure = 'nature_reserve']::leisure {
+ [way_area >= 150000][zoom >= 14],
+ [way_area >= 80000][zoom >= 15],
+ [way_area >= 20000][zoom >= 16],
+ [zoom >= 17] {
+ text-name: "[name]";
+ text-size: 11;
+ text-fill: @park-text;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-halo-fill: rgba(255,255,255,0.6);
+ text-wrap-width: 30;
+ text-placement: interior;
+ }
+ }
+
+ [landuse = 'quarry']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #000;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'vineyard']::landuse,
+ [landuse = 'orchard']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@vineyard, 50%);
+ text-face-name: @book-fonts;
+ // extra halo needed to overpower the cemetery polygon pattern
+ text-halo-radius: 1.5;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'cemetery']::landuse,
+ [landuse = 'grave_yard']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@cemetery, 50%);
+ text-face-name: @book-fonts;
+ // extra halo needed to overpower the cemetery polygon pattern
+ text-halo-radius: 1.5;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'residential']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #000;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'garages']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@garages, 50%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'field']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@field, 50%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'meadow']::landuse,
+ [landuse = 'grass']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@grass, 65%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'allotments']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@allotments, 60%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'forest']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@forest, 50%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'farm']::landuse,
+ [landuse = 'farmland']::landuse,
+ [landuse = 'farmyard']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@farm, 70%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'retail']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@retail, 60%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'industrial']::landuse,
+ [landuse = 'railway']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@industrial, 60%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'commercial']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@commercial, 60%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [landuse = 'brownfield']::landuse,
+ [landuse = 'landfill']::landuse,
+ [landuse = 'greenfield']::landuse,
+ [landuse = 'construction']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: darken(@construction, 50%);
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ }
+ }
+
+ [natural = 'bay'][zoom >= 14]::natural {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #6699cc;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 20;
+ text-placement: interior;
+ }
+
+ [natural = 'spring'][zoom >= 16]::natural {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #6699cc;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 20;
+ text-placement: interior;
+ text-dy: 6;
+ }
+
+ [tourism = 'alpine_hut'][zoom >= 15]::tourism {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #6699cc;
+ text-dy: 10;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ [zoom >= 16] {
+ ele/text-name: "[ele]";
+ ele/text-size: 8;
+ ele/text-fill: #6699cc;
+ ele/text-dy: 22;
+ ele/text-face-name: @oblique-fonts;
+ ele/text-halo-radius: 1;
+ ele/text-placement: interior;
+ }
+ }
+
+ [amenity = 'shelter'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #6699cc;
+ text-dy: 10;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ ele/text-name: "[ele]";
+ ele/text-size: 8;
+ ele/text-fill: #6699cc;
+ ele/text-dy: 22;
+ ele/text-face-name: @oblique-fonts;
+ ele/text-halo-radius: 1;
+ ele/text-placement: interior;
+ }
+
+ [amenity = 'bank'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: black;
+ text-dy: 9;
+ text-halo-radius: 1;
+ text-placement: interior;
+ text-face-name: @book-fonts;
+ }
+
+ [tourism = 'hotel']::tourism,
+ [tourism = 'motel']::tourism,
+ [tourism = 'hostel']::tourism,
+ [tourism = 'chalet']::tourism {
+ [zoom >= 17] {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #0066ff;
+ text-dy: 11;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+ }
+
+ [amenity = 'embassy'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #0066ff;
+ text-dy: 8;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [tourism = 'guest_house'][zoom >= 17]::tourism {
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: #0066ff;
+ text-dy: 10;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [tourism = 'bed_and_breakfast'][zoom >= 17]::tourism {
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: #0066ff;
+ text-dy: 8;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [amenity = 'fuel']::amenity,
+ [amenity = 'bus_station']::amenity {
+ [zoom >= 17] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #0066ff;
+ text-dy: 9;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ }
+ }
+
+ [tourism = 'camp_site'][zoom >= 17]::tourism {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #0066ff;
+ text-dy: 15;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 70;
+ }
+
+ [tourism = 'caravan_site'][zoom >= 17]::tourism {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #0066ff;
+ text-dy: 19;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 70;
+ }
+
+ [waterway = 'lock'][zoom >= 15]::waterway {
+ text-name: "[name]";
+ text-size: 9;
+ text-dy: 10;
+ text-fill: #0066ff;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 70;
+ }
+
+ [leisure = 'marina'][zoom >= 15]::leisure {
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: @marina-text;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 30;
+ text-placement: interior;
+ [zoom >= 17] {
+ text-size: 10;
+ }
+ }
+
+ [tourism = 'theme_park'][zoom >= 14]::tourism {
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: #734a08;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 30;
+ text-placement: interior;
+ [zoom >= 16] {
+ text-size: 10;
+ }
+ }
+
+ [tourism = 'museum'][zoom >= 17]::tourism {
+ text-name: "[name]";
+ text-size: 10;
+ text-dy: 10;
+ text-fill: #734a08;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [amenity = 'prison'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #734a08;
+ text-dy: 16;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [tourism = 'attraction'][zoom >= 16]::tourism {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #660033;
+ text-face-name: @book-fonts;
+ text-halo-radius: 2;
+ text-wrap-width: 10;
+ text-placement: interior;
+ }
+
+ [amenity = 'university'][zoom >= 15]::amenity {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #000033;
+ text-face-name: @bold-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 16;
+ text-placement: interior;
+ }
+
+ [amenity = 'school']::amenity,
+ [amenity = 'college']::amenity {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #000033;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 14;
+ text-placement: interior;
+ }
+ }
+
+ [amenity = 'kindergarten'][zoom >= 16]::amenity {
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: #000033;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 14;
+ text-placement: interior;
+ }
+
+ [man_made = 'lighthouse'][zoom >= 15]::man_made {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #000033;
+ text-dy: 16;
+ text-face-name: @book-fonts;
+ text-halo-radius: 2;
+ text-wrap-width: 12;
+ text-placement: interior;
+ }
+
+ [man_made = 'windmill'][zoom >= 17]::man_made {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #734a08;
+ text-dy: 12;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 20;
+ text-placement: interior;
+ }
+
+ [amenity = 'hospital'][zoom >= 16]::amenity {
+ text-name: "[name]";
+ text-fill: #da0092;
+ text-size: 8;
+ text-dy: 10;
+ text-face-name: @book-fonts;
+ text-halo-radius: 2;
+ text-wrap-width: 24;
+ text-placement: interior;
+ }
+
+ [amenity = 'pharmacy'][zoom >= 17]::amenity {
+ text-name: "[name]";
+ text-size: 8;
+ text-dy: 10;
+ text-fill: #da0092;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 12;
+ text-placement: interior;
+ }
+
+ [shop = 'bakery']::shop,
+ [shop = 'clothes']::shop,
+ [shop = 'fashion']::shop,
+ [shop = 'convenience']::shop,
+ [shop = 'doityourself']::shop,
+ [shop = 'hairdresser']::shop,
+ [shop = 'butcher']::shop,
+ [shop = 'car']::shop,
+ [shop = 'car_repair']::shop,
+ [shop = 'bicycle']::shop,
+ [shop = 'florist']::shop {
+ [zoom >= 17] {
+ text-name: "[name]";
+ text-size: 8;
+ text-dy: 10;
+ text-fill: #939;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 12;
+ text-placement: interior;
+ }
+ }
+
+ [shop = 'supermarket']::shop,
+ [shop = 'department_store']::shop {
+ [zoom >= 16] {
+ text-name: "[name]";
+ text-size: 9;
+ text-dy: 9;
+ text-fill: #939;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 20;
+ text-placement: interior;
+ }
+ }
+
+ [military = 'danger_area'][zoom >= 12]::military {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: @military-text;
+ text-face-name: @bold-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ text-placement: interior;
+ }
+
+ [landuse = 'military']::landuse {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: @military-text;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ text-placement: interior;
+ }
+ }
+
+ [aeroway = 'gate'][zoom >= 17]::aeroway {
+ text-name: "[ref]";
+ text-size: 10;
+ text-fill: #aa66cc;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 10;
+ text-placement: interior;
+ }
+}
diff --git a/amenity-symbols.mss b/amenity-symbols.mss
new file mode 100644
index 0000000..f1699da
--- /dev/null
+++ b/amenity-symbols.mss
@@ -0,0 +1,112 @@
+.symbols {
+ [aeroway = 'helipad'][zoom >= 16]::aeroway {
+ point-file: url('symbols/helipad.p.16.png');
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: #6692da;
+ text-dy: -10;
+ text-face-name: @bold-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [aeroway = 'aerodrome'][zoom >= 10][zoom < 13]::aeroway {
+ [zoom < 11] {
+ point-file: url('symbols/aerodrome.p.16.png');
+ text-dy: -12;
+ }
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: #6692da;
+ text-face-name: @oblique-fonts;
+ text-halo-radius: 1;
+ text-placement: interior;
+ }
+
+ [railway = 'level_crossing'][zoom >= 14]::railway {
+ point-file: url('symbols/level_crossing.png');
+ point-placement: interior;
+ [zoom >= 16] {
+ point-file: url('symbols/level_crossing2.png');
+ }
+ }
+
+ [man_made = 'lighthouse'][zoom >= 15]::man_made {
+ point-file: url('symbols/lighthouse.p.20.png');
+ point-placement: interior;
+ }
+
+ [natural = 'peak'][zoom >= 11]::natural {
+ point-file: url('symbols/peak.png');
+ point-placement: interior;
+ }
+
+ [natural = 'volcano'][zoom >= 11]::natural {
+ point-file: url('symbols/volcano.png');
+ point-placement: interior;
+ }
+
+ [natural = 'cave_entrance'][zoom >= 15]::natural {
+ point-file: url('symbols/poi_cave.p.16.png');
+ point-placement: interior;
+ }
+
+ [natural = 'spring'][zoom >= 14]::natural {
+ point-file: url('symbols/spring.png');
+ point-placement: interior;
+ }
+
+ [natural = 'tree'][zoom >= 16]::natural {
+ point-file: url('symbols/tree.png');
+ point-ignore-placement: true;
+ point-placement: interior;
+ [zoom >= 17] {
+ point-file: url('symbols/tree2.png');
+ }
+ }
+
+ [power = 'generator']['generator:source' = 'wind']::power,
+ [power = 'generator'][power_source = 'wind']::power,
+ [man_made = 'power_wind'] {
+ [zoom >= 15] {
+ point-file: url('symbols/power_wind.png');
+ point-placement: interior;
+ }
+ }
+
+ [man_made = 'windmill'][zoom >= 16]::man_made {
+ point-file: url('symbols/windmill.png');
+ point-placement: interior;
+ }
+
+ [man_made = 'mast'][zoom >= 17]::man_made {
+ point-file: url('symbols/communications.p.20.png');
+ point-placement: interior;
+ }
+
+ [highway = 'mini_roundabout'][zoom >= 15]::highway {
+ point-file: url('symbols/mini_round.png');
+ point-placement: interior;
+ }
+
+ [highway = 'gate']::highway,
+ [barrier = 'gate']::barrier {
+ [zoom >= 15] {
+ point-file: url('symbols/gate2.png');
+ point-placement: interior;
+ }
+ }
+
+ [barrier = 'lift_gate'][zoom >= 16]::barrier {
+ point-file: url('symbols/liftgate.png');
+ point-placement: interior;
+ }
+
+ [barrier = 'bollard'],
+ [barrier = 'block'] {
+ [zoom >= 16] {
+ point-file: url('symbols/bollard.png');
+ point-placement: interior;
+ }
+ }
+}
diff --git a/buildings.mss b/buildings.mss
new file mode 100644
index 0000000..9e988c4
--- /dev/null
+++ b/buildings.mss
@@ -0,0 +1,52 @@
+#buildings-lz {
+ [zoom >= 10] {
+ [railway = 'station']::railway,
+ [building = 'station'] {
+ polygon-fill: #d4aaaa;
+ polygon-clip: false;
+ }
+
+ [building = 'supermarket'] {
+ polygon-fill: pink;
+ polygon-opacity: 0.5;
+ polygon-clip: false;
+ }
+
+ [amenity = 'place_of_worship']::amenity {
+ polygon-opacity: 0.5;
+ polygon-fill: #777;
+ polygon-clip: false;
+ [zoom >= 15] {
+ polygon-opacity: 0.9;
+ polygon-fill: #aaa;
+ line-width: 0.3;
+ line-color: #111;
+ }
+ }
+ }
+}
+
+#buildings {
+ [building = 'INT-light'][zoom >= 12] {
+ polygon-fill: #bca9a9;
+ polygon-opacity: 0.7;
+ polygon-clip: false;
+ }
+ [building != 'INT-light'][building != ''][zoom >= 12] {
+ polygon-fill: #bca9a9;
+ polygon-opacity: 0.9;
+ polygon-clip: false;
+ [zoom >= 16] {
+ line-color: #330066;
+ line-width: 0.2;
+ }
+ }
+ [aeroway = 'terminal'][zoom >= 12]::aeroway {
+ polygon-fill: #cc99ff;
+ polygon-clip: false;
+ [zoom >= 14] {
+ line-color: #330066;
+ line-width: 0.2;
+ }
+ }
+}
diff --git a/citywalls.mss b/citywalls.mss
new file mode 100644
index 0000000..02ae59d
--- /dev/null
+++ b/citywalls.mss
@@ -0,0 +1,24 @@
+#citywalls {
+ [zoom >= 14] {
+ line-color: grey;
+ line-width: 4;
+ line-opacity: 0.8;
+ [zoom >= 15] {
+ line-width: 6;
+ }
+ [zoom >= 16] {
+ line-width: 9;
+ }
+ }
+}
+
+.castlewalls {
+ [zoom >= 14] {
+ line-color: #999;
+ line-width: 1;
+ }
+ [zoom >= 16] {
+ line-color: #888;
+ line-width: 2;
+ }
+}
diff --git a/ferry-routes.mss b/ferry-routes.mss
new file mode 100644
index 0000000..57145df
--- /dev/null
+++ b/ferry-routes.mss
@@ -0,0 +1,11 @@
+#ferry-routes {
+ [zoom >= 7] {
+ line-color: #66f;
+ line-width: 0.4;
+ line-dasharray: 4,4;
+ [zoom >= 11] {
+ line-width: 0.8;
+ line-dasharray: 6,6;
+ }
+ }
+}
diff --git a/get-shapefiles.sh b/get-shapefiles.sh
new file mode 100755
index 0000000..e21945f
--- /dev/null
+++ b/get-shapefiles.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+set -e -u
+
+UNZIP_OPTS=-qqu
+
+# create and populate data dir
+
+mkdir -p data/
+mkdir -p data/world_boundaries
+mkdir -p data/simplified-land-polygons-complete-3857
+mkdir -p data/ne_110m_admin_0_boundary_lines_land
+mkdir -p data/ne_10m_populated_places
+mkdir -p data/land-polygons-split-3857
+
+# world_boundaries
+echo "dowloading world_boundaries..."
+curl -z "data/world_boundaries-spherical.tgz" -L -o "data/world_boundaries-spherical.tgz" "http://planet.openstreetmap.org/historical-shapefiles/world_boundaries-spherical.tgz"
+echo "expanding world_boundaries..."
+tar -xzf data/world_boundaries-spherical.tgz -C data/
+
+# simplified-land-polygons-complete-3857
+echo "downloading simplified-land-polygons-complete-3857..."
+curl -z "data/simplified-land-polygons-complete-3857.zip" -L -o "data/simplified-land-polygons-complete-3857.zip" "http://data.openstreetmapdata.com/simplified-land-polygons-complete-3857.zip"
+echo "simplified-land-polygons-complete-3857..."
+unzip $UNZIP_OPTS data/simplified-land-polygons-complete-3857.zip simplified-land-polygons-complete-3857/simplified_land_polygons.{shp,shx,prj,dbf,cpg} -d data/
+
+# ne_110m_admin_0_boundary_lines_land
+echo "dowloading ne_110m_admin_0_boundary_lines_land..."
+curl -z data/ne_110m_admin_0_boundary_lines_land.zip -L -o data/ne_110m_admin_0_boundary_lines_land.zip http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_boundary_lines_land.zip
+echo "expanding ne_110m_admin_0_boundary_lines_land..."
+unzip $UNZIP_OPTS data/ne_110m_admin_0_boundary_lines_land.zip -d data/ne_110m_admin_0_boundary_lines_land/
+
+# ne_10m_populated_places
+echo "dowloading ne_10m_populated_places..."
+curl -z data/ne_10m_populated_places.zip -L -o data/ne_10m_populated_places.zip http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip
+echo "expanding ne_10m_populated_places..."
+unzip $UNZIP_OPTS data/ne_10m_populated_places.zip -d data/ne_10m_populated_places/
+
+# land-polygons-split-3857
+echo "dowloading land-polygons-split-3857..."
+curl -z "data/land-polygons-split-3857.zip" -L -o "data/land-polygons-split-3857.zip" "http://data.openstreetmapdata.com/land-polygons-split-3857.zip"
+echo "expanding land-polygons-split-3857..."
+unzip $UNZIP_OPTS data/land-polygons-split-3857.zip -d data/
+
+
+#process populated places
+echo "processing ne_10m_populated_places..."
+rm -f data/ne_10m_populated_places/ne_10m_populated_places_fixed.*
+ogr2ogr --config SHAPE_ENCODING UTF8 data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp data/ne_10m_populated_places/ne_10m_populated_places.shp
+
+#index
+echo "indexing shapefiles"
+
+shapeindex --shape_files \
+data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp \
+data/land-polygons-split-3857/land_polygons.shp \
+data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp \
+data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp
+
+
+#clean up
+echo "cleaning up..."
+rm data/ne_10m_populated_places/ne_10m_populated_places.*
+
+echo "...done!"
diff --git a/landcover.mss b/landcover.mss
new file mode 100644
index 0000000..b460703
--- /dev/null
+++ b/landcover.mss
@@ -0,0 +1,436 @@
+// --- Parks, woods, other green things ---
+
+ at forest: #a0cf85;
+ at grass: #cfeca8; // also meadow, common, garden, village_green, conservation
+ at golf_course: #b5e3b5;
+ at natural: #c6e4b4; // also grassland
+ at park: #b6fdb6; // also recreation_ground
+ at wood: #aed1a0;
+ at vineyard: #abdf96;
+
+// --- sports ---
+
+ at stadium: #3c9; // also sports_centre
+ at track: #74dcba;
+ at pitch: #8ad3af;
+
+// --- Other ----
+
+ at aerodrome: #ccc;
+ at allotments: #e5c7ab;
+ at apron: #e9d1ff;
+ at attraction: #f2caea;
+ at barracks: #ff8f8f;
+ at campsite: #ccff99; // also caravan_site, picnic_site
+ at cemetery: #aacbaf; // also grave_yard
+ at construction: #9d9d6c;
+ at commercial: #efc8c8;
+ at danger_area: pink;
+ at desert: #e3b57a;
+ at field: #660;
+ at garages: #996;
+ at heath: #d6d99f;
+ at industrial: #dfd1d6; // also railway
+ at farmyard: #ddbf92;
+ at farm: #ead8bd; // also farmland
+ at parking: #f7efb7;
+ at playground: #ccfff1;
+ at power: #bbb;
+ at rest_area: #efc8c8; // also services
+ at retail: #f1dada;
+ at residential: #ddd;
+ at sand: #ffdf88;
+ at school: #f0f0d8; // also university, college, hospital, kindergarten
+
+#landcover {
+ [feature = 'leisure_swimming_pool'][zoom >= 14] {
+ polygon-fill: @water-color;
+ line-color: blue;
+ line-width: 0.5;
+ }
+
+ [feature = 'leisure_playground'][zoom >= 13] {
+ polygon-fill: @playground;
+ line-color: #666;
+ line-width: 0.3;
+ }
+
+ [feature = 'tourism_camp_site'],
+ [feature = 'tourism_caravan_site'],
+ [feature = 'tourism_picnic_site'] {
+ [zoom >= 13] {
+ polygon-fill: @campsite;
+ polygon-opacity: 0.5;
+ line-color: #666;
+ line-width: 0.3;
+ }
+ }
+
+ [feature = 'tourism_attraction'][zoom >= 10] {
+ polygon-fill: @attraction;
+ }
+
+ [feature = 'landuse_quarry'][zoom >= 11] {
+ polygon-pattern-file: url('symbols/quarry2.png');
+ line-width: 0.5;
+ line-color: grey;
+ }
+
+ [feature = 'landuse_vineyard'] {
+ [zoom >= 10][zoom < 13] {
+ polygon-fill: @vineyard;
+ }
+ [zoom >= 13] {
+ polygon-pattern-file: url('symbols/vineyard.png');
+ }
+ }
+
+ [feature = 'landuse_orchard'][zoom >= 10] {
+ polygon-pattern-file: url('symbols/orchard.png');
+ }
+
+ [feature = 'landuse_cemetery'],
+ [feature = 'landuse_grave_yard'],
+ [feature = 'amenity_grave_yard'] {
+ [zoom >= 10][zoom < 14] {
+ polygon-fill: @cemetery;
+ }
+ [zoom >= 14] {
+ [religion = 'jewish'] { polygon-pattern-file: url('symbols/cemetery_jewish.18.png'); }
+ [religion = 'christian'] { polygon-pattern-file: url('symbols/grave_yard.png'); }
+ [religion = 'INT-generic'] { polygon-pattern-file: url('symbols/grave_yard_generic.png'); }
+ }
+ }
+
+ [feature = 'landuse_residential'][zoom >= 10] {
+ polygon-fill: @residential;
+ }
+
+ [feature = 'landuse_garages'][zoom >= 12] {
+ polygon-fill: @garages;
+ polygon-opacity: 0.2;
+ }
+
+ [feature = 'military_barracks'][zoom >= 10] {
+ polygon-fill: @barracks;
+ }
+
+ [feature = 'landuse_field'],
+ [feature = 'natural_field'] {
+ [zoom >= 10] {
+ polygon-fill: @field;
+ polygon-opacity: 0.2;
+ [zoom >= 14] {
+ line-width: 0.3;
+ line-opacity: 0.4;
+ line-color: #660;
+ }
+ }
+ }
+
+ [feature = 'military_danger_area'] {
+ [zoom >= 9][zoom < 11] {
+ polygon-fill: @danger_area;
+ polygon-opacity: 0.3;
+ }
+ [zoom >= 11] {
+ polygon-pattern-file: url('symbols/danger.png');
+ }
+ }
+
+ [feature = 'landuse_meadow'],
+ [feature = 'landuse_grass'] {
+ [zoom >= 10] {
+ polygon-fill: @grass;
+ }
+ }
+
+ [feature = 'leisure_park'],
+ [feature = 'leisure_recreation_ground'] {
+ [zoom >= 10] {
+ polygon-fill: @park;
+ polygon-opacity: 0.6;
+ }
+ }
+
+ [feature = 'tourism_zoo'][zoom >= 10] {
+ polygon-pattern-file: url('symbols/zoo.png');
+ }
+
+ [feature = 'leisure_common'][zoom >= 10] {
+ polygon-fill: @grass;
+ }
+
+ [feature = 'leisure_garden'][zoom >= 10] {
+ polygon-fill: @grass;
+ }
+
+ [feature = 'leisure_golf_course'][zoom >= 10] {
+ polygon-fill: @golf_course;
+ }
+
+ [feature = 'landuse_allotments'] {
+ [zoom >= 10][zoom < 14] {
+ polygon-fill: @allotments;
+ }
+ [zoom >= 14] {
+ polygon-pattern-file: url('symbols/allotments.png');
+ }
+ }
+
+ [feature = 'landuse_forest'] {
+ [zoom >= 8] {
+ polygon-fill: @forest;
+ }
+ [zoom >= 14] {
+ polygon-pattern-file: url('symbols/forest.png');
+ }
+ }
+
+ [feature = 'landuse_farmyard'][zoom >= 9] {
+ polygon-fill: @farmyard;
+ }
+
+ [feature = 'landuse_farm'],
+ [feature = 'landuse_farmland'] {
+ [zoom >= 9] {
+ polygon-fill: @farm;
+ }
+ }
+
+ [feature = 'landuse_recreation_ground'],
+ [feature = 'landuse_conservation'] {
+ [zoom >= 10] {
+ polygon-fill: @grass;
+ }
+ }
+
+ [feature = 'landuse_village_green'][zoom >= 11] {
+ polygon-fill: @grass;
+ }
+
+ [feature = 'landuse_retail'][zoom >= 10] {
+ polygon-fill: @retail;
+ [zoom >= 15] {
+ line-width: 0.3;
+ line-color: red;
+ }
+ }
+
+ [feature = 'landuse_industrial'],
+ [feature = 'landuse_railway'] {
+ [zoom >= 10] {
+ polygon-fill: @industrial;
+ }
+ }
+
+ [feature = 'power_station'],
+ [feature = 'power_generator'] {
+ [zoom >= 10] {
+ polygon-fill: @power;
+ [zoom >= 12] {
+ line-width: 0.4;
+ line-color: #555;
+ }
+ }
+ }
+
+ [feature = 'power_sub_station'][zoom >= 13] {
+ polygon-fill: @power;
+ line-width: 0.4;
+ line-color: #555;
+ }
+
+ [feature = 'landuse_commercial'][zoom >= 10] {
+ polygon-fill: @commercial;
+ }
+
+ [feature = 'landuse_brownfield'],
+ [feature = 'landuse_landfill'],
+ [feature = 'landuse_greenfield'],
+ [feature = 'landuse_construction'] {
+ [zoom >= 10] {
+ polygon-fill: @construction;
+ polygon-opacity: 0.7;
+ }
+ }
+
+ [feature = 'natural_wood'] {
+ [zoom >= 8] {
+ polygon-fill: @wood;
+ }
+ }
+
+ [feature = 'natural_desert'][zoom >= 8] {
+ polygon-fill: @desert;
+ }
+
+ [feature = 'natural_sand'][zoom >= 10] {
+ polygon-fill: @sand;
+ }
+
+ [feature = 'natural_heath'][zoom >= 10] {
+ polygon-fill: @heath;
+ }
+
+ [feature = 'natural_grassland'][zoom >= 10] {
+ polygon-fill: #c6e4b4;
+ }
+
+ [feature = 'natural_scrub'] {
+ [zoom >= 10][zoom < 14] {
+ polygon-fill: #b5e3b5;
+ }
+ [zoom >= 14] {
+ polygon-pattern-file: url('symbols/scrub.png');
+ }
+ }
+
+ [feature = 'amenity_university'],
+ [feature = 'amenity_college'],
+ [feature = 'amenity_school'],
+ [feature = 'amenity_hospital'],
+ [feature = 'amenity_kindergarten'] {
+ [zoom >= 10] {
+ polygon-fill: @school;
+ [zoom >= 12] {
+ line-width: 0.3;
+ line-color: brown;
+ }
+ }
+ }
+
+ [feature = 'amenity_parking'][zoom >= 10] {
+ polygon-fill: @parking;
+ [zoom >= 15] {
+ line-width: 0.3;
+ line-color: @parking;
+ }
+ }
+
+ [feature = 'aeroway_apron'][zoom >= 12] {
+ polygon-fill: @apron;
+ }
+
+ [feature = 'aeroway_aerodrome'][zoom >= 12] {
+ polygon-fill: @aerodrome;
+ polygon-opacity: 0.2;
+ line-width: 0.2;
+ line-color: #555;
+ }
+
+ [feature = 'natural_beach'][zoom >= 13] {
+ polygon-pattern-file: url('symbols/beach.png');
+ }
+
+ [feature = 'highway_services'],
+ [feature = 'highway_rest_area'] {
+ [zoom >= 14] {
+ polygon-fill: @rest_area;
+ }
+ }
+}
+
+/* man_made=cutline */
+#landcover-line {
+ [zoom >= 14] {
+ line-width: 3;
+ line-join: round;
+ line-cap: square;
+ line-color: @land-color;
+ [zoom >= 16] {
+ line-width: 6;
+ }
+ }
+}
+
+#sports-grounds {
+ [leisure = 'sports_centre'],
+ [leisure = 'stadium'] {
+ [zoom >= 10] {
+ polygon-fill: @stadium;
+ }
+ }
+
+ [leisure = 'track'][zoom >= 10] {
+ polygon-fill: @track;
+ line-width: 0.5;
+ line-color: #888;
+ }
+
+ [leisure = 'pitch'][zoom >= 10] {
+ polygon-fill: @pitch;
+ line-width: 0.5;
+ line-color: #888;
+ }
+}
+
+
+#landuse-overlay {
+ [landuse = 'military'][zoom >= 10]::landuse {
+ polygon-pattern-file: url('symbols/military_red_hatch.png');
+ polygon-pattern-alignment: global;
+ line-color: #f55;
+ line-width: 3;
+ line-opacity: 0.329;
+ }
+ [leisure = 'nature_reserve'][zoom >= 10] {
+ polygon-pattern-file: url('symbols/nature_reserve5.png');
+ line-color: #6c3;
+ line-width: 0.5;
+ [zoom >= 14] {
+ polygon-pattern-file: url('symbols/nature_reserve6.png');
+ line-width: 1;
+ }
+ }
+}
+
+#cliffs {
+ [natural = 'cliff'][zoom >= 13] {
+ line-pattern-file: url('symbols/cliff.png');
+ [zoom >= 15] {
+ line-pattern-file: url('symbols/cliff2.png');
+ }
+ }
+ [man_made = 'embankment'][zoom >= 15]::man_made {
+ line-pattern-file: url('symbols/cliff.png');
+ }
+}
+
+#area-barriers {
+ [zoom >= 16] {
+ line-color: #444;
+ line-width: 0.4;
+ [barrier = 'hedge'] {
+ polygon-fill: #aed1a0;
+ }
+ }
+}
+
+.barriers {
+ [zoom >= 16] {
+ line-width: 0.4;
+ line-color: #444;
+ }
+ [barrier = 'embankment'][zoom >= 14] {
+ line-width: 0.4;
+ line-color: #444;
+ }
+ [barrier = 'hedge'][zoom >= 16] {
+ line-width: 3;
+ line-color: #aed1a0;
+ }
+}
+
+
+#theme-park {
+ [tourism = 'theme_park'][zoom >= 13] {
+ line-color: #734a08;
+ line-width: 1.5;
+ line-dasharray: 9,3;
+ line-opacity: 0.6;
+ [zoom >= 15] {
+ line-width: 2.5;
+ }
+ }
+}
diff --git a/openstreetmap-carto.style b/openstreetmap-carto.style
new file mode 100644
index 0000000..1c53f73
--- /dev/null
+++ b/openstreetmap-carto.style
@@ -0,0 +1,226 @@
+# This is the default osm2pgsql .style file that comes with osm2pgsql.
+#
+# A .style file has 4 columns that define how OSM objects end up in tables in
+# the database and what columns are created. It interacts with the command-line
+# hstore options.
+#
+# Columns
+# =======
+#
+# OsmType: This is either "node", "way" or "node,way" and indicates if this tag
+# applies to nodes, ways, or both.
+#
+# Tag: The tag
+#
+# DataType: The type of the column to be created. Normally "text"
+#
+# Flags: Flags that indicate what table the OSM object is moved into.
+#
+# There are 5 possible flags. These flags are used both to indicate if a column
+# should be created, and if ways with the tag are assumed to be areas. The area
+# assumptions can be overridden with an area=yes/no tag
+#
+# polygon - Create a column for this tag, and objects the tag with are areas
+#
+# linear - Create a column for this tag
+#
+# phstore - Don't create a column for this tag, but objects with the tag are areas
+#
+# delete - Drop this tag completely and don't create a column for it. This also
+# prevents the tag from being added to hstore columns
+#
+# nocache - Deprecated and does nothing
+#
+# If an object has a tag that indicates it is an area or has area=yes/1,
+# osm2pgsql will try to turn it into an area. If it succeeds, it places it in
+# the polygon table. If it fails (e.g. not a closed way) it places it in the
+# line table.
+#
+# Nodes are never placed into the polygon or line table and are always placed in
+# the point table.
+#
+# Hstore
+# ======
+#
+# The options --hstore, --hstore-match-only, and --hstore-all interact with
+# the .style file.
+#
+# With --hstore any tags without a column will be added to the hstore column.
+# This will also cause all objects to be kept.
+#
+# With --hstore-match-only the behavior for tags is the same, but objects are
+# only kept if they have a non-NULL value in one of the columns.
+#
+# With --hstore-all all tags are added to the hstore column unless they appear
+# in the style file with a delete flag, causing duplication between the normal
+# columns and the hstore column.
+#
+# Special database columns
+# ========================
+#
+# There are some special database columns that if present in the .style file
+# will be populated by osm2pgsql.
+#
+# These are
+#
+# z_order - datatype int4
+#
+# way_area - datatype real. The area of the way, in the units of the projection
+# (e.g. square mercator meters). Only applies to areas
+#
+# osm_user, osm_uid, osm_version, osm_timestamp - datatype text. Used with the
+# --extra-attributes option to include metadata in the database. If importing
+# with both --hstore and --extra-attributes the meta-data will end up in the
+# tags hstore column regardless of the style file.
+
+# OsmType Tag DataType Flags
+node,way access text linear
+node,way addr:housename text linear
+node,way addr:housenumber text linear
+node,way addr:interpolation text linear
+node,way admin_level text linear
+node,way aerialway text linear
+node,way aeroway text polygon
+node,way amenity text polygon
+node,way area text # hard coded support for area=1/yes => polygon is in osm2pgsql
+node,way barrier text linear
+node,way bicycle text
+node,way brand text linear
+node,way bridge text linear
+node,way boundary text linear
+node,way building text polygon
+node capital text linear
+node,way construction text linear
+node,way covered text linear
+node,way culvert text linear
+node,way cutting text linear
+node,way denomination text linear
+node,way disused text linear
+node ele text linear
+node,way embankment text linear
+node,way foot text linear
+node,way generator:source text linear
+node,way harbour text polygon
+node,way highway text linear
+node,way historic text polygon
+node,way horse text linear
+node,way intermittent text linear
+node,way junction text linear
+node,way landuse text polygon
+node,way layer text linear
+node,way leisure text polygon
+node,way lock text linear
+node,way man_made text polygon
+node,way military text polygon
+node,way motorcar text linear
+node,way name text linear
+node,way natural text polygon # natural=coastline tags are discarded by a hard coded rule in osm2pgsql
+node,way office text polygon
+node,way oneway text linear
+node,way operator text linear
+node,way place text polygon
+node poi text
+node,way population text linear
+node,way power text polygon
+node,way power_source text linear
+node,way public_transport text polygon
+node,way railway text linear
+node,way ref text linear
+node,way religion text nocache
+node,way route text linear
+node,way service text linear
+node,way shop text polygon
+node,way sport text polygon
+node,way surface text linear
+node,way toll text linear
+node,way tourism text polygon
+node,way tower:type text linear
+way tracktype text linear
+node,way tunnel text linear
+node,way water text polygon
+node,way waterway text polygon
+node,way wetland text polygon
+node,way width text linear
+node,way wood text linear
+node,way z_order int4 linear # This is calculated during import
+way way_area real # This is calculated during import
+
+# Area tags
+# We don't make columns for these tags, but objects with them are areas.
+# Mainly for use with hstore
+way abandoned:aeroway text phstore
+way abandoned:amenity text phstore
+way abandoned:building text phstore
+way abandoned:landuse text phstore
+way abandoned:power text phstore
+way area:highway text phstore
+
+# Deleted tags
+# These are tags that are generally regarded as useless for most rendering.
+# Most of them are from imports or intended as internal information for mappers
+# Some of them are automatically deleted by editors.
+# If you want some of them, perhaps for a debugging layer, just delete the lines.
+
+# These tags are used by mappers to keep track of data.
+# They aren't very useful for rendering.
+node,way note text delete
+node,way note:* text delete
+node,way source text delete
+node,way source_ref text delete
+node,way source:* text delete
+node,way attribution text delete
+node,way comment text delete
+node,way fixme text delete
+
+# Tags generally dropped by editors, not otherwise covered
+node,way created_by text delete
+node,way odbl text delete
+node,way odbl:note text delete
+node,way SK53_bulk:load text delete
+
+# Lots of import tags
+# TIGER (US)
+node,way tiger:* text delete
+
+# NHD (US)
+# NHD has been converted every way imaginable
+node,way NHD:* text delete
+node,way nhd:* text delete
+
+# GNIS (US)
+node,way gnis:* text delete
+
+# Geobase (CA)
+node,way geobase:* text delete
+# NHN (CA)
+node,way accuracy:meters text delete
+node,way sub_sea:type text delete
+node,way waterway:type text delete
+
+# KSJ2 (JA)
+# See also note:ja and source_ref above
+node,way KSJ2:* text delete
+# Yahoo/ALPS (JA)
+node,way yh:* text delete
+
+# osak (DK)
+node,way osak:* text delete
+
+# kms (DK)
+node,way kms:* text delete
+
+# ngbe (ES)
+# See also note:es and source:file above
+node,way ngbe:* text delete
+
+# naptan (UK)
+node,way naptan:* text delete
+
+# Corine (CLC) (Europe)
+node,way CLC:* text delete
+
+# misc
+node,way 3dshapes:ggmodelk text delete
+node,way AND_nosr_r text delete
+node,way import text delete
+node,way it:fvg:* text delete
diff --git a/placenames.mss b/placenames.mss
new file mode 100644
index 0000000..d98f2b9
--- /dev/null
+++ b/placenames.mss
@@ -0,0 +1,142 @@
+ at placenames: #222;
+ at placenames-light: #777777;
+.country {
+ [place = 'country'][zoom >= 2][zoom < 6] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #9d6c9d;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1.5;
+ text-wrap-width: 20;
+ [zoom >= 4] {
+ text-size: 10;
+ }
+ }
+}
+
+.state {
+ [place = 'state'][zoom >= 4][zoom < 9] {
+ text-name: "[ref]";
+ text-size: 9;
+ text-fill: #9d6c9d;
+ text-face-name: @oblique-fonts;
+ text-halo-radius: 1.5;
+ text-wrap-width: 0;
+ [zoom >= 5] {
+ text-name: "[name]";
+ }
+ [zoom >= 7] {
+ text-size: 11;
+ }
+ }
+}
+
+#placenames-capital {
+ [zoom >= 5][zoom < 15] {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: @placenames;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1.5;
+ text-min-distance: 10;
+ [zoom >= 6] {
+ text-size: 12;
+ }
+ [zoom >= 11] {
+ text-size: 15;
+ }
+ }
+}
+
+#placenames-medium::city {
+ [place = 'city'] {
+ [zoom >= 6][zoom < 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: @placenames;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1.5;
+ text-min-distance: 10;
+ [zoom >= 9] {
+ text-size: 12;
+ }
+ [zoom >= 11] {
+ text-size: 15;
+ }
+ }
+ }
+}
+
+#placenames-medium::town {
+ [place = 'town'] {
+ [zoom >= 9] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: @placenames;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1.5;
+ text-wrap-width: 20;
+ text-min-distance: 10;
+ }
+ [zoom >= 11] {
+ text-size: 11;
+ }
+ [zoom >= 14] {
+ text-size: 15;
+ text-fill: @placenames-light;
+ }
+ }
+}
+
+#placenames-small::suburb {
+ [place = 'suburb'][zoom >= 12] {
+ text-name: "[name]";
+ text-size: 11;
+ text-fill: @placenames;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1.5;
+ text-min-distance: 10;
+ [zoom >= 14] {
+ text-size: 14;
+ text-fill: @placenames-light;
+ }
+ }
+}
+
+#placenames-small::village {
+ [place = 'village'] {
+ [zoom >=12] {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: @placenames;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1.5;
+ text-min-distance: 10;
+ [zoom >= 15] {
+ text-size: 13;
+ text-fill: @placenames-light;
+ }
+ }
+ }
+}
+
+#placenames-small::hamlet {
+ [place = 'hamlet'],
+ [place = 'locality'],
+ [place = 'neighbourhood'],
+ [place = 'isolated_dwelling'],
+ [place = 'farm'] {
+ [zoom >= 14] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: @placenames;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1.5;
+ text-min-distance: 10;
+ }
+ [zoom >= 16] {
+ text-size: 12;
+ text-fill: @placenames-light;
+ }
+ }
+}
diff --git a/power.mss b/power.mss
new file mode 100644
index 0000000..e402c0d
--- /dev/null
+++ b/power.mss
@@ -0,0 +1,34 @@
+#power-line {
+ [zoom >= 14] {
+ line-width: 1;
+ line-color: #777;
+ }
+ [zoom >= 16] {
+ line-width: 1.5;
+ }
+}
+
+#power-minorline {
+ [zoom >= 16] {
+ line-width: 0.5;
+ line-color: #777;
+ }
+}
+
+#power-towers {
+ [zoom >= 14] {
+ point-file: url('symbols/power_tower_3x3.png');
+ }
+ [zoom >= 15] {
+ point-file: url('symbols/power_tower_5x5.png');
+ }
+ [zoom >= 17] {
+ point-file: url('symbols/power_tower.png');
+ }
+}
+
+#power-poles {
+ [zoom >= 16] {
+ point-file: url('symbols/power_pole.png');
+ }
+}
diff --git a/project.mml b/project.mml
new file mode 100644
index 0000000..7082f69
--- /dev/null
+++ b/project.mml
@@ -0,0 +1,1757 @@
+{
+ "bounds": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "center": [
+ 0,
+ 0,
+ 4
+ ],
+ "format": "png",
+ "interactivity": false,
+ "minzoom": 0,
+ "maxzoom": 22,
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Stylesheet": [
+ "style.mss",
+ "shapefiles.mss",
+ "landcover.mss",
+ "water.mss",
+ "water-features.mss",
+ "roads.mss",
+ "power.mss",
+ "citywalls.mss",
+ "placenames.mss",
+ "buildings.mss",
+ "amenity-symbols.mss",
+ "stations.mss",
+ "amenity-points.mss",
+ "ferry-routes.mss",
+ "aerialways.mss",
+ "admin.mss",
+ "addressing.mss"
+ ],
+ "Layer": [
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -85.051,
+ 179.99999692067183,
+ 83.66933299999998
+ ],
+ "id": "world",
+ "class": "",
+ "Datasource": {
+ "file": "data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp",
+ "type": "shape"
+ },
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "world"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -85.051,
+ 179.99999692067183,
+ 83.66933299999998
+ ],
+ "id": "coast-poly",
+ "class": "",
+ "Datasource": {
+ "file": "data/land-polygons-split-3857/land_polygons.shp",
+ "type": "shape"
+ },
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "coast-poly"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.12960815429688,
+ -52.982724914179855,
+ 178.4432525634766,
+ 70.87402746981634
+ ],
+ "id": "builtup",
+ "class": "",
+ "Datasource": {
+ "file": "data/world_boundaries/builtup_area.shp",
+ "type": "shape"
+ },
+ "srs-name": "mercator",
+ "srs": "+proj=merc +datum=WGS84 +over",
+ "advanced": {},
+ "name": "builtup"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -140.99778,
+ -54.89681,
+ 141.03385176001382,
+ 70.16419
+ ],
+ "id": "necountries",
+ "class": "",
+ "Datasource": {
+ "file": "data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp",
+ "type": "shape"
+ },
+ "srs-name": "WGS84",
+ "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs",
+ "advanced": {},
+ "name": "necountries"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way, religion,\ncoalesce (aeroway, amenity, landuse, leisure, military, \"natural\", power, tourism, highway) as feature from (\nselect way,\n('aeroway_' || (case when aeroway in ('apron', 'aerodrome') then aeroway else null end)) as aeroway,\n('amenity_' || (case when amenity in ('parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard') then amenity else null end)) as amenity,\n('landuse_' || (case when landuse in ('quarry', 'viney [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "",
+ "dbname": "gis"
+ },
+ "id": "landcover",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "landcover"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way\nfrom planet_osm_line\nwhere man_made='cutline'\n) as landcover_line",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "landcover-line",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "landcover-line"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,leisure,\ncase when leisure='pitch' then 2\n when leisure='track' then 1\n else 0 end as prio\n from planet_osm_polygon\n where leisure in ('sports_centre','stadium','pitch','track')\n order by z_order,prio,way_area desc\n) as sports_grounds",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "sports-grounds",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "sports-grounds"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,waterway\n from planet_osm_line\n where waterway in ('stream','drain','ditch')\n and (tunnel is null or tunnel != 'yes')\n ) as water_lines_casing",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "water-lines-casing",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "water-lines-casing"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,waterway\n from planet_osm_line\n where waterway='river'\n ) as water_lines_low_zoom",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "water-lines-low-zoom",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "water-lines-low-zoom"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,\"natural\",waterway,landuse,name\n from planet_osm_polygon\n where (waterway in ('dock','mill_pond','riverbank','canal')\n or landuse in ('reservoir','water','basin')\n or \"natural\" in ('lake','water','land','glacier','mud'))\n and building is null\n order by z_order,way_area desc\n ) as water_areas",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "water-areas",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "water-areas"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,\"natural\"\n from planet_osm_polygon\n where \"natural\" in ('marsh','wetland') and building is null\n order by z_order,way_area desc\n ) as water_areas_overlay",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "water-areas-overlay",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "water-areas-overlay"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,waterway,lock,name,tunnel\n from planet_osm_line\n where waterway in ('weir','river','canal','derelict_canal','stream','drain','ditch','wadi')\n and (bridge is null or bridge not in ('yes','true','1','aqueduct'))\n order by z_order\n ) as water_lines",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "water-lines",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "water-lines"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,name from planet_osm_line where waterway='dam') as dam",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "dam",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "dam"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_polygon where leisure ='marina') as marinas_area",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "marinas-area",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "marinas-area"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,man_made from planet_osm_polygon where man_made in ('pier','breakwater','groyne')) as piers_area",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "piers-area",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "piers-area"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,man_made from planet_osm_line where man_made in ('pier','breakwater','groyne')) as piers",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "piers",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "piers"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,waterway from planet_osm_point where waterway='lock_gate') as locks",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "locks",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "locks"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,coalesce(('highway_' || highway), ('railway_' ||(case when railway='preserved' and service in ('spur','siding','yard') then 'INT-preserved-ssy'::text when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('light_rail', 'narrow_gauge', 'funicular', 'rail', 'subway', 'tram', 'spur', 'siding', 'monorail', 'platform', 'preserved', 'disused', 'abandoned', 'construction', 'miniature', 'turntable') then railway e [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "tunnels",
+ "class": "tunnels-fill tunnels-casing access directions",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "tunnels",
+ "properties": {
+ "group-by": "layernotnull"
+ }
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_line where \"historic\"='citywalls') as citywalls",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "citywalls",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "citywalls"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_line where \"historic\"='castle_walls') as castlewalls",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "castlewalls",
+ "class": "castlewalls",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "castlewalls"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_polygon where \"historic\"='castle_walls') as castlewalls_poly",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "castlewalls-poly",
+ "class": "castlewalls",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "castlewalls-poly"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,landuse,leisure\n from planet_osm_polygon\n where (landuse = 'military' or leisure='nature_reserve') and building is null\n ) as landuse_overlay",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "landuse-overlay",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "landuse-overlay"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way, barrier from planet_osm_line where barrier is not null) as line_barriers",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "line-barriers",
+ "class": "barriers",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "line-barriers"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,\"natural\",man_made from planet_osm_line where \"natural\" = 'cliff' or man_made = 'embankment') as cliffs",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "cliffs",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "cliffs"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,barrier from planet_osm_polygon where barrier is not null) as area_barriers",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "area-barriers",
+ "class": "barriers",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "area-barriers"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_line where route='ferry' ) as ferry_routes",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "ferry-routes",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "ferry-routes"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select distinct on (p.way) p.way as way,l.highway as int_tc_type\n from planet_osm_point p\n join planet_osm_line l\n on ST_DWithin(p.way,l.way,0.1)\n join (values\n ('tertiary',1),\n ('unclassified',2),\n ('residential',3),\n ('living_street',4),\n ('service',5)\n ) as v (highway,prio)\n on v.highway=l.highway\n where p.highway='turning_circle'\n order by p.way,v.prio\n ) as turn [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "turning-circle-casing",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "turning-circle-casing"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,coalesce(('highway_' || (case when highway in ('residential','unclassified','pedestrian','service','footway','track','path','platform') then highway else null end)), ('railway_' || (case when railway in ('platform') then railway else null end))) as feature from planet_osm_polygon\n where highway in ('residential','unclassified','pedestrian','service','footway','track','path','platform')\n or railway in ('platform')\n order by z_order,way [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "highway-area-casing",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "highway-area-casing"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,coalesce(('highway_' || highway), ('railway_' ||(case when railway='preserved' and service in ('spur','siding','yard') then 'INT-preserved-ssy'::text when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('light_rail', 'narrow_gauge', 'funicular', 'rail', 'subway', 'tram', 'spur', 'siding', 'monorail', 'platform', 'preserved', 'disused', 'abandoned', 'construction', 'miniature', 'turntable') then rai [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "roads-casing",
+ "class": "roads-casing",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "roads-casing"
+ },
+ {
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,coalesce(('highway_' || (case when highway in ('residential','unclassified','pedestrian','service','footway','living_street','track','path','platform','services') then highway else null end)), ('railway_' || (case when railway in ('platform') then railway else null end)), (('aeroway_' || case when aeroway in ('runway','taxiway','helipad') then aeroway else null end))) as feature from planet_osm_polygon\n where highway in ('residential','unclassified',' [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "highway-area-fill",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "highway-area-fill"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,building,railway,amenity from planet_osm_polygon\n where railway='station'\n or building in ('station','supermarket')\n or amenity='place_of_worship'\n order by z_order,way_area desc) as buildings_lz",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "buildings-lz",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "buildings-lz"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,aeroway,\n case\n when building in ('residential','house','garage','garages','detached','terrace','apartments') then 'INT-light'::text\n else building\n end as building\n from planet_osm_polygon\n where (building is not null\n and building not in ('no','station','supermarket','planned')\n and (railway is null or railway != 'station')\n and (amenity is null or amenity != 'place_of_worship [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "buildings",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "buildings"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,coalesce(('highway_' || highway), ('railway_' ||(case when railway='preserved' and service in ('spur','siding','yard') then 'INT-preserved-ssy'::text when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('light_rail', 'narrow_gauge', 'funicular', 'rail', 'subway', 'tram', 'spur', 'siding', 'monorail', 'platform', 'preserved', 'disused', 'abandoned', 'construction', 'miniature', 'turntable') then rai [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "roads-fill",
+ "class": "roads-fill access directions",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "roads-fill"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select distinct on (p.way) p.way as way,l.highway as int_tc_type\n from planet_osm_point p\n join planet_osm_line l\n on ST_DWithin(p.way,l.way,0.1)\n join (values\n ('tertiary',1),\n ('unclassified',2),\n ('residential',3),\n ('living_street',4),\n ('service',5)\n ) as v (highway,prio)\n on v.highway=l.highway\n where p.highway='turning_circle'\n order by p.way,v.prio\n ) a [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "turning-circle-fill",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "turning-circle-fill"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,aerialway from planet_osm_line where aerialway is not null) as aerialways",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "aerialways",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "aerialways"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,coalesce(('highway_' || (case when highway is not null then highway else null end)), ('railway_' || (case when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('rail','tram','light_rail','funicular','narrow_gauge') then railway else null end))) as feature,tunnel\n from planet_osm_roads\n where highway is not null\n or (railway is not null and railway!='preserved' and (service is [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "roads-low-zoom",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "roads-low-zoom"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,name from planet_osm_line where waterway='canal' and bridge in ('yes','true','1','aqueduct') order by z_order) as waterway_bridges",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "waterway-bridges",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "waterway-bridges"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,coalesce(('highway_' || highway), ('railway_' ||(case when railway='preserved' and service in ('spur','siding','yard') then 'INT-preserved-ssy'::text when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('light_rail', 'narrow_gauge', 'funicular', 'rail', 'subway', 'tram', 'spur', 'siding', 'monorail', 'platform', 'preserved', 'disused', 'abandoned', 'construction', 'miniature', 'turntable') then railway e [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "bridges",
+ "class": "bridges-fill bridges-casing access directions",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "bridges",
+ "properties": {
+ "group-by": "layernotnull"
+ }
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,railway,bridge from planet_osm_line where railway='tram' and (tunnel is null or tunnel != 'yes')) as trams",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "trams",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "trams"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_line where highway='bus_guideway' and (tunnel is null or tunnel != 'yes')) as guideways",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "guideways",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "guideways"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,admin_level\n from planet_osm_roads\n where \"boundary\"='administrative'\n and admin_level in ('0','1','2','3','4')\n ) as admin_01234",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "admin-01234",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "admin-01234"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,admin_level\n from planet_osm_roads\n where \"boundary\"='administrative'\n and admin_level in ('5','6','7','8')\n ) as admin_5678",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "admin-5678",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "admin-5678"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,admin_level\n from planet_osm_roads\n where \"boundary\"='administrative'\n and admin_level in ('9', '10')\n ) as admin_other",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "admin-other",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "admin-other"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_line where \"power\"='minor_line') as power_minorline",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "power-minorline",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "power-minorline"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_line where \"power\"='line') as power_line",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "power-line",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "power-line"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.58997888396897,
+ -85.051,
+ 179.38330358817018,
+ 82.48332318035943
+ ],
+ "id": "nepopulated",
+ "class": "",
+ "Datasource": {
+ "file": "data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp",
+ "type": "shape",
+ "encoding": "windows-1252"
+ },
+ "srs-name": "WGS84",
+ "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs",
+ "advanced": {
+ "encoding": "windows-1252"
+ },
+ "name": "nepopulated"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,place,name,ref\n from planet_osm_point\n where place in ('country','state')\n ) as placenames_large",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "placenames-large",
+ "class": "country state",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "placenames-large"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,place,name,ref\n from planet_osm_point\n where place in ('city','town') and capital='yes'\n ) as placenames_capital",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "placenames-capital",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "placenames-capital"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,place,name\n from planet_osm_point\n where place in ('city','town')\n and (capital is null or capital != 'yes')\n ) as placenames_medium",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "placenames-medium",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "placenames-medium"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,place,name\n from planet_osm_point\n where place in ('suburb','village','hamlet','neighbourhood','locality','isolated_dwelling','farm')\n ) as placenames_small",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "placenames-small",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "placenames-small"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,name,railway,aerialway,disused\n from planet_osm_point\n where railway in ('station','halt','tram_stop','subway_entrance')\n or aerialway='station'\n ) as stations",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "stations",
+ "class": "stations",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "stations"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,name,railway,aerialway,disused\n from planet_osm_polygon\n where railway in ('station','halt','tram_stop')\n or aerialway='station'\n ) as stations_poly",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "stations-poly",
+ "class": "stations",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "stations-poly"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,name,way_area\n from planet_osm_polygon\n where \"natural\"='glacier' and building is null\n order by way_area desc\n ) as glaciers_text",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "glaciers-text",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "glaciers-text"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select *\n from planet_osm_point\n where aeroway in ('aerodrome','helipad')\n or barrier in ('bollard','gate','lift_gate','block')\n or highway in ('mini_roundabout','gate')\n or man_made in ('lighthouse','power_wind','windmill','mast')\n or (power='generator' and (\"generator:source\"='wind' or power_source='wind'))\n or \"natural\" in ('peak','volcano','spring','tree','cave_entrance')\n or railway='level_cross [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "amenity-symbols",
+ "class": "symbols",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "amenity-symbols"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select *\n from planet_osm_polygon\n where aeroway in ('aerodrome','helipad')\n or barrier in ('bollard','gate','lift_gate','block')\n or highway in ('mini_roundabout','gate')\n or man_made in ('lighthouse','power_wind','windmill','mast')\n or (power='generator' and (\"generator:source\"='wind' or power_source='wind'))\n or \"natural\" in ('peak','volcano','spring','tree')\n or railway='level_crossing'\n ) [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "amenity-symbols-poly",
+ "class": "symbols",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "amenity-symbols-poly"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,amenity,shop,tourism,highway,man_made,access,religion,waterway,lock,historic,leisure\n from planet_osm_point\n where amenity is not null\n or shop is not null\n or tourism in ('alpine_hut','camp_site','picnic_site','caravan_site','guest_house','hostel','hotel','motel','museum','viewpoint','bed_and_breakfast','information','chalet')\n or highway in ('bus_stop','traffic_signals','ford')\n or man_made in ('mast','water_ [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "amenity-points",
+ "class": "points",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "amenity-points"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,amenity,shop,tourism,highway,man_made,access,religion,waterway,lock,historic,leisure\n from planet_osm_polygon\n where amenity is not null\n or shop is not null\n or tourism in ('alpine_hut','camp_site','picnic_site','caravan_site','guest_house','hostel','hotel','motel','museum','viewpoint','bed_and_breakfast','information','chalet')\n or highway in ('bus_stop','traffic_signals')\n or man_made in ('mast','water_tower [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "amenity-points-poly",
+ "class": "points",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "amenity-points-poly"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_point where power='tower') as power_towers",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "power-towers",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "power-towers"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_point where power='pole') as power_poles",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "power-poles",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "power-poles"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,highway,ref,char_length(ref) as length\n from planet_osm_roads\n where highway in ('motorway','trunk','primary','secondary')\n and ref is not null\n and char_length(ref) between 1 and 8\n ) as roads_text_ref_low_zoom",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "roads-text-ref-low-zoom",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "roads-text-ref-low-zoom"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,ref,name\n from planet_osm_point\n where highway='motorway_junction'\n ) as highway_junctions",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "highway-junctions",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "highway-junctions"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,coalesce(highway,aeroway) as highway,ref,char_length(ref) as length,\n case when bridge in ('yes','true','1') then 'yes'::text else 'no'::text end as bridge\n from planet_osm_line\n where (highway is not null or aeroway is not null)\n and ref is not null\n and char_length(ref) between 1 and 8\n ) as roads_text_ref",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "roads-text-ref",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "roads-text-ref"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way, highway, name\n from planet_osm_polygon\n where highway='pedestrian'\n and name is not null\n ) as roads_area_text_name",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "roads-area-text-name",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "roads-area-text-name"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way, highway, name\n from planet_osm_line\n 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') \n and name is not null\n ) as roads_text_name",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "roads-text-name",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "roads-text-name"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way, highway, name\n from planet_osm_line\n where highway in ('bridleway', 'footway', 'cycleway', 'path', 'track', 'steps') \n and name is not null\n ) as paths_text_name",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "paths-text-name",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "paths-text-name"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,amenity,shop,access,leisure,landuse,man_made,\"natural\",place,tourism,ele,name,ref,military,aeroway,waterway,historic,NULL as way_area\n from planet_osm_point\n where amenity is not null\n or shop in ('supermarket','bakery','clothes','fashion','convenience','doityourself','hairdresser','department_store','butcher','car','car_repair','bicycle','florist')\n or leisure is not null\n or landuse is not null\n [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "text",
+ "class": "text",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "text"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,aeroway,shop,access,amenity,leisure,landuse,man_made,\"natural\",place,tourism,NULL as ele,name,ref,military,waterway,historic,way_area\n from planet_osm_polygon\n where amenity is not null\n or shop in ('supermarket','bakery','clothes','fashion','convenience','doityourself','hairdresser','department_store', 'butcher','car','car_repair','bicycle')\n or leisure is not null\n or landuse is not null\n or tourism i [...]
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "text-poly",
+ "class": "text",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "text-poly"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select name, way, way_area from planet_osm_polygon where building is not null and building not in ('no','station','supermarket')) as building_text",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "building-text",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "building-text"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way from planet_osm_line where \"addr:interpolation\" is not null) as interpolation",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "interpolation",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "interpolation"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,\"addr:housenumber\" from planet_osm_polygon where \"addr:housenumber\" is not null and building is not null\n union\n select way,\"addr:housenumber\" from planet_osm_point where \"addr:housenumber\" is not null\n ) as housenumbers",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "housenumbers",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "housenumbers"
+ },
+ {
+ "geometry": "point",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,\"addr:housename\" from planet_osm_polygon where \"addr:housename\" is not null and building is not null\n union\n select way,\"addr:housename\" from planet_osm_point where \"addr:housename\" is not null\n ) as housenames",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "housenames",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "housenames"
+ },
+ {
+ "geometry": "linestring",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": " (select way,waterway,lock,name,tunnel\n from planet_osm_line\n where waterway in ('weir','river','canal','derelict_canal','stream','drain','ditch','wadi')\n order by z_order\n ) as water_lines_text",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "water-lines-text",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "water-lines-text"
+ },
+ {
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427098,
+ 179.99999692067183,
+ 84.96651228427099
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way, name, admin_level from planet_osm_polygon where \"boundary\" = 'administrative' and admin_level in ('0','1','2','3','4','5','6','7','8','9','10')) as admin_text",
+ "key_field": "",
+ "geometry_field": "way",
+ "extent_cache": "custom",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "dbname": "gis"
+ },
+ "id": "admin-text",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "admin-text",
+ "geometry": "linestring"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,way_area,name,boundary from planet_osm_polygon where boundary='national_park' and building is null) as national_park_boundaries",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "national-park-boundaries",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "national-park-boundaries"
+ },
+ {
+ "geometry": "polygon",
+ "extent": [
+ -179.99999692067183,
+ -84.96651228427099,
+ 179.99999692067183,
+ 84.96651228427098
+ ],
+ "Datasource": {
+ "type": "postgis",
+ "table": "(select way,name,tourism from planet_osm_polygon where tourism='theme_park') as theme_park",
+ "extent": "-20037508,-19929239,20037508,19929239",
+ "key_field": "",
+ "geometry_field": "way",
+ "dbname": "gis"
+ },
+ "id": "theme-park",
+ "class": "",
+ "srs-name": "900913",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "advanced": {},
+ "name": "theme-park"
+ }
+ ],
+ "scale": 1,
+ "metatile": 2,
+ "name": "OpenStreetMap Carto",
+ "description": "A faithful reimplementation of the standard OpenStreetMap style"
+}
diff --git a/roads.mss b/roads.mss
new file mode 100644
index 0000000..a841e93
--- /dev/null
+++ b/roads.mss
@@ -0,0 +1,2449 @@
+/* For the main linear features, such as roads and railways. */
+
+ at motorway-fill: #89a4cb;
+ at trunk-fill: #94d494;
+ at trunk-fill-alternative: #97d397;
+ at primary-fill: #dd9f9f;
+ at secondary-fill: #f9d6aa;
+ at tertiary-fill: #f8f8ba;
+ at residential-fill: #ffffff;
+ at service-fill: #ffffff;
+ at living-street-fill: #ccc;
+ at pedestrian-fill: #ededed;
+ at road-fill: #ddd;
+ at path-fill: black;
+ at footway-fill: salmon;
+ at steps-fill: @footway-fill;
+ at cycleway-fill: blue;
+ at bridleway-fill: green;
+ at track-fill: #996600;
+ at track-grade1-fill: #b37700;
+ at track-grade2-fill: #a87000;
+ at aeroway-fill: #bbc;
+ at runway-fill: @aeroway-fill;
+ at taxiway-fill: @aeroway-fill;
+ at helipad-fill: @aeroway-fill;
+
+ at default-casing: white;
+ at motorway-casing: #7788a1;
+ at trunk-casing: #7eae7e;
+ at primary-casing: #c57b7e;
+ at secondary-casing: #cca16a;
+ at tertiary-casing: #c6c68a;
+ at residential-casing: #bbb;
+ at service-casing: #999;
+ at living-street-casing: @default-casing;
+ at living-street-tunnel-casing: #bbb;
+ at pedestrian-casing: grey;
+ at path-casing: @default-casing;
+ at footway-casing: @default-casing;
+ at steps-casing: @default-casing;
+ at cycleway-casing: @default-casing;
+ at bridleway-casing: @default-casing;
+ at track-casing: @default-casing;
+
+ at residential-construction: #aaa;
+ at service-construction: #aaa;
+
+ at permissive-marking: #cf9;
+ at destination-marking: #c2e0ff;
+ at private-marking: #efa9a9;
+
+ at tunnel-casing: grey;
+ at bridge-casing: black;
+
+ at motorway-tunnel-fill: lighten(@motorway-fill, 25%);
+ at trunk-tunnel-fill: lighten(@trunk-fill, 10%);
+ at primary-tunnel-fill: lighten(@primary-fill, 10%);
+ at secondary-tunnel-fill: lighten(@secondary-fill, 5%);
+ at tertiary-tunnel-fill: lighten(@tertiary-fill, 5%);
+ at residential-tunnel-fill: lighten(@residential-fill, 10%);
+ at living-street-tunnel-fill: lighten(@living-street-fill, 10%);
+
+ at motorway-width-z12: 3;
+ at motorway-link-width-z12: 1.5;
+ at trunk-width-z12: 3.5;
+ at primary-width-z12: 3.5;
+ at secondary-width-z12: 3;
+
+ at motorway-width-z13: 6.5;
+ at motorway-link-width-z13: 4.5;
+ at trunk-width-z13: 8.5;
+ at primary-width-z13: 8.5;
+ at secondary-width-z13: 9.5;
+ at tertiary-width-z13: 6;
+ at residential-width-z13: 3;
+
+ at tertiary-width-z14: 7.5;
+ at residential-width-z14: 4.5;
+
+ at motorway-width-z15: 10.3;
+ at motorway-link-width-z15: 7.8;
+ at trunk-width-z15: 12.8;
+ at primary-width-z15: 12.8;
+ at secondary-width-z15: 12.8;
+ at tertiary-width-z15: 11.2;
+ at tertiary-link-width-z15: 11;
+ at residential-width-z15: 8.3;
+
+ at residential-width-z16: 11.2;
+
+ at motorway-width-z17: 13.5; // shouldn't be narrower than trunk!
+ at motorway-link-width-z17: 11.5;
+ at trunk-width-z17: 18;
+ at primary-width-z17: 18;
+ at secondary-width-z17: 18;
+ at tertiary-width-z17: 15.5;
+ at tertiary-link-width-z17: 16;
+ at residential-width-z17: 15.5;
+
+ at casing-width-z12: 0.5;
+ at casing-width-z13: 0.75;
+ at residential-casing-width-z13: 0.5;
+ at casing-width-z14: 0.75;
+ at casing-width-z15: 0.9;
+ at tertiary-link-casing-width-z15: 0.8;
+ at casing-width-z16: 0.9;
+ at casing-width-z17: 1.25;
+ at tertiary-link-casing-width-z17: 1.5;
+
+ at bridge-casing-width-z12: 0.5;
+ at bridge-casing-width-z13: 0.5;
+ at bridge-casing-width-z14: 0.5;
+ at bridge-casing-width-z15: 0.75;
+ at bridge-casing-width-z16: 0.75;
+ at bridge-casing-width-z17: 0.75;
+
+.roads-casing, .bridges-casing, .tunnels-casing {
+ ::casing_links {
+ [feature = 'highway_raceway'] {
+ [zoom >= 12] {
+ line-color: pink;
+ line-width: 1.2;
+ line-join: round;
+ line-cap: round;
+ }
+ [zoom >= 13] { line-width: 4; }
+ [zoom >= 15] { line-width: 7; }
+ }
+
+ [feature = 'highway_motorway_link'] {
+ [zoom >= 12] {
+ line-color: @motorway-casing;
+ line-width: @motorway-link-width-z12;
+ [zoom >= 13] { line-width: @motorway-link-width-z13; }
+ [zoom >= 15] { line-width: @motorway-link-width-z15; }
+ [zoom >= 17] { line-width: @motorway-link-width-z17; }
+ .roads-casing {
+ line-join: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ line-join: round;
+ [zoom >= 13] { line-color: @bridge-casing; }
+ }
+ }
+ }
+
+ [feature = 'highway_trunk_link'] {
+ [zoom >= 12] {
+ line-width: @trunk-width-z12;
+ [zoom >= 13] { line-width: @trunk-width-z13; }
+ [zoom >= 15] { line-width: @trunk-width-z15; }
+ [zoom >= 17] { line-width: @trunk-width-z17; }
+ line-color: @trunk-casing;
+ .roads-casing {
+ line-join: round;
+ line-cap: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ line-join: round;
+ [zoom >= 13] { line-color: @bridge-casing; }
+ }
+ }
+ }
+
+ [feature = 'highway_primary_link'] {
+ [zoom >= 12] {
+ line-color: @primary-casing;
+ line-width: @primary-width-z12;
+ [zoom >= 13] { line-width: @primary-width-z13; }
+ [zoom >= 15] { line-width: @primary-width-z15; }
+ [zoom >= 17] { line-width: @primary-width-z17; }
+ .roads-casing {
+ line-join: round;
+ line-cap: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ line-join: round;
+ [zoom >= 13] { line-color: @bridge-casing; }
+ }
+ }
+ }
+
+ [feature = 'highway_secondary_link'] {
+ [zoom >= 12] {
+ line-color: @secondary-casing;
+ line-width: @secondary-width-z12;
+ [zoom >= 13] { line-width: @secondary-width-z13; }
+ [zoom >= 15] { line-width: @secondary-width-z15; }
+ [zoom >= 17] { line-width: @secondary-width-z17; }
+ .roads-casing {
+ line-cap: round;
+ line-join: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ [zoom >= 13] {
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+ }
+
+ [feature = 'highway_tertiary_link'] {
+ [zoom >= 13] {
+ line-color: @tertiary-casing;
+ line-width: @tertiary-width-z13;
+ [zoom >= 14] { line-width: @tertiary-width-z14; }
+ [zoom >= 15] { line-width: @tertiary-link-width-z15; }
+ [zoom >= 17] { line-width: @tertiary-link-width-z17; }
+ .roads-casing {
+ line-cap: round;
+ line-join: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ [zoom >= 14] {
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+ }
+ }
+
+ ::casing {
+ [zoom >= 12] {
+ [feature = 'highway_motorway'] {
+ line-width: @motorway-width-z12;
+ [zoom >= 13] { line-width: @motorway-width-z13; }
+ [zoom >= 15] { line-width: @motorway-width-z15; }
+ [zoom >= 17] { line-width: @motorway-width-z17; }
+ line-color: @motorway-casing;
+ .roads-casing {
+ line-join: round;
+ line-cap: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ line-join: round;
+ [zoom >= 13] { line-color: @bridge-casing; }
+ }
+ }
+ }
+
+ [feature = 'highway_trunk'] {
+ [zoom >= 12] {
+ line-color: @trunk-casing;
+ line-width: @trunk-width-z12;
+ [zoom >= 13] { line-width: @trunk-width-z13; }
+ [zoom >= 15] { line-width: @trunk-width-z15; }
+ [zoom >= 17] { line-width: @trunk-width-z17; }
+ .roads-casing {
+ line-join: round;
+ line-cap: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ line-join: round;
+ [zoom >= 13] { line-color: @bridge-casing; }
+ }
+ }
+ }
+
+ [feature = 'highway_primary'] {
+ [zoom >= 12] {
+ line-color: @primary-casing;
+ line-width: @primary-width-z12;
+ [zoom >= 13] { line-width: @primary-width-z13; }
+ [zoom >= 15] { line-width: @primary-width-z15; }
+ [zoom >= 17] { line-width: @primary-width-z17; }
+ .roads-casing {
+ line-join: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ line-join: round;
+ [zoom >= 13] { line-color: @bridge-casing; }
+ }
+ }
+ }
+
+ [feature = 'highway_secondary'] {
+ [zoom >= 12] {
+ line-color: @secondary-casing;
+ line-width: @secondary-width-z12;
+ [zoom >= 13] { line-width: @secondary-width-z13; }
+ [zoom >= 15] { line-width: @secondary-width-z15; }
+ [zoom >= 17] { line-width: @secondary-width-z17; }
+ .roads-casing {
+ line-join: round;
+ line-cap: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ [zoom >= 13] {
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+ }
+
+ [feature = 'highway_tertiary'] {
+ [zoom >= 13] {
+ line-color: @tertiary-casing;
+ line-width: @tertiary-width-z13;
+ [zoom >= 14] { line-width: @tertiary-width-z14; }
+ [zoom >= 15] { line-width: @tertiary-width-z15; }
+ [zoom >= 17] { line-width: @tertiary-width-z17; }
+ .roads-casing {
+ line-join: round;
+ line-cap: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ [zoom >= 14] {
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+ }
+
+ [feature = 'highway_residential'],
+ [feature = 'highway_unclassified'],
+ [feature = 'highway_road'] {
+ [zoom >= 13] {
+ line-color: @residential-casing;
+ line-width: @residential-casing-width-z13;
+ [zoom >= 14] { line-width: @residential-width-z14; }
+ [zoom >= 15] { line-width: @residential-width-z15; }
+ [zoom >= 16] { line-width: @residential-width-z16; }
+ [zoom >= 17] { line-width: @residential-width-z17; }
+ .roads-casing {
+ line-join: round;
+ line-cap: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ [zoom >= 14] {
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+ }
+
+ [feature = 'highway_service'] {
+ [zoom >= 14][service = 'INT-normal'],
+ [zoom >= 16][service = 'INT-minor'] {
+ line-color: @service-casing;
+ [service = 'INT-normal'] {
+ .roads-casing, .tunnels-casing {
+ line-width: 2.5;
+ [zoom >= 16] { line-width: 7; }
+ }
+ .bridges-casing {
+ line-width: 3;
+ [zoom >= 16] { line-width: 8; }
+ }
+ }
+ [service = 'INT-minor'] {
+ line-width: 4;
+ }
+ line-join: round;
+ line-cap: round;
+ .tunnels-casing { line-dasharray: 4,2; }
+ .bridges-casing {
+ line-color: @bridge-casing;
+ line-join: round;
+ line-cap: butt;
+ }
+ }
+ }
+
+ [feature = 'highway_pedestrian'] {
+ [zoom >= 13] {
+ line-join: round;
+ .roads-casing, .tunnels-casing {
+ line-width: 2;
+ line-color: @pedestrian-casing;
+ line-cap: round;
+ [zoom >= 14] { line-width: 3.6; }
+ [zoom >= 15] { line-width: 6.5; }
+ [zoom >= 16] { line-width: 9; }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ }
+ .bridges-casing {
+ line-width: 2.2;
+ line-color: @bridge-casing;
+ [zoom >= 14] { line-width: 3.8; }
+ [zoom >= 15] { line-width: 7; }
+ [zoom >= 16] { line-width: 9.5; }
+ }
+ }
+ }
+
+ [feature = 'highway_living_street'] {
+ [zoom >= 13] {
+ line-width: 2.5;
+ line-color: @living-street-casing;
+ [zoom >= 14] { line-width: 4; }
+ [zoom >= 15] { line-width: 6; }
+ [zoom >= 16] { line-width: 9; }
+ [zoom >= 17] { line-width: 14.5; }
+ .roads-casing {
+ line-cap: round;
+ line-join: round;
+ }
+ .tunnels-casing {
+ line-color: @living-street-tunnel-casing;
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ [zoom >= 14] {
+ line-color: @bridge-casing;
+ [zoom >= 15] { line-width: 6.2; }
+ [zoom >= 16] { line-width: 8.9; }
+ [zoom >= 17] { line-width: 15; }
+ }
+ }
+ }
+ }
+
+ [feature = 'highway_steps'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 6.5;
+ [zoom >= 15] { line-width: 9.5; }
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'highway_bridleway'],
+ [feature = 'highway_path'][horse = 'designated'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 5.5;
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'highway_footway'],
+ [feature = 'highway_path'][foot = 'designated'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 6;
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'highway_cycleway'],
+ [feature = 'highway_path'][bicycle = 'designated'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 5.5;
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'highway_path'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 4;
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'highway_track'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 4.5;
+ line-color: @bridge-casing;
+ line-join: round;
+ [tracktype = 'grade1'] {
+ line-width: 5;
+ }
+ }
+ }
+ }
+
+ [feature = 'railway_subway'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 5.5;
+ line-color: black;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'railway_light_rail'],
+ [feature = 'railway_narrow_gauge'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 5.5;
+ line-color: #555;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'railway_rail'],
+ [feature = 'railway_preserved'],
+ [feature = 'railway_monorail'][zoom >= 14] {
+ .bridges-casing {
+ [zoom >= 13] {
+ line-width: 6.5;
+ line-color: black;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'railway_INT-spur-siding-yard'] {
+ .bridges-casing {
+ [zoom >= 13] {
+ line-width: 5.7;
+ line-color: black;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'railway_disused'],
+ [feature = 'railway_abandoned'],
+ [feature = 'railway_construction'],
+ [feature = 'railway_funicular'][zoom >= 14],
+ [feature = 'railway_miniature'][zoom >= 15],
+ [feature = 'railway_INT-preserved-ssy'][zoom >= 14] {
+ .bridges-casing {
+ [zoom >= 13] {
+ line-width: 6;
+ line-color: black;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'aeroway_runway'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 19;
+ line-color: black;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'aeroway_taxiway'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 5;
+ line-color: black;
+ line-join: round;
+ [zoom >= 15] { line-width: 7; }
+ }
+ }
+ }
+ }
+
+ ::bridges_background {
+ [feature = 'highway_bridleway'],
+ [feature = 'highway_path'][horse = 'designated'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 4;
+ line-color: @bridleway-casing;
+ line-join: round;
+ line-cap: round;
+ }
+ }
+ }
+
+ [feature = 'highway_footway'],
+ [feature = 'highway_path'][foot = 'designated'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 4.5;
+ line-color: @footway-casing;
+ line-join: round;
+ line-cap: round;
+ }
+ }
+ }
+
+ [feature = 'highway_cycleway'],
+ [feature = 'highway_path'][bicycle = 'designated'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 4;
+ line-color: @cycleway-casing;
+ line-join: round;
+ line-cap: round;
+ }
+ }
+ }
+
+ [feature = 'highway_steps'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 5;
+ [zoom >= 15] { line-width: 8; }
+ line-color: @steps-casing;
+ line-join: round;
+ }
+ }
+ }
+
+ [feature = 'highway_path'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 2.5;
+ line-color: @path-casing;
+ line-join: round;
+ line-cap: round;
+ }
+ }
+ }
+
+ [feature = 'highway_track'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 3;
+ line-color: @track-casing;
+ line-join: round;
+ line-cap: round;
+ [tracktype = 'grade1'] { line-width: 3.5; }
+ }
+ }
+ }
+
+ [feature = 'railway_rail'][zoom >= 13],
+ [feature = 'railway_preserved'][zoom >= 14],
+ [feature = 'railway_monorail'][zoom >= 14] {
+ .bridges-casing {
+ line-width: 5;
+ line-color: white;
+ line-join: round;
+ }
+ }
+
+ [feature = 'railway_INT-spur-siding-yard'] {
+ .bridges-casing {
+ [zoom >= 13] {
+ line-width: 4;
+ line-color: white;
+ line-join: round;
+ line-cap: round;
+ }
+ }
+ }
+
+ [feature = 'railway_disused'],
+ [feature = 'railway_abandoned'],
+ [feature = 'railway_construction'],
+ [feature = 'railway_funicular'][zoom >= 14],
+ [feature = 'railway_miniature'][zoom >= 15],
+ [feature = 'railway_INT-preserved-ssy'][zoom >= 14] {
+ .bridges-casing {
+ [zoom >= 13] {
+ line-width: 4.5;
+ line-color: white;
+ line-join: round;
+ line-cap: round;
+ }
+ }
+ }
+
+ [feature = 'railway_subway'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 4;
+ line-color: white;
+ }
+ }
+ }
+
+ [feature = 'railway_light_rail'],
+ [feature = 'railway_narrow_gauge'] {
+ .bridges-casing {
+ [zoom >= 14] {
+ line-width: 4;
+ line-color: white;
+ }
+ }
+ }
+ }
+}
+
+.roads-fill,.bridges-fill,.tunnels-fill {
+ ::fill_links {
+ [feature = 'highway_motorway_link'] {
+ [zoom >= 12] {
+ line-width: @motorway-link-width-z12 - 2 * @casing-width-z12;
+ [zoom >= 13] { line-width: @motorway-link-width-z13 - 2 * @casing-width-z13; }
+ [zoom >= 15] { line-width: @motorway-link-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 17] { line-width: @motorway-link-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @motorway-fill;
+ }
+ .tunnels-fill {
+ line-color: @motorway-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @motorway-link-width-z12 - 2 * @bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @motorway-link-width-z13 - 2 * @bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @motorway-link-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @motorway-link-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_trunk_link'] {
+ [zoom >= 12] {
+ line-width: @trunk-width-z12 - 2 * @casing-width-z12;
+ [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @casing-width-z13; }
+ [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @trunk-fill;
+ }
+ .tunnels-fill {
+ line-color: @trunk-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @trunk-width-z12 - 2 * @bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_primary_link'] {
+ [zoom >= 12] {
+ line-width: @primary-width-z12 - 2 * @casing-width-z12;
+ [zoom >= 13] { line-width: @primary-width-z13 - 2 * @casing-width-z13; }
+ [zoom >= 15] { line-width: @primary-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 17] { line-width: @primary-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @primary-fill;
+ }
+ .tunnels-fill {
+ line-color: @primary-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @primary-width-z12 - 2 * @bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @primary-width-z13 - 2 * @bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @primary-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @primary-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_secondary_link'] {
+ [zoom >= 12] {
+ line-width: @secondary-width-z12 - 2 * @casing-width-z12;
+ [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @casing-width-z13; }
+ [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @secondary-fill;
+ }
+ .tunnels-fill {
+ line-color: @secondary-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @secondary-width-z12 - 2 * @bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_tertiary_link'] {
+ [zoom >= 13] {
+ line-width: @tertiary-width-z13 - 2 * @casing-width-z13;
+ [zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @casing-width-z14; }
+ [zoom >= 15] { line-width: @tertiary-link-width-z15 - 2 * @tertiary-link-casing-width-z15; }
+ [zoom >= 17] { line-width: @tertiary-link-width-z17 - 2 * @tertiary-link-casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @tertiary-fill;
+ }
+ .tunnels-fill {
+ line-color: @tertiary-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @tertiary-width-z13 - 2 * @bridge-casing-width-z13;
+ [zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @bridge-casing-width-z14; }
+ [zoom >= 15] { line-width: @tertiary-link-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @tertiary-link-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+ }
+
+ ::fill {
+
+ /*
+ * The construction rules for small roads are strange, since if construction is null its assumed that
+ * it's a more major road. The line-width = 0 could be removed by playing with the query to set a construction
+ * string for non-small roads.
+ *
+ * Also note that these rules are quite sensitive to re-ordering, since the instances end up swapping round
+ * (and then the dashes appear below the fills). See
+ * https://github.com/gravitystorm/openstreetmap-carto/issues/23
+ * https://github.com/mapbox/carto/issues/235
+ * https://github.com/mapbox/carto/issues/237
+ */
+ [feature = 'highway_proposed'],
+ [feature = 'highway_construction'] {
+ [zoom >= 12] {
+ line-width: 2;
+ line-color: #9cc;
+
+ [construction = 'motorway'],
+ [construction = 'motorway_link'] {
+ line-color: @motorway-fill;
+ }
+ [construction = 'trunk'],
+ [construction = 'trunk_link'] {
+ line-color: @trunk-fill;
+ }
+ [construction = 'primary'],
+ [construction = 'primary_link'] {
+ line-color: @primary-fill;
+ }
+ [construction = 'secondary'],
+ [construction = 'secondary_link'] {
+ line-color: @secondary-fill;
+ }
+ [construction = 'tertiary'],
+ [construction = 'tertiary_link'] {
+ line-color: @tertiary-fill;
+ [zoom < 13] {
+ line-width: 0;
+ b/line-width: 0;
+ }
+ }
+ [construction = 'residential'],
+ [construction = 'unclassified'],
+ [construction = 'living_street'] {
+ line-color: @residential-construction;
+ [zoom < 13] {
+ line-width: 0;
+ b/line-width: 0;
+ }
+ }
+ [construction = 'service'] {
+ line-color: @service-construction;
+ [zoom < 14] {
+ line-width: 0;
+ b/line-width: 0;
+ }
+ }
+ b/line-width: 2;
+ b/line-dasharray: 4,2;
+ b/line-color: white;
+ [zoom >= 13] {
+ line-width: 4;
+ b/line-width: 3.5;
+ b/line-dasharray: 6,4;
+ }
+ [zoom >= 16] {
+ line-width: 8;
+ b/line-width: 7;
+ b/line-dasharray: 8,6;
+ }
+ [construction = 'cycleway'] {
+ [zoom < 14] {
+ line-width: 0;
+ b/line-width: 0;
+ }
+ line-color: white;
+ line-width: 3;
+ line-opacity: 0.4;
+ b/line-width: 1.2;
+ b/line-color: #69f;
+ b/line-dasharray: 2,6;
+ }
+ }
+ }
+
+ [feature = 'highway_motorway'] {
+ [zoom >= 12] {
+ line-width: @motorway-width-z12 - 2 * @casing-width-z12;
+ [zoom >= 13] { line-width: @motorway-width-z13 - 2 * @casing-width-z13; }
+ [zoom >= 15] { line-width: @motorway-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 17] { line-width: @motorway-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @motorway-fill;
+ }
+ .tunnels-fill {
+ line-color: @motorway-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @motorway-width-z12 - 2 * @bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @motorway-width-z13 - 2 * @bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @motorway-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @motorway-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_trunk'] {
+ [zoom >= 12] {
+ line-width: @trunk-width-z12 - 2 * @casing-width-z12;
+ [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @casing-width-z13; }
+ [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @trunk-fill;
+ }
+ .tunnels-fill {
+ line-color: @trunk-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @trunk-width-z12 - 2 * @bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_primary'] {
+ [zoom >= 12] {
+ line-width: @primary-width-z12 - 2 * @casing-width-z12;
+ [zoom >= 13] { line-width: @primary-width-z13 - 2 * @casing-width-z13; }
+ [zoom >= 15] { line-width: @primary-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 17] { line-width: @primary-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @primary-fill;
+ }
+ .tunnels-fill {
+ line-color: @primary-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @primary-width-z12 - 2 * @bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @primary-width-z13 - 2 * @bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @primary-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @primary-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_secondary'] {
+ [zoom >= 12] {
+ line-width: @secondary-width-z12 - 2 * @casing-width-z12;
+ [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @casing-width-z13; }
+ [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @secondary-fill;
+ }
+ .tunnels-fill {
+ line-color: @secondary-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @secondary-width-z12 - 2 * @bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_tertiary'] {
+ [zoom >= 13] {
+ line-width: @tertiary-width-z13 - 2 * @casing-width-z13;
+ [zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @casing-width-z14; }
+ [zoom >= 15] { line-width: @tertiary-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 17] { line-width: @tertiary-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @tertiary-fill;
+ }
+ .tunnels-fill {
+ line-color: @tertiary-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @tertiary-width-z13 - 2 * @bridge-casing-width-z13;
+ [zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @bridge-casing-width-z14; }
+ [zoom >= 15] { line-width: @tertiary-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @tertiary-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_residential'],
+ [feature = 'highway_unclassified'] {
+ [zoom >= 13] {
+ line-width: @residential-width-z13 - 2 * @casing-width-z13;
+ [zoom >= 14] { line-width: @residential-width-z14 - 2 * @casing-width-z14; }
+ [zoom >= 15] { line-width: @residential-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 16] { line-width: @residential-width-z16 - 2 * @casing-width-z16; }
+ [zoom >= 17] { line-width: @residential-width-z17 - 2 * @casing-width-z17; }
+ .roads-fill, .bridges-fill {
+ line-color: @residential-fill;
+ }
+ .tunnels-fill {
+ line-color: @residential-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @residential-width-z13 - 2 * @bridge-casing-width-z13;
+ [zoom >= 14] { line-width: @residential-width-z14 - 2 * @bridge-casing-width-z14; }
+ [zoom >= 15] { line-width: @residential-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 16] { line-width: @residential-width-z16 - 2 * @bridge-casing-width-z16; }
+ [zoom >= 17] { line-width: @residential-width-z17 - 2 * @bridge-casing-width-z17; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_tertiary'][zoom >= 10][zoom < 13],
+ [feature = 'highway_residential'][zoom >= 10][zoom < 13],
+ [feature = 'highway_unclassified'][zoom >= 10][zoom < 13],
+ [feature = 'highway_road'][zoom >= 10][zoom < 13],
+ [feature = 'highway_living_street'][zoom >= 12][zoom < 13] {
+ line-width: 1;
+ line-color: @residential-casing;
+ }
+
+ [feature = 'highway_road'] {
+ [zoom >= 13] {
+ .roads-fill, .bridges-fill {
+ line-color: @road-fill;
+ }
+ .tunnels-fill {
+ line-color: @residential-tunnel-fill;
+ }
+ .roads-fill {
+ line-width: 2;
+ [zoom >= 14] { line-width: 3; }
+ [zoom >= 15] { line-width: 6.5; }
+ [zoom >= 16] { line-width: 9.4; }
+ [zoom >= 17] { line-width: 13; }
+ }
+ .bridges-fill {
+ line-width: 3.5;
+ [zoom >= 14] { line-width: 7.5; }
+ [zoom >= 15] { line-width: 9.5; }
+ [zoom >= 17] { line-width: 14; }
+ }
+ .tunnels-fill {
+ line-width: 2;
+ [zoom >= 14] { line-width: 3.5; }
+ [zoom >= 15] { line-width: 9.5; }
+ [zoom >= 17] { line-width: 14; }
+ }
+ line-cap: round;
+ line-join: round;
+ }
+ }
+
+ [feature = 'highway_living_street'] {
+ [zoom >= 13] {
+ line-width: 1.5;
+ line-color: @living-street-fill;
+ line-join: round;
+ line-cap: round;
+ [zoom >= 14] { line-width: 3; }
+ [zoom >= 15] { line-width: 4.7; }
+ [zoom >= 16] { line-width: 7.4; }
+ [zoom >= 17] { line-width: 13; }
+ }
+ .tunnels-fill {
+ line-color: @living-street-tunnel-fill;
+ }
+ }
+
+ [feature = 'highway_service'] {
+ [zoom >= 13][service = 'INT-normal'] {
+ line-width: 1;
+ line-color: @residential-casing;
+ }
+ [zoom >= 14][service = 'INT-normal'],
+ [zoom >= 16][service = 'INT-minor'] {
+ line-color: @service-fill;
+ [service = 'INT-normal'] {
+ line-width: 2;
+ [zoom >= 16] { line-width: 6; }
+ }
+ [service = 'INT-minor'] {
+ line-width: 3;
+ }
+ line-join: round;
+ line-cap: round;
+ }
+ }
+
+ [feature = 'highway_pedestrian'] {
+ [zoom >= 13] {
+ line-color: @pedestrian-fill;
+ line-width: 1.5;
+ [zoom >= 14] { line-width: 3; }
+ [zoom >= 15] { line-width: 5.5; }
+ [zoom >= 16] { line-width: 8; }
+ line-join: round;
+ line-cap: round;
+ }
+ }
+
+ [feature = 'highway_platform'] {
+ [zoom >= 16] {
+ line-join: round;
+ line-width: 6;
+ line-color: grey;
+ line-cap: round;
+ b/line-width: 4;
+ b/line-color: #bbbbbb;
+ b/line-cap: round;
+ b/line-join: round;
+ }
+ }
+
+ [feature = 'highway_steps'] {
+ [zoom >= 13][zoom < 15] {
+ .roads-fill, .tunnels-fill {
+ line-width: 6;
+ line-color: @steps-casing;
+ line-opacity: 0.4;
+ }
+ b/line-width: 2;
+ b/line-color: @steps-fill;
+ b/line-dasharray: 1,3;
+ b/line-cap: round;
+ b/line-join: round;
+ }
+ }
+
+ [feature = 'highway_steps'] {
+ [zoom >= 15] {
+ line-width: 5.0;
+ line-color: @steps-fill;
+ line-dasharray: 2,1;
+ }
+ }
+
+ [feature = 'highway_bridleway'],
+ [feature = 'highway_path'][horse = 'designated'] {
+ [zoom >= 13] {
+ .tunnels-fill {
+ tunnelcasing/line-width: 5;
+ tunnelcasing/line-color: @tunnel-casing;
+ tunnelcasing/line-dasharray: 4,2;
+ }
+ .roads-fill, .tunnels-fill {
+ background/line-width: 3;
+ background/line-color: @bridleway-casing;
+ background/line-cap: round;
+ background/line-join: round;
+ .roads-fill { background/line-opacity: 0.4; }
+ }
+ line/line-color: @bridleway-fill;
+ line/line-dasharray: 4,2;
+ .roads-fill {
+ line/line-width: 1.2;
+ }
+ .bridges-fill {
+ [zoom >= 13] { line/line-width: 1.2; }
+ [zoom >= 14] { line/line-width: 1.5; }
+ }
+ .tunnels-fill {
+ line/line-width: 2;
+ line/line-opacity: 0.5;
+ line/line-join: round;
+ line/line-cap: round;
+ }
+ }
+ }
+
+ [feature = 'highway_footway'],
+ [feature = 'highway_path'][foot = 'designated'] {
+ [zoom >= 13] {
+ .tunnels-fill {
+ tunnelcasing/line-width: 5.5;
+ tunnelcasing/line-color: @tunnel-casing;
+ tunnelcasing/line-dasharray: 4,2;
+ }
+ .roads-fill, .tunnels-fill {
+ background/line-color: @footway-casing;
+ background/line-cap: round;
+ background/line-join: round;
+ .roads-fill { background/line-width: 4; }
+ .tunnels-fill { background/line-width: 3.5; }
+ .roads-fill { background/line-opacity: 0.4; }
+ }
+ line/line-color: @footway-fill;
+ line/line-dasharray: 1,3;
+ line/line-join: round;
+ line/line-cap: round;
+ .roads-fill {
+ line/line-width: 1.5;
+ }
+ .bridges-fill {
+ [zoom >= 13] { line/line-width: 1.5; }
+ [zoom >= 14] { line/line-width: 2; }
+ }
+ .tunnels-fill {
+ line/line-width: 2.5;
+ line/line-opacity: 0.5;
+ }
+ }
+ }
+
+ [feature = 'highway_cycleway'],
+ [feature = 'highway_path'][bicycle = 'designated'] {
+ [zoom >= 13] {
+ .tunnels-fill {
+ tunnelcasing/line-width: 5.5;
+ tunnelcasing/line-color: @tunnel-casing;
+ tunnelcasing/line-dasharray: 4,2;
+ }
+ .roads-fill, .tunnels-fill {
+ background/line-color: @cycleway-casing;
+ background/line-cap: round;
+ background/line-join: round;
+ background/line-width: 3;
+ .roads-fill { background/line-opacity: 0.4; }
+ }
+ line/line-color: @cycleway-fill;
+ line/line-dasharray: 1,3;
+ line/line-join: round;
+ line/line-cap: round;
+ .roads-fill {
+ line/line-width: 1.2;
+ }
+ .bridges-fill {
+ [zoom >= 13] { line/line-width: 1.2; }
+ [zoom >= 14] { line/line-width: 1.5; }
+ }
+ .tunnels-fill {
+ line/line-width: 2;
+ line/line-opacity: 0.5;
+ }
+ }
+ }
+
+ /*
+ * The above defininitions should override this when needed
+ * given the specitivity precedence.
+ */
+ [feature = 'highway_path'] {
+ [zoom >= 13] {
+ .tunnels-fill {
+ tunnelcasing/line-width: 5.5;
+ tunnelcasing/line-color: @tunnel-casing;
+ tunnelcasing/line-dasharray: 4,2;
+ }
+ .roads-fill, .tunnels-fill {
+ background/line-color: @path-casing;
+ background/line-cap: round;
+ background/line-join: round;
+ background/line-width: 3;
+ .roads-fill { background/line-opacity: 0.4; }
+ }
+ line/line-width: 0.5;
+ line/line-color: @path-fill;
+ line/line-dasharray: 6,3;
+ line/line-join: round;
+ line/line-cap: round;
+ .tunnels-fill {
+ line/line-width: 2;
+ line/line-opacity: 0.5;
+ }
+ }
+ }
+
+ [feature = 'highway_track'] {
+ [zoom >= 13] {
+ .tunnels-fill[zoom >= 14] {
+ tunnelcasing/line-width: 4.5;
+ tunnelcasing/line-color: @tunnel-casing;
+ tunnelcasing/line-dasharray: 4,2;
+ }
+
+ .roads-fill, .tunnels-fill {
+ [zoom >= 13] { background/line-width: 2.5; }
+ [zoom >= 14] { background/line-width: 3; }
+ .roads-fill { background/line-opacity: 0.4; }
+ background/line-color: @track-casing;
+ background/line-join: round;
+ background/line-cap: round;
+ }
+
+ line/line-color: @track-fill;
+ line/line-dasharray: 3,4;
+ line/line-cap: round;
+ line/line-join: round;
+ [zoom >= 13] { line/line-width: 1.2; }
+ [zoom >= 14] { line/line-width: 1.5; }
+ .roads-fill, .bridges-fill { line/line-opacity: 0.8; }
+ .tunnels-fill[zoom >= 14] { line/line-opacity: 0.5; }
+
+ [zoom >= 14] {
+ [tracktype = 'grade1'] {
+ .roads-fill, .tunnels-fill { background/line-width: 3.5; }
+ line/line-width: 2;
+ line/line-color: @track-grade1-fill;
+ line/line-dasharray: 100,0; /* i.e. none, see https://github.com/mapbox/carto/issues/214 */
+ .roads-fill, .bridges-fill { line/line-opacity: 0.7; }
+ }
+ [tracktype = 'grade2'] {
+ line/line-color: @track-grade2-fill;
+ line/line-dasharray: 9,4;
+ }
+ [tracktype = 'grade4'] {
+ line/line-width: 2;
+ line/line-dasharray: 4,7,1,5;
+ }
+ [tracktype = 'grade5'] {
+ line/line-width: 2;
+ line/line-dasharray: 1,5;
+ }
+ }
+ }
+ }
+
+ [feature = 'railway_rail'],
+ [feature = 'railway_INT-spur-siding-yard'] {
+ [zoom >= 13] {
+ .roads-fill, .bridges-fill {
+ dark/line-color: #999999;
+ [feature = 'railway_rail'] { dark/line-width: 3; }
+ [feature = 'railway_INT-spur-siding-yard'] { dark/line-width: 2; }
+ [feature = 'railway_rail'] { dark/line-join: round; }
+ [feature = 'railway_INT-spur-siding-yard'] .bridges-fill { dark/line-join: round; }
+ light/line-color: white;
+ [feature = 'railway_rail'] { light/line-width: 1; }
+ [feature = 'railway_INT-spur-siding-yard'] { light/line-width: 0.8; }
+ [feature = 'railway_rail'] { light/line-dasharray: 8,12; }
+ [feature = 'railway_INT-spur-siding-yard'] { light/line-dasharray: 0,8,11,1; }
+ light/line-join: round;
+ [feature = 'railway_rail'][zoom >= 14] { light/line-dasharray: 0,11,8,1; }
+ }
+ .tunnels-fill {
+ a/line-width: 3;
+ b/line-width: 3;
+ c/line-width: 3;
+ d/line-width: 3;
+ e/line-width: 3;
+ f/line-width: 3;
+ g/line-width: 3;
+ a/line-color: #ffffff;
+ b/line-color: #fdfdfd;
+ c/line-color: #ececec;
+ d/line-color: #cacaca;
+ e/line-color: #afafaf;
+ f/line-color: #a1a1a1;
+ g/line-color: #9b9b9b;
+ a/line-dasharray: 1,9;
+ b/line-dasharray: 0,1,1,8;
+ c/line-dasharray: 0,2,1,7;
+ d/line-dasharray: 0,3,1,6;
+ e/line-dasharray: 0,4,1,5;
+ f/line-dasharray: 0,5,1,4;
+ g/line-dasharray: 0,6,1,3;
+ a/line-join: round;
+ b/line-join: round;
+ c/line-join: round;
+ d/line-join: round;
+ e/line-join: round;
+ f/line-join: round;
+ g/line-join: round;
+ [feature = 'railway_INT-spur-siding-yard'] {
+ a/line-width: 2;
+ b/line-width: 2;
+ c/line-width: 2;
+ d/line-width: 2;
+ e/line-width: 2;
+ f/line-width: 2;
+ g/line-width: 2;
+ }
+ }
+ }
+ }
+
+ [feature = 'railway_narrow_gauge'] {
+ [zoom >= 13] {
+ line/line-width: 2;
+ line/line-color: #666;
+ .tunnels-fill {
+ tunnelcasing/line-width: 5;
+ tunnelcasing/line-dasharray: 5,3;
+ tunnelcasing/line-color: #666;
+ background/line-color: #fff;
+ background/line-width: 4;
+ line/line-color: #aaa;
+ line/line-width: 1.5;
+ }
+ }
+ }
+
+ [feature = 'railway_funicular'] {
+ [zoom >= 13] {
+ line/line-width: 2;
+ line/line-color: #666;
+ .tunnels-fill {
+ tunnelcasing/line-width: 5;
+ tunnelcasing/line-dasharray: 5,3;
+ tunnelcasing/line-color: #666;
+ background/line-color: #fff;
+ background/line-width: 4;
+ line/line-color: #aaa;
+ line/line-width: 1.5;
+ }
+ }
+ }
+
+ [feature = 'railway_miniature'] {
+ [zoom >= 15] {
+ line/line-width: 1.2;
+ line/line-color: #999;
+ dashes/line-width: 3;
+ dashes/line-color: #999;
+ dashes/line-dasharray: 1,10;
+ }
+ }
+
+ [feature = 'railway_tram'] {
+ .tunnels-fill {
+ [zoom >= 13] {
+ line-width: 1;
+ line-dasharray: 5,3;
+ line-color: #444;
+ [zoom >= 15] { line-width: 2; }
+ }
+ }
+ }
+
+ [feature = 'railway_light_rail'] {
+ [zoom >= 13] {
+ line-width: 2;
+ line-color: #666;
+ .tunnels-fill {
+ line-dasharray: 5,3;
+ }
+ }
+ }
+
+ [feature = 'railway_subway'] {
+ [zoom >= 12] {
+ line-width: 2;
+ line-color: #999;
+ .tunnels-fill {
+ line-dasharray: 5,3;
+ }
+ }
+ .bridges-fill {
+ [zoom >= 14] {
+ line-width: 2;
+ line-color: #999;
+ }
+ }
+ }
+
+ [feature = 'railway_preserved'] {
+ [zoom >= 12] {
+ dark/line-width: 1.5;
+ dark/line-color: #aaa;
+ dark/line-join: round;
+ [zoom >= 13] {
+ dark/line-width: 3;
+ dark/line-color: #999999;
+ light/line-width: 1;
+ light/line-color: white;
+ light/line-dasharray: 0,1,8,1;
+ light/line-join: round;
+ }
+ }
+ }
+
+ [feature = 'railway_INT-preserved-ssy'] {
+ [zoom >= 12] {
+ dark/line-width: 1;
+ dark/line-color: #aaa;
+ dark/line-join: round;
+ [zoom >= 13] {
+ dark/line-width: 2;
+ dark/line-color: #999999;
+ light/line-width: 0.8;
+ light/line-color: white;
+ light/line-dasharray: 0,1,8,1;
+ light/line-join: round;
+ }
+ }
+ }
+
+ [feature = 'railway_monorail'] {
+ [zoom >= 14] {
+ background/line-width: 4;
+ background/line-color: #fff;
+ background/line-opacity: 0.4;
+ background/line-cap: round;
+ background/line-join: round;
+ line/line-width: 3;
+ line/line-color: #777;
+ line/line-dasharray: 2,3;
+ line/line-cap: round;
+ line/line-join: round;
+ }
+ }
+
+ [feature = 'railway_disused'],
+ [feature = 'railway_abandoned'],
+ [feature = 'railway_construction'] {
+ [zoom >= 13] {
+ line-color: grey;
+ line-width: 2;
+ line-dasharray: 2,4;
+ line-join: round;
+ }
+ }
+
+ [feature = 'railway_platform'] {
+ [zoom >= 16] {
+ line-join: round;
+ line-width: 6;
+ line-color: grey;
+ line-cap: round;
+ b/line-width: 4;
+ b/line-color: #bbbbbb;
+ b/line-cap: round;
+ b/line-join: round;
+ }
+ }
+
+ [feature = 'railway_turntable'] {
+ [zoom >= 16] {
+ line-width: 1.5;
+ line-color: #999;
+ }
+ }
+
+ [feature = 'aeroway_runway'] {
+ [zoom >= 11][zoom < 14] {
+ line-width: 2;
+ line-color: @runway-fill;
+ [zoom >= 12] { line-width: 4; }
+ [zoom >= 13] { line-width: 7; }
+ }
+ [zoom >= 14] {
+ line-width: 18;
+ line-color: @runway-fill;
+ }
+ }
+
+ [feature = 'aeroway_taxiway'] {
+ [zoom >= 11][zoom < 14] {
+ line-width: 1;
+ line-color: @taxiway-fill;
+ }
+ [zoom >= 14] {
+ line-width: 4;
+ line-color: @taxiway-fill;
+ [zoom >= 15] { line-width: 6; }
+ }
+ }
+ }
+}
+
+#turning-circle-casing {
+ [int_tc_type = 'tertiary'][zoom >= 15] {
+ marker-width: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15;
+ marker-height: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15;
+ marker-allow-overlap: true;
+ marker-ignore-placement: true;
+ marker-line-width: 0;
+ marker-fill: @tertiary-casing;
+ [zoom >= 17] {
+ marker-width: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17;
+ marker-height: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17;
+ }
+ }
+
+ [int_tc_type = 'residential'],
+ [int_tc_type = 'unclassified'] {
+ [zoom >= 15] {
+ marker-width: (@residential-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15;
+ marker-height: (@residential-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15;
+ marker-allow-overlap: true;
+ marker-ignore-placement: true;
+ marker-line-width: 0;
+ marker-fill: @residential-casing;
+ [zoom >= 16] {
+ marker-width: (@residential-width-z16 - 2 * @casing-width-z16) * 1.8 + 2 * @casing-width-z16;
+ marker-height: (@residential-width-z16 - 2 * @casing-width-z16) * 1.8 + 2 * @casing-width-z16;
+ }
+ [zoom >= 17] {
+ marker-width: (@residential-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17;
+ marker-height: (@residential-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17;
+ }
+ }
+ }
+
+ [int_tc_type = 'living_street'][zoom >= 15] {
+ marker-width: 14;
+ marker-height: 14;
+ marker-allow-overlap: true;
+ marker-ignore-placement: true;
+ marker-line-width: 0;
+ marker-fill: @living-street-casing;
+ [zoom >= 16] {
+ marker-width: 18;
+ marker-height: 18;
+ }
+ [zoom >= 17] {
+ marker-width: 24;
+ marker-height: 24;
+ }
+ }
+
+ [int_tc_type = 'service'][zoom >= 16] {
+ marker-width: 14;
+ marker-height: 14;
+ marker-allow-overlap: true;
+ marker-ignore-placement: true;
+ marker-line-width: 0;
+ marker-fill: @service-casing;
+ [zoom >= 17] {
+ marker-width: 16;
+ marker-height: 16;
+ }
+ }
+}
+
+#turning-circle-fill {
+ [int_tc_type = 'tertiary'][zoom >= 15] {
+ marker-width: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8;
+ marker-height: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8;
+ marker-allow-overlap: true;
+ marker-ignore-placement: true;
+ marker-line-width: 0;
+ marker-fill: @tertiary-fill;
+ [zoom >= 17] {
+ marker-width: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8;
+ marker-width: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8;
+ }
+ }
+
+ [int_tc_type = 'residential'],
+ [int_tc_type = 'unclassified'] {
+ [zoom >= 15] {
+ marker-width: (@residential-width-z15 - 2 * @casing-width-z15) * 1.8;
+ marker-height: (@residential-width-z15 - 2 * @casing-width-z15) * 1.8;
+ marker-allow-overlap: true;
+ marker-ignore-placement: true;
+ marker-line-width: 0;
+ marker-fill: @residential-fill;
+ [zoom >= 16] {
+ marker-width: (@residential-width-z16 - 2 * @casing-width-z16) * 1.8;
+ marker-height: (@residential-width-z16 - 2 * @casing-width-z16) * 1.8;
+ }
+ [zoom >= 17] {
+ marker-width: (@residential-width-z17 - 2 * @casing-width-z17) * 1.8;
+ marker-height: (@residential-width-z17 - 2 * @casing-width-z17) * 1.8;
+ }
+ }
+ }
+
+ [int_tc_type = 'living_street'][zoom >= 15] {
+ marker-width: 12;
+ marker-height: 12;
+ marker-allow-overlap: true;
+ marker-ignore-placement: true;
+ marker-line-width: 0;
+ marker-fill: @living-street-fill;
+ [zoom >= 16] {
+ marker-width: 16;
+ marker-height: 16;
+ }
+ [zoom >= 17] {
+ marker-width: 22;
+ marker-height: 22;
+ }
+ }
+
+ [int_tc_type = 'service'][zoom >= 16] {
+ marker-width: 12;
+ marker-height: 12;
+ marker-allow-overlap: true;
+ marker-ignore-placement: true;
+ marker-line-width: 0;
+ marker-fill: @service-fill;
+ [zoom >= 17] {
+ marker-width: 14;
+ marker-height: 14;
+ }
+ }
+}
+
+#highway-area-casing {
+ [feature = 'highway_residential'],
+ [feature = 'highway_unclassified'] {
+ [zoom >= 14] {
+ line-color: #999;
+ line-width: 1;
+ }
+ }
+
+ [feature = 'highway_pedestrian'],
+ [feature = 'highway_service'],
+ [feature = 'highway_footway'],
+ [feature = 'highway_path'] {
+ [zoom >= 14] {
+ line-color: grey;
+ line-width: 1;
+ }
+ }
+
+ [feature = 'highway_track'][zoom >= 14] {
+ line-color: @track-fill;
+ line-width: 2;
+ }
+
+ [feature = 'highway_platform'],
+ [feature = 'railway_platform'] {
+ [zoom >= 16] {
+ line-color: grey;
+ line-width: 2;
+ line-cap: round;
+ line-join: round;
+ }
+ }
+}
+
+#highway-area-fill {
+ [feature = 'highway_living_street'][zoom >= 14] {
+ polygon-fill: #ccc;
+ }
+
+ [feature = 'highway_residential'],
+ [feature = 'highway_unclassified'],
+ [feature = 'highway_service'] {
+ [zoom >= 14] {
+ polygon-fill: #fff;
+ }
+ }
+
+ [feature = 'highway_pedestrian'],
+ [feature = 'highway_footway'],
+ [feature = 'highway_path'] {
+ [zoom >= 14] {
+ polygon-fill: #ededed;
+ }
+ }
+
+ [feature = 'highway_track'][zoom >= 14] {
+ polygon-fill: #dfcc66;
+ }
+
+ [feature = 'highway_platform'],
+ [feature = 'railway_platform'] {
+ [zoom >= 16] {
+ polygon-fill: #bbbbbb;
+ polygon-gamma: 0.65;
+ }
+ }
+
+ [feature = 'aeroway_runway'][zoom >= 11] {
+ polygon-fill: @runway-fill;
+ }
+
+ [feature = 'aeroway_taxiway'][zoom >= 13] {
+ polygon-fill: @taxiway-fill;
+ }
+
+ [feature = 'aeroway_helipad'][zoom >= 16] {
+ polygon-fill: @helipad-fill;
+ }
+}
+
+#highway-junctions {
+ [zoom >= 11] {
+ ref/text-name: "[ref]";
+ ref/text-size: 10;
+ ref/text-fill: #6666ff;
+ ref/text-min-distance: 2;
+ ref/text-face-name: @oblique-fonts;
+ ref/text-halo-radius: 1.5;
+ ref/text-wrap-width: 12;
+ [zoom >= 12] {
+ name/text-name: "[name]";
+ name/text-size: 9;
+ name/text-fill: #6666ff;
+ name/text-dy: -9;
+ name/text-face-name: @oblique-fonts;
+ name/text-halo-radius: 1;
+ name/text-wrap-character: ";";
+ name/text-wrap-width: 2;
+ name/text-min-distance: 2;
+ }
+ [zoom >= 15] {
+ ref/text-size: 12;
+ name/text-size: 11;
+ name/text-dy: -10;
+ }
+ }
+}
+
+.access::fill {
+ [access = 'permissive'] {
+ [feature = 'highway_unclassified'],
+ [feature = 'highway_residential'],
+ [feature = 'highway_footway'] {
+ [zoom >= 15] {
+ access/line-width: 6;
+ access/line-color: @permissive-marking;
+ access/line-dasharray: 6,8;
+ access/line-cap: round;
+ access/line-join: round;
+ access/line-opacity: 0.5;
+ }
+ }
+ [feature = 'highway_service'][service = 'INT-normal'][zoom >= 15],
+ [feature = 'highway_service'][zoom >= 16] {
+ access/line-width: 3;
+ access/line-color: @permissive-marking;
+ access/line-dasharray: 6,8;
+ access/line-cap: round;
+ access/line-join: round;
+ access/line-opacity: 0.5;
+ [zoom >= 16] { access/line-width: 6; }
+ }
+ }
+ [access = 'destination'] {
+ [feature = 'highway_secondary'],
+ [feature = 'highway_tertiary'],
+ [feature = 'highway_unclassified'],
+ [feature = 'highway_residential'],
+ [feature = 'highway_road'],
+ [feature = 'highway_living_street'] {
+ [zoom >= 15] {
+ access/line-width: 6;
+ access/line-color: @destination-marking;
+ access/line-dasharray: 6,8;
+ access/line-cap: round;
+ access/line-join: round;
+ access/line-opacity: 0.5;
+ }
+ }
+ [feature = 'highway_service'][service = 'INT-normal'][zoom >= 15],
+ [feature = 'highway_service'][zoom >= 16] {
+ access/line-width: 3;
+ access/line-color: @destination-marking;
+ access/line-dasharray: 6,8;
+ access/line-cap: round;
+ access/line-join: round;
+ access/line-opacity: 0.5;
+ [zoom >= 16] { access/line-width: 6; }
+ }
+ }
+ [access = 'no'] {
+ [feature = 'highway_motorway'],
+ [feature = 'highway_motorway_link'],
+ [feature = 'highway_trunk'],
+ [feature = 'highway_trunk_link'],
+ [feature = 'highway_primary'],
+ [feature = 'highway_primary_link'],
+ [feature = 'highway_secondary'],
+ [feature = 'highway_secondary_link'],
+ [feature = 'highway_tertiary'],
+ [feature = 'highway_tertiary_link'],
+ [feature = 'highway_unclassified'],
+ [feature = 'highway_residential'],
+ [feature = 'highway_road'],
+ [feature = 'highway_living_street'],
+ [feature = 'highway_track'],
+ [feature = 'highway_path'],
+ [feature = 'highway_footway'],
+ [feature = 'highway_cycleway'],
+ [feature = 'highway_bridleway'] {
+ [zoom >= 15] {
+ access/line-width: 6;
+ access/line-color: @private-marking;
+ access/line-dasharray: 6,8;
+ access/line-opacity: 0.5;
+ access/line-join: round;
+ access/line-cap: round;
+ }
+ }
+ [feature = 'highway_service'][service = 'INT-normal'][zoom >= 15],
+ [feature = 'highway_service'][zoom >= 16] {
+ access/line-width: 3;
+ access/line-color: @private-marking;
+ access/line-dasharray: 6,8;
+ access/line-opacity: 0.5;
+ access/line-join: round;
+ access/line-cap: round;
+ [zoom >= 16] { access/line-width: 6; }
+ }
+ }
+}
+
+#roads-low-zoom {
+ [feature = 'highway_motorway'],
+ [feature = 'highway_motorway_link'] {
+ [zoom >= 5][zoom < 12] {
+ line-width: 0.5;
+ line-color: @motorway-fill;
+ [zoom >= 7] { line-width: 1; }
+ [zoom >= 9] { line-width: 1.4; }
+ [zoom >= 10] { line-width: 2; }
+ [zoom >= 11] { line-width: 2.5; }
+ }
+ }
+
+ [feature = 'highway_trunk'],
+ [feature = 'highway_trunk_link'] {
+ [zoom >= 5][zoom < 12] {
+ line-width: 0.4;
+ line-color: @trunk-fill;
+ [zoom >= 7] {
+ line-width: 1;
+ line-color: @trunk-fill-alternative;
+ }
+ [zoom >= 9] { line-width: 2; }
+ [zoom >= 11] { line-width: 2.5; }
+ }
+ }
+
+ [feature = 'highway_primary'],
+ [feature = 'highway_primary_link'] {
+ [zoom >= 7][zoom < 12] {
+ line-width: 0.5;
+ line-color: @primary-fill;
+ [zoom >= 9] { line-width: 1.2; }
+ [zoom >= 10] { line-width: 2; }
+ [zoom >= 11] { line-width: 2.5; }
+ }
+ }
+
+ [feature = 'highway_secondary'],
+ [feature = 'highway_secondary_link'] {
+ [zoom >= 9][zoom < 12] {
+ line-width: 1;
+ line-color: @secondary-fill;
+ [zoom >= 11] { line-width: 2; }
+ }
+ }
+
+ [feature = 'railway_rail'] {
+ [zoom >= 6][zoom < 13] {
+ line-width: 0.6;
+ line-color: #aaa;
+ [zoom >= 9] { line-width: 1; }
+ [zoom >= 10] { line-width: 2; }
+ .tunnels-casing {
+ line-dasharray: 5,2;
+ }
+ }
+ }
+
+ [feature = 'railway_INT-spur-siding-yard'] {
+ [zoom >= 11] {
+ line-width: 1;
+ line-color: #aaa;
+ line-join: round;
+ }
+ }
+
+ [feature = 'railway_tram'],
+ [feature = 'railway_light_rail'],
+ [feature = 'railway_funicular'],
+ [feature = 'railway_narrow_gauge'] {
+ [zoom >= 8][zoom < 13] {
+ line-width: 1;
+ line-color: #ccc;
+ [zoom >= 10] { line-color: #aaa }
+ }
+ }
+}
+
+#trams {
+ [railway = 'tram'][zoom >= 13] {
+ line-color: #444;
+ line-width: 1;
+ [zoom >= 15] {
+ line-width: 2;
+ [bridge = 'yes'] {
+ line-width: 5;
+ line-color: black;
+ b/line-width: 4;
+ b/line-color: white;
+ c/line-width: 2;
+ c/line-color: #444;
+ }
+ }
+ }
+}
+
+#guideways {
+ [zoom >= 13] {
+ line-width: 3;
+ line-color: #6666ff;
+ line-join: round;
+ b/line-width: 1;
+ b/line-color: white;
+ b/line-dasharray: 8,12;
+ b/line-join: round;
+ }
+ [zoom >= 14] {
+ b/line-dasharray: 0,11,8,1;
+ }
+}
+
+#roads-text-ref-low-zoom {
+ [highway = 'motorway'][length < 9] {
+ [zoom >= 10][zoom < 13] {
+ shield-name: "[ref]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/mot_shield[length].png");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ [length = 7] { shield-file: url('symbols/mot_shield6.png'); }
+ [length = 8] { shield-file: url('symbols/mot_shield7.png'); }
+ }
+ }
+
+ [highway = 'trunk'][zoom >= 11][zoom < 13] {
+ shield-name: "[ref]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/tru_shield[length].png");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ }
+
+ [highway = 'primary'][zoom >= 11][zoom < 13] {
+ shield-name: "[ref]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/pri_shield[length].png");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ }
+
+ [highway = 'secondary'][zoom >= 12][zoom < 13] {
+ shield-name: "[ref]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/sec_shield[length].png");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ }
+}
+
+#roads-text-ref {
+ [highway = 'motorway'][length < 9] {
+ [zoom >= 13] {
+ shield-name: "[ref]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/mot_shield[length].png");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ shield-avoid-edges: true;
+ [length = 7] { shield-file: url('symbols/mot_shield6.png'); }
+ [length = 8] { shield-file: url('symbols/mot_shield7.png'); }
+ }
+ }
+
+ [highway = 'trunk'][zoom >= 13] {
+ shield-name: "[ref]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/tru_shield[length].png");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ shield-avoid-edges: true;
+ }
+
+ [highway = 'primary'][zoom >= 13] {
+ shield-name: "[ref]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/pri_shield[length].png");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ shield-avoid-edges: true;
+ }
+
+ [highway = 'secondary'][bridge = 'no'][zoom >= 13] {
+ shield-name: "[ref]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/sec_shield[length].png");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ shield-avoid-edges: true;
+ }
+
+ [highway = 'tertiary'][bridge = 'no'][zoom >= 13] {
+ shield-name: "[ref]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/ter_shield[length].png");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ shield-avoid-edges: true;
+ }
+
+ [highway = 'unclassified'],
+ [highway = 'residential'] {
+ [zoom >= 15][bridge = 'no'] {
+ text-name: "[ref]";
+ text-size: 10;
+ text-fill: #000;
+ text-face-name: @bold-fonts;
+ text-min-distance: 18;
+ text-halo-radius: 1;
+ text-spacing: 750;
+ text-clip: false;
+ }
+ }
+
+ [highway = 'runway'],
+ [highway = 'taxiway'] {
+ [zoom >= 15][bridge = 'no'] {
+ text-name: "[ref]";
+ text-size: 10;
+ text-fill: #333;
+ text-spacing: 750;
+ text-clip: false;
+ text-placement: line;
+ text-min-distance: 18;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ }
+ }
+}
+
+#roads-text-name {
+ [highway = 'motorway'],
+ [highway = 'motorway_link'],
+ [highway = 'trunk'],
+ [highway = 'trunk_link'],
+ [highway = 'primary'],
+ [highway = 'primary_link'] {
+ [zoom >= 13] {
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: black;
+ text-spacing: 300;
+ text-clip: false;
+ text-placement: line;
+ text-face-name: @book-fonts;
+ text-halo-radius: 0;
+ }
+ [zoom >= 14] {
+ text-size: 9;
+ }
+ [zoom >= 15] {
+ text-size: 10;
+ }
+ }
+ [highway = 'secondary'],
+ [highway = 'secondary_link'] {
+ [zoom >= 13] {
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: black;
+ text-spacing: 300;
+ text-clip: false;
+ text-placement: line;
+ text-face-name: @book-fonts;
+ text-halo-radius: 0;
+ }
+ [zoom >= 14] {
+ text-size: 9;
+ }
+ [zoom >= 15] {
+ text-size: 10;
+ }
+ }
+ [highway = 'tertiary'],
+ [highway = 'tertiary_link'] {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #000;
+ text-spacing: 300;
+ text-clip: false;
+ text-placement: line;
+ text-face-name: @book-fonts;
+ text-halo-radius: 0;
+ }
+ [zoom >= 17] {
+ text-size: 11;
+ }
+ }
+ [highway = 'proposed'],
+ [highway = 'construction'] {
+ [zoom >= 13] {
+ text-name: "[name]";
+ text-size: 9;
+ text-fill: #000;
+ text-spacing: 300;
+ text-clip: false;
+ text-placement: line;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ }
+ [zoom >= 16] {
+ text-size: 11;
+ }
+ }
+ [highway = 'residential'],
+ [highway = 'unclassified'],
+ [highway = 'road'] {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 8;
+ text-spacing: 300;
+ text-clip: false;
+ text-placement: line;
+ text-halo-radius: 1;
+ text-face-name: @book-fonts;
+ }
+ [zoom >= 16] {
+ text-size: 9;
+ }
+ [zoom >= 17] {
+ text-size: 11;
+ text-spacing: 400;
+ }
+ }
+
+ [highway = 'raceway'],
+ [highway = 'service'] {
+ [zoom >= 16] {
+ text-name: "[name]";
+ text-size: 9;
+ text-spacing: 300;
+ text-clip: false;
+ text-placement: line;
+ text-face-name: @book-fonts;
+ }
+ [zoom >= 17] {
+ text-size: 11;
+ }
+ }
+
+ [highway = 'living_street'],
+ [highway = 'pedestrian'] {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 8;
+ text-spacing: 300;
+ text-clip: false;
+ text-placement: line;
+ text-face-name: @book-fonts;
+ }
+ [zoom >= 16] {
+ text-size: 9;
+ }
+ [zoom >= 17] {
+ text-size: 11;
+ }
+ }
+}
+
+#roads-area-text-name {
+ [highway = 'pedestrian'] {
+ [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;
+ }
+ }
+}
+
+#paths-text-name {
+ [highway = 'track'] {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-size: 8;
+ text-spacing: 300;
+ text-clip: false;
+ text-placement: line;
+ text-face-name: @book-fonts;
+ }
+ [zoom >= 16] {
+ text-size: 9;
+ }
+ [zoom >= 17] {
+ text-size: 11;
+ }
+ }
+
+ [highway = 'footway'],
+ [highway = 'cycleway'],
+ [highway = 'path'],
+ [highway = 'steps'] {
+ [zoom >= 16] {
+ text-name: "[name]";
+ text-fill: #222;
+ text-size: 9;
+ text-halo-radius: 1;
+ text-halo-fill: rgba(255,255,255,0.8);
+ text-spacing: 200;
+ text-clip: false;
+ text-placement: line;
+ text-face-name: @book-fonts;
+ text-dy: 7;
+ }
+ [zoom >= 17] {
+ text-size: 11;
+ text-dy: 9;
+ }
+ }
+}
+
+.directions::directions {
+ [zoom >= 16] {
+ [oneway = 'yes'] {
+ dira/line-width: 1;
+ dira/line-dasharray: 0,12,10,152;
+ dira/line-color: #6c70d5;
+ dira/line-join: bevel;
+ dira/line-clip: false;
+ dirb/line-width: 2;
+ dirb/line-dasharray: 0,12,9,153;
+ dirb/line-color: #6c70d5;
+ dirb/line-join: bevel;
+ dirb/line-clip: false;
+ dirc/line-width: 3;
+ dirc/line-dasharray: 0,18,2,154;
+ dirc/line-color: #6c70d5;
+ dirc/line-join: bevel;
+ dirc/line-clip: false;
+ dird/line-width: 4;
+ dird/line-dasharray: 0,18,1,155;
+ dird/line-color: #6c70d5;
+ dird/line-join: bevel;
+ dird/line-clip: false;
+ }
+ [oneway = '-1'] {
+ dira/line-width: 1;
+ dira/line-dasharray: 0,12,10,152;
+ dira/line-color: #6c70d5;
+ dira/line-join: bevel;
+ dira/line-clip: false;
+ dirb/line-width: 2;
+ dirb/line-dasharray: 0,13,9,152;
+ dirb/line-color: #6c70d5;
+ dirb/line-join: bevel;
+ dirb/line-clip: false;
+ dirc/line-width: 3;
+ dirc/line-dasharray: 0,14,2,158;
+ dirc/line-color: #6c70d5;
+ dirc/line-join: bevel;
+ dirc/line-clip: false;
+ dird/line-width: 4;
+ dird/line-dasharray: 0,15,1,158;
+ dird/line-color: #6c70d5;
+ dird/line-join: bevel;
+ dird/line-clip: false;
+ }
+ }
+}
diff --git a/shapefiles.mss b/shapefiles.mss
new file mode 100644
index 0000000..1e8bfa0
--- /dev/null
+++ b/shapefiles.mss
@@ -0,0 +1,37 @@
+#necountries {
+ [zoom >= 1][zoom < 4] {
+ line-width: 0.5;
+ line-color: grey;
+ }
+}
+
+#nepopulated {
+ [zoom >= 3][zoom < 5] {
+ [SCALERANK = 0],
+ [SCALERANK = 1] {
+ text-name: "[NAME]";
+ text-size: 8;
+ text-fill: grey;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ }
+ }
+}
+
+#world {
+ [zoom >= 0][zoom < 10] {
+ polygon-fill: @land-color;
+ }
+}
+
+#coast-poly {
+ [zoom >= 10] {
+ polygon-fill: @land-color;
+ }
+}
+
+#builtup {
+ [zoom >= 8][zoom < 10] {
+ polygon-fill: #ddd;
+ }
+}
diff --git a/stations.mss b/stations.mss
new file mode 100644
index 0000000..c414a46
--- /dev/null
+++ b/stations.mss
@@ -0,0 +1,54 @@
+.stations {
+ [railway = 'subway_entrance'][zoom >= 18] {
+ point-file: url('symbols/walking.n.12.png');
+ point-placement: interior;
+ }
+
+ [railway = 'station'][zoom >= 12] {
+ point-file: url('symbols/halt.png');
+ point-placement: interior;
+ [zoom >= 13] {
+ point-file: url('symbols/station_small.png');
+ }
+ [zoom >= 14] {
+ text-name: "[name]";
+ text-face-name: @bold-fonts;
+ text-size: 9;
+ text-fill: #66f;
+ text-dy: -8;
+ text-halo-radius: 1;
+ text-wrap-width: 0;
+ text-placement: interior;
+ }
+ [zoom >= 15] {
+ point-file: url('symbols/station.png');
+ text-size: 11;
+ text-dy: -10;
+ }
+ }
+
+ [railway = 'halt'],
+ [railway = 'tram_stop'],
+ [aerialway = 'station']::aerialway {
+ [zoom >= 13] {
+ point-file: url('symbols/halt.png');
+ }
+ [zoom >= 15] {
+ point-file: url('symbols/station_small.png');
+ }
+ [zoom >= 14] {
+ text-name: "[name]";
+ text-face-name: @book-fonts;
+ text-size: 8;
+ text-fill: #66f;
+ text-dy: -8;
+ text-halo-radius: 1;
+ text-wrap-width: 0;
+ text-placement: interior;
+ [zoom >= 15] {
+ text-size: 10;
+ text-dy: -10;
+ }
+ }
+ }
+}
diff --git a/style.mss b/style.mss
new file mode 100644
index 0000000..bb9224a
--- /dev/null
+++ b/style.mss
@@ -0,0 +1,12 @@
+Map {
+ background-color: @water-color;
+}
+
+ at book-fonts: "DejaVu Sans Book", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular", "Droid Sans Fallback Regular", "unifont Medium";
+ at bold-fonts: "DejaVu Sans Bold", "Arundina Sans Bold", "Padauk Bold",
+ "DejaVu Sans Book", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular", "Droid Sans Fallback Regular", "unifont Medium";
+ at oblique-fonts: "DejaVu Sans Oblique", "Arundina Sans Italic",
+ "DejaVu Sans Book", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular", "Droid Sans Fallback Regular", "unifont Medium";
+
+ at water-color: #b5d0d0;
+ at land-color: #f2efe9;
diff --git a/symbols/aerodrome.p.16.png b/symbols/aerodrome.p.16.png
new file mode 100644
index 0000000..8f13cd7
Binary files /dev/null and b/symbols/aerodrome.p.16.png differ
diff --git a/symbols/aerodrome.png b/symbols/aerodrome.png
new file mode 100644
index 0000000..740229f
Binary files /dev/null and b/symbols/aerodrome.png differ
diff --git a/symbols/aiga_parking1.png b/symbols/aiga_parking1.png
new file mode 100644
index 0000000..641a3c9
Binary files /dev/null and b/symbols/aiga_parking1.png differ
diff --git a/symbols/allotments.png b/symbols/allotments.png
new file mode 100644
index 0000000..d5e2779
Binary files /dev/null and b/symbols/allotments.png differ
diff --git a/symbols/alpinehut.p.16.png b/symbols/alpinehut.p.16.png
new file mode 100644
index 0000000..84b0977
Binary files /dev/null and b/symbols/alpinehut.p.16.png differ
diff --git a/symbols/amenity_court.p.20.png b/symbols/amenity_court.p.20.png
new file mode 100644
index 0000000..eed9852
Binary files /dev/null and b/symbols/amenity_court.p.20.png differ
diff --git a/symbols/amenity_prison.p.20.png b/symbols/amenity_prison.p.20.png
new file mode 100644
index 0000000..05425fb
Binary files /dev/null and b/symbols/amenity_prison.p.20.png differ
diff --git a/symbols/arrow.png b/symbols/arrow.png
new file mode 100644
index 0000000..ffbb1df
Binary files /dev/null and b/symbols/arrow.png differ
diff --git a/symbols/arrow_back.png b/symbols/arrow_back.png
new file mode 100644
index 0000000..309ca5d
Binary files /dev/null and b/symbols/arrow_back.png differ
diff --git a/symbols/atm.png b/symbols/atm.png
new file mode 100644
index 0000000..9a1dd5d
Binary files /dev/null and b/symbols/atm.png differ
diff --git a/symbols/atm2.p.16.png b/symbols/atm2.p.16.png
new file mode 100644
index 0000000..62caf20
Binary files /dev/null and b/symbols/atm2.p.16.png differ
diff --git a/symbols/bandb.p.20.png b/symbols/bandb.p.20.png
new file mode 100644
index 0000000..eb7ebb9
Binary files /dev/null and b/symbols/bandb.p.20.png differ
diff --git a/symbols/bank2.p.16.png b/symbols/bank2.p.16.png
new file mode 100644
index 0000000..a7d30e8
Binary files /dev/null and b/symbols/bank2.p.16.png differ
diff --git a/symbols/bar.p.20.png b/symbols/bar.p.20.png
new file mode 100644
index 0000000..9b0e48b
Binary files /dev/null and b/symbols/bar.p.20.png differ
diff --git a/symbols/beach.png b/symbols/beach.png
new file mode 100644
index 0000000..ff9e307
Binary files /dev/null and b/symbols/beach.png differ
diff --git a/symbols/biergarten.p.16.png b/symbols/biergarten.p.16.png
new file mode 100644
index 0000000..241a4de
Binary files /dev/null and b/symbols/biergarten.p.16.png differ
diff --git a/symbols/bollard.png b/symbols/bollard.png
new file mode 100644
index 0000000..1ea4118
Binary files /dev/null and b/symbols/bollard.png differ
diff --git a/symbols/buddhist.png b/symbols/buddhist.png
new file mode 100644
index 0000000..9b0cc59
Binary files /dev/null and b/symbols/buddhist.png differ
diff --git a/symbols/bus_station.n.16.png b/symbols/bus_station.n.16.png
new file mode 100644
index 0000000..5224dd1
Binary files /dev/null and b/symbols/bus_station.n.16.png differ
diff --git a/symbols/bus_stop.p.12.png b/symbols/bus_stop.p.12.png
new file mode 100644
index 0000000..f290dcb
Binary files /dev/null and b/symbols/bus_stop.p.12.png differ
diff --git a/symbols/bus_stop.png b/symbols/bus_stop.png
new file mode 100644
index 0000000..e75f6fb
Binary files /dev/null and b/symbols/bus_stop.png differ
diff --git a/symbols/bus_stop_small.png b/symbols/bus_stop_small.png
new file mode 100644
index 0000000..6d8b655
Binary files /dev/null and b/symbols/bus_stop_small.png differ
diff --git a/symbols/cable_car.png b/symbols/cable_car.png
new file mode 100644
index 0000000..b160f0c
Binary files /dev/null and b/symbols/cable_car.png differ
diff --git a/symbols/cafe.p.16.png b/symbols/cafe.p.16.png
new file mode 100644
index 0000000..836f8a5
Binary files /dev/null and b/symbols/cafe.p.16.png differ
diff --git a/symbols/camping.n.16.png b/symbols/camping.n.16.png
new file mode 100644
index 0000000..b769125
Binary files /dev/null and b/symbols/camping.n.16.png differ
diff --git a/symbols/car_share.p.16.png b/symbols/car_share.p.16.png
new file mode 100644
index 0000000..1dcc537
Binary files /dev/null and b/symbols/car_share.p.16.png differ
diff --git a/symbols/caravan_park.p.24.png b/symbols/caravan_park.p.24.png
new file mode 100644
index 0000000..751f520
Binary files /dev/null and b/symbols/caravan_park.p.24.png differ
diff --git a/symbols/cemetery_jewish.18.png b/symbols/cemetery_jewish.18.png
new file mode 100644
index 0000000..316cdd8
Binary files /dev/null and b/symbols/cemetery_jewish.18.png differ
diff --git a/symbols/chair_lift.png b/symbols/chair_lift.png
new file mode 100644
index 0000000..ba0f474
Binary files /dev/null and b/symbols/chair_lift.png differ
diff --git a/symbols/chalet.p.16.png b/symbols/chalet.p.16.png
new file mode 100644
index 0000000..db5eb31
Binary files /dev/null and b/symbols/chalet.p.16.png differ
diff --git a/symbols/christian3.p.14.png b/symbols/christian3.p.14.png
new file mode 100644
index 0000000..c420f7f
Binary files /dev/null and b/symbols/christian3.p.14.png differ
diff --git a/symbols/cinema.p.24.png b/symbols/cinema.p.24.png
new file mode 100644
index 0000000..1a31e65
Binary files /dev/null and b/symbols/cinema.p.24.png differ
diff --git a/symbols/cliff.png b/symbols/cliff.png
new file mode 100644
index 0000000..0fc0528
Binary files /dev/null and b/symbols/cliff.png differ
diff --git a/symbols/cliff2.png b/symbols/cliff2.png
new file mode 100644
index 0000000..790c7ff
Binary files /dev/null and b/symbols/cliff2.png differ
diff --git a/symbols/communications.p.20.png b/symbols/communications.p.20.png
new file mode 100644
index 0000000..1000421
Binary files /dev/null and b/symbols/communications.p.20.png differ
diff --git a/symbols/danger.png b/symbols/danger.png
new file mode 100644
index 0000000..2f7b943
Binary files /dev/null and b/symbols/danger.png differ
diff --git a/symbols/department_store.p.16.png b/symbols/department_store.p.16.png
new file mode 100644
index 0000000..c42b9a2
Binary files /dev/null and b/symbols/department_store.p.16.png differ
diff --git a/symbols/embassy.png b/symbols/embassy.png
new file mode 100644
index 0000000..909e8dc
Binary files /dev/null and b/symbols/embassy.png differ
diff --git a/symbols/fast_food.png b/symbols/fast_food.png
new file mode 100644
index 0000000..99875e9
Binary files /dev/null and b/symbols/fast_food.png differ
diff --git a/symbols/firestation.p.16.png b/symbols/firestation.p.16.png
new file mode 100644
index 0000000..cf24559
Binary files /dev/null and b/symbols/firestation.p.16.png differ
diff --git a/symbols/florist.p.16.png b/symbols/florist.p.16.png
new file mode 100644
index 0000000..3ed55a5
Binary files /dev/null and b/symbols/florist.p.16.png differ
diff --git a/symbols/food_bar.p.16.png b/symbols/food_bar.p.16.png
new file mode 100644
index 0000000..da043fb
Binary files /dev/null and b/symbols/food_bar.p.16.png differ
diff --git a/symbols/food_drinkingtap.p.20.png b/symbols/food_drinkingtap.p.20.png
new file mode 100644
index 0000000..0a4c25a
Binary files /dev/null and b/symbols/food_drinkingtap.p.20.png differ
diff --git a/symbols/forest.png b/symbols/forest.png
new file mode 100644
index 0000000..d6d50c9
Binary files /dev/null and b/symbols/forest.png differ
diff --git a/symbols/fuel.p.16.png b/symbols/fuel.p.16.png
new file mode 100644
index 0000000..7bab32a
Binary files /dev/null and b/symbols/fuel.p.16.png differ
diff --git a/symbols/gate.png b/symbols/gate.png
new file mode 100644
index 0000000..5c5f3b6
Binary files /dev/null and b/symbols/gate.png differ
diff --git a/symbols/gate2.png b/symbols/gate2.png
new file mode 100644
index 0000000..b33e556
Binary files /dev/null and b/symbols/gate2.png differ
diff --git a/symbols/glacier.png b/symbols/glacier.png
new file mode 100644
index 0000000..0572751
Binary files /dev/null and b/symbols/glacier.png differ
diff --git a/symbols/glacier2.png b/symbols/glacier2.png
new file mode 100644
index 0000000..90b1844
Binary files /dev/null and b/symbols/glacier2.png differ
diff --git a/symbols/grave_yard.png b/symbols/grave_yard.png
new file mode 100644
index 0000000..7499533
Binary files /dev/null and b/symbols/grave_yard.png differ
diff --git a/symbols/grave_yard_generic.png b/symbols/grave_yard_generic.png
new file mode 100644
index 0000000..9f91602
Binary files /dev/null and b/symbols/grave_yard_generic.png differ
diff --git a/symbols/guest_house.p.16.png b/symbols/guest_house.p.16.png
new file mode 100644
index 0000000..c730b69
Binary files /dev/null and b/symbols/guest_house.p.16.png differ
diff --git a/symbols/halt.png b/symbols/halt.png
new file mode 100644
index 0000000..4085226
Binary files /dev/null and b/symbols/halt.png differ
diff --git a/symbols/helipad.p.16.png b/symbols/helipad.p.16.png
new file mode 100644
index 0000000..619513c
Binary files /dev/null and b/symbols/helipad.p.16.png differ
diff --git a/symbols/hindu.png b/symbols/hindu.png
new file mode 100644
index 0000000..c31a93d
Binary files /dev/null and b/symbols/hindu.png differ
diff --git a/symbols/hospital.p.16.png b/symbols/hospital.p.16.png
new file mode 100644
index 0000000..dd4febf
Binary files /dev/null and b/symbols/hospital.p.16.png differ
diff --git a/symbols/hospital.png b/symbols/hospital.png
new file mode 100644
index 0000000..74a249c
Binary files /dev/null and b/symbols/hospital.png differ
diff --git a/symbols/hostel.p.20.png b/symbols/hostel.p.20.png
new file mode 100644
index 0000000..be58f6d
Binary files /dev/null and b/symbols/hostel.p.20.png differ
diff --git a/symbols/hotel2.p.20.png b/symbols/hotel2.p.20.png
new file mode 100644
index 0000000..a441134
Binary files /dev/null and b/symbols/hotel2.p.20.png differ
diff --git a/symbols/information.p.16.png b/symbols/information.p.16.png
new file mode 100644
index 0000000..65d03db
Binary files /dev/null and b/symbols/information.p.16.png differ
diff --git a/symbols/islamic3.p.16.png b/symbols/islamic3.p.16.png
new file mode 100644
index 0000000..8746c31
Binary files /dev/null and b/symbols/islamic3.p.16.png differ
diff --git a/symbols/jewish3.p.16.png b/symbols/jewish3.p.16.png
new file mode 100644
index 0000000..0a11447
Binary files /dev/null and b/symbols/jewish3.p.16.png differ
diff --git a/symbols/landfill.png b/symbols/landfill.png
new file mode 100644
index 0000000..d08255f
Binary files /dev/null and b/symbols/landfill.png differ
diff --git a/symbols/level_crossing.png b/symbols/level_crossing.png
new file mode 100644
index 0000000..5002f6d
Binary files /dev/null and b/symbols/level_crossing.png differ
diff --git a/symbols/level_crossing2.png b/symbols/level_crossing2.png
new file mode 100644
index 0000000..eac7189
Binary files /dev/null and b/symbols/level_crossing2.png differ
diff --git a/symbols/library.p.20.png b/symbols/library.p.20.png
new file mode 100644
index 0000000..b38c4d1
Binary files /dev/null and b/symbols/library.p.20.png differ
diff --git a/symbols/liftgate.png b/symbols/liftgate.png
new file mode 100644
index 0000000..fd50fe5
Binary files /dev/null and b/symbols/liftgate.png differ
diff --git a/symbols/lighthouse.p.20.png b/symbols/lighthouse.p.20.png
new file mode 100644
index 0000000..f2e268f
Binary files /dev/null and b/symbols/lighthouse.p.20.png differ
diff --git a/symbols/lock_gate.png b/symbols/lock_gate.png
new file mode 100644
index 0000000..4fb277e
Binary files /dev/null and b/symbols/lock_gate.png differ
diff --git a/symbols/london-tube-24.png b/symbols/london-tube-24.png
new file mode 100644
index 0000000..04c1795
Binary files /dev/null and b/symbols/london-tube-24.png differ
diff --git a/symbols/marsh.png b/symbols/marsh.png
new file mode 100644
index 0000000..4ff801e
Binary files /dev/null and b/symbols/marsh.png differ
diff --git a/symbols/memorial.png b/symbols/memorial.png
new file mode 100644
index 0000000..9423e10
Binary files /dev/null and b/symbols/memorial.png differ
diff --git a/symbols/military_red_hatch.png b/symbols/military_red_hatch.png
new file mode 100644
index 0000000..f9dbeb6
Binary files /dev/null and b/symbols/military_red_hatch.png differ
diff --git a/symbols/mini_round.png b/symbols/mini_round.png
new file mode 100644
index 0000000..b9a7d2d
Binary files /dev/null and b/symbols/mini_round.png differ
diff --git a/symbols/mosque.png b/symbols/mosque.png
new file mode 100644
index 0000000..71b55fa
Binary files /dev/null and b/symbols/mosque.png differ
diff --git a/symbols/mot_shield1.png b/symbols/mot_shield1.png
new file mode 100644
index 0000000..ce509ff
Binary files /dev/null and b/symbols/mot_shield1.png differ
diff --git a/symbols/mot_shield2.png b/symbols/mot_shield2.png
new file mode 100644
index 0000000..c9e1965
Binary files /dev/null and b/symbols/mot_shield2.png differ
diff --git a/symbols/mot_shield3.png b/symbols/mot_shield3.png
new file mode 100644
index 0000000..9b27a6b
Binary files /dev/null and b/symbols/mot_shield3.png differ
diff --git a/symbols/mot_shield4.png b/symbols/mot_shield4.png
new file mode 100644
index 0000000..0c7ba69
Binary files /dev/null and b/symbols/mot_shield4.png differ
diff --git a/symbols/mot_shield5.png b/symbols/mot_shield5.png
new file mode 100644
index 0000000..2d0c1dd
Binary files /dev/null and b/symbols/mot_shield5.png differ
diff --git a/symbols/mot_shield6.png b/symbols/mot_shield6.png
new file mode 100644
index 0000000..0a97a3d
Binary files /dev/null and b/symbols/mot_shield6.png differ
diff --git a/symbols/mot_shield7.png b/symbols/mot_shield7.png
new file mode 100644
index 0000000..35a3dfc
Binary files /dev/null and b/symbols/mot_shield7.png differ
diff --git a/symbols/mot_shield8.png b/symbols/mot_shield8.png
new file mode 100644
index 0000000..8f0653d
Binary files /dev/null and b/symbols/mot_shield8.png differ
diff --git a/symbols/motel.p.20.png b/symbols/motel.p.20.png
new file mode 100644
index 0000000..56a96e5
Binary files /dev/null and b/symbols/motel.p.20.png differ
diff --git a/symbols/motorway_shield1.png b/symbols/motorway_shield1.png
new file mode 100644
index 0000000..40111a6
Binary files /dev/null and b/symbols/motorway_shield1.png differ
diff --git a/symbols/motorway_shield2.png b/symbols/motorway_shield2.png
new file mode 100644
index 0000000..331c522
Binary files /dev/null and b/symbols/motorway_shield2.png differ
diff --git a/symbols/motorway_shield3.png b/symbols/motorway_shield3.png
new file mode 100644
index 0000000..0e4f5fd
Binary files /dev/null and b/symbols/motorway_shield3.png differ
diff --git a/symbols/motorway_shield4.png b/symbols/motorway_shield4.png
new file mode 100644
index 0000000..56d7ab8
Binary files /dev/null and b/symbols/motorway_shield4.png differ
diff --git a/symbols/motorway_shield5.png b/symbols/motorway_shield5.png
new file mode 100644
index 0000000..2cc5d35
Binary files /dev/null and b/symbols/motorway_shield5.png differ
diff --git a/symbols/motorway_shield6.png b/symbols/motorway_shield6.png
new file mode 100644
index 0000000..3ece3f0
Binary files /dev/null and b/symbols/motorway_shield6.png differ
diff --git a/symbols/mud.png b/symbols/mud.png
new file mode 100644
index 0000000..fe031f6
Binary files /dev/null and b/symbols/mud.png differ
diff --git a/symbols/museum.p.16.png b/symbols/museum.p.16.png
new file mode 100644
index 0000000..c58d306
Binary files /dev/null and b/symbols/museum.p.16.png differ
diff --git a/symbols/nature_reserve.png b/symbols/nature_reserve.png
new file mode 100644
index 0000000..da01ec8
Binary files /dev/null and b/symbols/nature_reserve.png differ
diff --git a/symbols/nature_reserve2.png b/symbols/nature_reserve2.png
new file mode 100644
index 0000000..c804a8e
Binary files /dev/null and b/symbols/nature_reserve2.png differ
diff --git a/symbols/nature_reserve2T.png b/symbols/nature_reserve2T.png
new file mode 100644
index 0000000..7dd9728
Binary files /dev/null and b/symbols/nature_reserve2T.png differ
diff --git a/symbols/nature_reserve5.png b/symbols/nature_reserve5.png
new file mode 100644
index 0000000..db28f5e
Binary files /dev/null and b/symbols/nature_reserve5.png differ
diff --git a/symbols/nature_reserve6.png b/symbols/nature_reserve6.png
new file mode 100644
index 0000000..6768b56
Binary files /dev/null and b/symbols/nature_reserve6.png differ
diff --git a/symbols/nature_reserveT.png b/symbols/nature_reserveT.png
new file mode 100644
index 0000000..4da4863
Binary files /dev/null and b/symbols/nature_reserveT.png differ
diff --git a/symbols/orchard.png b/symbols/orchard.png
new file mode 100644
index 0000000..a889a9e
Binary files /dev/null and b/symbols/orchard.png differ
diff --git a/symbols/parking.p.16.png b/symbols/parking.p.16.png
new file mode 100644
index 0000000..5860900
Binary files /dev/null and b/symbols/parking.p.16.png differ
diff --git a/symbols/parking.png b/symbols/parking.png
new file mode 100644
index 0000000..9e3ad06
Binary files /dev/null and b/symbols/parking.png differ
diff --git a/symbols/parking_private.p.16.png b/symbols/parking_private.p.16.png
new file mode 100644
index 0000000..756ff7c
Binary files /dev/null and b/symbols/parking_private.p.16.png differ
diff --git a/symbols/peak.png b/symbols/peak.png
new file mode 100644
index 0000000..161cf50
Binary files /dev/null and b/symbols/peak.png differ
diff --git a/symbols/pharmacy.p.16.png b/symbols/pharmacy.p.16.png
new file mode 100644
index 0000000..fb1c56c
Binary files /dev/null and b/symbols/pharmacy.p.16.png differ
diff --git a/symbols/picnic.p.16.png b/symbols/picnic.p.16.png
new file mode 100644
index 0000000..0eff097
Binary files /dev/null and b/symbols/picnic.p.16.png differ
diff --git a/symbols/pint.png b/symbols/pint.png
new file mode 100644
index 0000000..d426eea
Binary files /dev/null and b/symbols/pint.png differ
diff --git a/symbols/place_of_worship.png b/symbols/place_of_worship.png
new file mode 100644
index 0000000..95494f5
Binary files /dev/null and b/symbols/place_of_worship.png differ
diff --git a/symbols/place_of_worship3.p.16.png b/symbols/place_of_worship3.p.16.png
new file mode 100644
index 0000000..d75bbf4
Binary files /dev/null and b/symbols/place_of_worship3.p.16.png differ
diff --git a/symbols/place_of_worship3.png b/symbols/place_of_worship3.png
new file mode 100644
index 0000000..fb01d05
Binary files /dev/null and b/symbols/place_of_worship3.png differ
diff --git a/symbols/playground.p.20.png b/symbols/playground.p.20.png
new file mode 100644
index 0000000..42db81d
Binary files /dev/null and b/symbols/playground.p.20.png differ
diff --git a/symbols/poi_cave.p.16.png b/symbols/poi_cave.p.16.png
new file mode 100644
index 0000000..aafddbb
Binary files /dev/null and b/symbols/poi_cave.p.16.png differ
diff --git a/symbols/police.p.16.png b/symbols/police.p.16.png
new file mode 100644
index 0000000..2dd87aa
Binary files /dev/null and b/symbols/police.p.16.png differ
diff --git a/symbols/post_box.p.16.png b/symbols/post_box.p.16.png
new file mode 100644
index 0000000..3119cc1
Binary files /dev/null and b/symbols/post_box.p.16.png differ
diff --git a/symbols/post_box.png b/symbols/post_box.png
new file mode 100644
index 0000000..8731497
Binary files /dev/null and b/symbols/post_box.png differ
diff --git a/symbols/post_office.p.16.png b/symbols/post_office.p.16.png
new file mode 100644
index 0000000..743255e
Binary files /dev/null and b/symbols/post_office.p.16.png differ
diff --git a/symbols/post_office.png b/symbols/post_office.png
new file mode 100644
index 0000000..42d9054
Binary files /dev/null and b/symbols/post_office.png differ
diff --git a/symbols/postoffice.png b/symbols/postoffice.png
new file mode 100644
index 0000000..d0434aa
Binary files /dev/null and b/symbols/postoffice.png differ
diff --git a/symbols/power_line.png b/symbols/power_line.png
new file mode 100644
index 0000000..ce94c8a
Binary files /dev/null and b/symbols/power_line.png differ
diff --git a/symbols/power_pole.png b/symbols/power_pole.png
new file mode 100644
index 0000000..ef18a39
Binary files /dev/null and b/symbols/power_pole.png differ
diff --git a/symbols/power_tower.png b/symbols/power_tower.png
new file mode 100644
index 0000000..2c963ad
Binary files /dev/null and b/symbols/power_tower.png differ
diff --git a/symbols/power_tower_3x3.png b/symbols/power_tower_3x3.png
new file mode 100644
index 0000000..4b1784e
Binary files /dev/null and b/symbols/power_tower_3x3.png differ
diff --git a/symbols/power_tower_5x5.png b/symbols/power_tower_5x5.png
new file mode 100644
index 0000000..b3a6a2b
Binary files /dev/null and b/symbols/power_tower_5x5.png differ
diff --git a/symbols/power_wind.png b/symbols/power_wind.png
new file mode 100644
index 0000000..29aeb7a
Binary files /dev/null and b/symbols/power_wind.png differ
diff --git a/symbols/pri_shield1.png b/symbols/pri_shield1.png
new file mode 100644
index 0000000..1234b38
Binary files /dev/null and b/symbols/pri_shield1.png differ
diff --git a/symbols/pri_shield2.png b/symbols/pri_shield2.png
new file mode 100644
index 0000000..880ab4a
Binary files /dev/null and b/symbols/pri_shield2.png differ
diff --git a/symbols/pri_shield3.png b/symbols/pri_shield3.png
new file mode 100644
index 0000000..a97846a
Binary files /dev/null and b/symbols/pri_shield3.png differ
diff --git a/symbols/pri_shield4.png b/symbols/pri_shield4.png
new file mode 100644
index 0000000..ee0361c
Binary files /dev/null and b/symbols/pri_shield4.png differ
diff --git a/symbols/pri_shield5.png b/symbols/pri_shield5.png
new file mode 100644
index 0000000..f68bc7d
Binary files /dev/null and b/symbols/pri_shield5.png differ
diff --git a/symbols/pri_shield6.png b/symbols/pri_shield6.png
new file mode 100644
index 0000000..32ac05c
Binary files /dev/null and b/symbols/pri_shield6.png differ
diff --git a/symbols/pri_shield7.png b/symbols/pri_shield7.png
new file mode 100644
index 0000000..7e4e2f1
Binary files /dev/null and b/symbols/pri_shield7.png differ
diff --git a/symbols/pri_shield8.png b/symbols/pri_shield8.png
new file mode 100644
index 0000000..73fcb3b
Binary files /dev/null and b/symbols/pri_shield8.png differ
diff --git a/symbols/primary_shield1.png b/symbols/primary_shield1.png
new file mode 100644
index 0000000..f7491b6
Binary files /dev/null and b/symbols/primary_shield1.png differ
diff --git a/symbols/primary_shield2.png b/symbols/primary_shield2.png
new file mode 100644
index 0000000..520f8f4
Binary files /dev/null and b/symbols/primary_shield2.png differ
diff --git a/symbols/primary_shield3.png b/symbols/primary_shield3.png
new file mode 100644
index 0000000..d4dd8e3
Binary files /dev/null and b/symbols/primary_shield3.png differ
diff --git a/symbols/primary_shield4.png b/symbols/primary_shield4.png
new file mode 100644
index 0000000..378e737
Binary files /dev/null and b/symbols/primary_shield4.png differ
diff --git a/symbols/primary_shield5.png b/symbols/primary_shield5.png
new file mode 100644
index 0000000..dc59c40
Binary files /dev/null and b/symbols/primary_shield5.png differ
diff --git a/symbols/primary_shield6.png b/symbols/primary_shield6.png
new file mode 100644
index 0000000..606fc12
Binary files /dev/null and b/symbols/primary_shield6.png differ
diff --git a/symbols/primary_shield7.png b/symbols/primary_shield7.png
new file mode 100644
index 0000000..9282fc0
Binary files /dev/null and b/symbols/primary_shield7.png differ
diff --git a/symbols/primary_shield8.png b/symbols/primary_shield8.png
new file mode 100644
index 0000000..3ccc5d1
Binary files /dev/null and b/symbols/primary_shield8.png differ
diff --git a/symbols/pub.p.16.png b/symbols/pub.p.16.png
new file mode 100644
index 0000000..b452a7e
Binary files /dev/null and b/symbols/pub.p.16.png differ
diff --git a/symbols/pub.png b/symbols/pub.png
new file mode 100644
index 0000000..3ac26f3
Binary files /dev/null and b/symbols/pub.png differ
diff --git a/symbols/quarry.png b/symbols/quarry.png
new file mode 100644
index 0000000..ab5088e
Binary files /dev/null and b/symbols/quarry.png differ
diff --git a/symbols/quarry2.png b/symbols/quarry2.png
new file mode 100644
index 0000000..38dcfac
Binary files /dev/null and b/symbols/quarry2.png differ
diff --git a/symbols/recycle.png b/symbols/recycle.png
new file mode 100644
index 0000000..4cf43a1
Binary files /dev/null and b/symbols/recycle.png differ
diff --git a/symbols/recycling.p.16.png b/symbols/recycling.p.16.png
new file mode 100644
index 0000000..59eb331
Binary files /dev/null and b/symbols/recycling.p.16.png differ
diff --git a/symbols/recycling.png b/symbols/recycling.png
new file mode 100644
index 0000000..5381898
Binary files /dev/null and b/symbols/recycling.png differ
diff --git a/symbols/rental_bicycle.p.20.png b/symbols/rental_bicycle.p.20.png
new file mode 100644
index 0000000..4bb10e0
Binary files /dev/null and b/symbols/rental_bicycle.p.20.png differ
diff --git a/symbols/restaurant.p.16.png b/symbols/restaurant.p.16.png
new file mode 100644
index 0000000..5c41008
Binary files /dev/null and b/symbols/restaurant.p.16.png differ
diff --git a/symbols/school.png b/symbols/school.png
new file mode 100644
index 0000000..4c919bf
Binary files /dev/null and b/symbols/school.png differ
diff --git a/symbols/scrub.png b/symbols/scrub.png
new file mode 100644
index 0000000..7668027
Binary files /dev/null and b/symbols/scrub.png differ
diff --git a/symbols/sec_shield1.png b/symbols/sec_shield1.png
new file mode 100644
index 0000000..3b22e6c
Binary files /dev/null and b/symbols/sec_shield1.png differ
diff --git a/symbols/sec_shield2.png b/symbols/sec_shield2.png
new file mode 100644
index 0000000..3a19224
Binary files /dev/null and b/symbols/sec_shield2.png differ
diff --git a/symbols/sec_shield3.png b/symbols/sec_shield3.png
new file mode 100644
index 0000000..c7d72d7
Binary files /dev/null and b/symbols/sec_shield3.png differ
diff --git a/symbols/sec_shield4.png b/symbols/sec_shield4.png
new file mode 100644
index 0000000..656817a
Binary files /dev/null and b/symbols/sec_shield4.png differ
diff --git a/symbols/sec_shield5.png b/symbols/sec_shield5.png
new file mode 100644
index 0000000..2918b07
Binary files /dev/null and b/symbols/sec_shield5.png differ
diff --git a/symbols/sec_shield6.png b/symbols/sec_shield6.png
new file mode 100644
index 0000000..4e1552b
Binary files /dev/null and b/symbols/sec_shield6.png differ
diff --git a/symbols/sec_shield7.png b/symbols/sec_shield7.png
new file mode 100644
index 0000000..04035ca
Binary files /dev/null and b/symbols/sec_shield7.png differ
diff --git a/symbols/sec_shield8.png b/symbols/sec_shield8.png
new file mode 100644
index 0000000..2c91468
Binary files /dev/null and b/symbols/sec_shield8.png differ
diff --git a/symbols/secondary_shield1.png b/symbols/secondary_shield1.png
new file mode 100644
index 0000000..7f463cc
Binary files /dev/null and b/symbols/secondary_shield1.png differ
diff --git a/symbols/secondary_shield2.png b/symbols/secondary_shield2.png
new file mode 100644
index 0000000..fe7ebd6
Binary files /dev/null and b/symbols/secondary_shield2.png differ
diff --git a/symbols/secondary_shield3.png b/symbols/secondary_shield3.png
new file mode 100644
index 0000000..f6c995a
Binary files /dev/null and b/symbols/secondary_shield3.png differ
diff --git a/symbols/secondary_shield4.png b/symbols/secondary_shield4.png
new file mode 100644
index 0000000..dd91317
Binary files /dev/null and b/symbols/secondary_shield4.png differ
diff --git a/symbols/secondary_shield5.png b/symbols/secondary_shield5.png
new file mode 100644
index 0000000..a9aa38f
Binary files /dev/null and b/symbols/secondary_shield5.png differ
diff --git a/symbols/secondary_shield6.png b/symbols/secondary_shield6.png
new file mode 100644
index 0000000..e3dcb46
Binary files /dev/null and b/symbols/secondary_shield6.png differ
diff --git a/symbols/secondary_shield7.png b/symbols/secondary_shield7.png
new file mode 100644
index 0000000..a90b587
Binary files /dev/null and b/symbols/secondary_shield7.png differ
diff --git a/symbols/secondary_shield8.png b/symbols/secondary_shield8.png
new file mode 100644
index 0000000..71feabf
Binary files /dev/null and b/symbols/secondary_shield8.png differ
diff --git a/symbols/shelter2.p.16.png b/symbols/shelter2.p.16.png
new file mode 100644
index 0000000..09ea530
Binary files /dev/null and b/symbols/shelter2.p.16.png differ
diff --git a/symbols/shinto.png b/symbols/shinto.png
new file mode 100644
index 0000000..6ac47f8
Binary files /dev/null and b/symbols/shinto.png differ
diff --git a/symbols/shop_bakery.p.16.png b/symbols/shop_bakery.p.16.png
new file mode 100644
index 0000000..89de12e
Binary files /dev/null and b/symbols/shop_bakery.p.16.png differ
diff --git a/symbols/shop_butcher.png b/symbols/shop_butcher.png
new file mode 100644
index 0000000..e31ca9d
Binary files /dev/null and b/symbols/shop_butcher.png differ
diff --git a/symbols/shop_clothes.p.16.png b/symbols/shop_clothes.p.16.png
new file mode 100644
index 0000000..b028a1c
Binary files /dev/null and b/symbols/shop_clothes.p.16.png differ
diff --git a/symbols/shop_convenience.p.16.png b/symbols/shop_convenience.p.16.png
new file mode 100644
index 0000000..2fc7584
Binary files /dev/null and b/symbols/shop_convenience.p.16.png differ
diff --git a/symbols/shop_diy.p.16.png b/symbols/shop_diy.p.16.png
new file mode 100644
index 0000000..b1954ab
Binary files /dev/null and b/symbols/shop_diy.p.16.png differ
diff --git a/symbols/shop_hairdresser.p.16.png b/symbols/shop_hairdresser.p.16.png
new file mode 100644
index 0000000..aa783f2
Binary files /dev/null and b/symbols/shop_hairdresser.p.16.png differ
diff --git a/symbols/shop_supermarket.p.16.png b/symbols/shop_supermarket.p.16.png
new file mode 100644
index 0000000..3b4338a
Binary files /dev/null and b/symbols/shop_supermarket.p.16.png differ
diff --git a/symbols/shopping_bicycle.p.16.png b/symbols/shopping_bicycle.p.16.png
new file mode 100644
index 0000000..d0b3680
Binary files /dev/null and b/symbols/shopping_bicycle.p.16.png differ
diff --git a/symbols/shopping_car.p.16.png b/symbols/shopping_car.p.16.png
new file mode 100644
index 0000000..e34715b
Binary files /dev/null and b/symbols/shopping_car.p.16.png differ
diff --git a/symbols/shopping_car_repair.p.16.png b/symbols/shopping_car_repair.p.16.png
new file mode 100644
index 0000000..9c38777
Binary files /dev/null and b/symbols/shopping_car_repair.p.16.png differ
diff --git a/symbols/sikh.png b/symbols/sikh.png
new file mode 100644
index 0000000..a3ade80
Binary files /dev/null and b/symbols/sikh.png differ
diff --git a/symbols/sikh3.p.16.png b/symbols/sikh3.p.16.png
new file mode 100644
index 0000000..9e8906e
Binary files /dev/null and b/symbols/sikh3.p.16.png differ
diff --git a/symbols/sosphone.png b/symbols/sosphone.png
new file mode 100644
index 0000000..0e5d0a2
Binary files /dev/null and b/symbols/sosphone.png differ
diff --git a/symbols/spring.png b/symbols/spring.png
new file mode 100644
index 0000000..c2dceb4
Binary files /dev/null and b/symbols/spring.png differ
diff --git a/symbols/station.png b/symbols/station.png
new file mode 100644
index 0000000..686ec10
Binary files /dev/null and b/symbols/station.png differ
diff --git a/symbols/station_disused.png b/symbols/station_disused.png
new file mode 100644
index 0000000..73be6f1
Binary files /dev/null and b/symbols/station_disused.png differ
diff --git a/symbols/station_small.png b/symbols/station_small.png
new file mode 100644
index 0000000..d8e75f5
Binary files /dev/null and b/symbols/station_small.png differ
diff --git a/symbols/synagogue.png b/symbols/synagogue.png
new file mode 100644
index 0000000..66ec7f1
Binary files /dev/null and b/symbols/synagogue.png differ
diff --git a/symbols/taoist.png b/symbols/taoist.png
new file mode 100644
index 0000000..39070d0
Binary files /dev/null and b/symbols/taoist.png differ
diff --git a/symbols/telephone.p.16.png b/symbols/telephone.p.16.png
new file mode 100644
index 0000000..29378e4
Binary files /dev/null and b/symbols/telephone.p.16.png differ
diff --git a/symbols/ter_shield1.png b/symbols/ter_shield1.png
new file mode 100644
index 0000000..9fad535
Binary files /dev/null and b/symbols/ter_shield1.png differ
diff --git a/symbols/ter_shield2.png b/symbols/ter_shield2.png
new file mode 100644
index 0000000..3092a89
Binary files /dev/null and b/symbols/ter_shield2.png differ
diff --git a/symbols/ter_shield3.png b/symbols/ter_shield3.png
new file mode 100644
index 0000000..0d42f6c
Binary files /dev/null and b/symbols/ter_shield3.png differ
diff --git a/symbols/ter_shield4.png b/symbols/ter_shield4.png
new file mode 100644
index 0000000..c30bb9a
Binary files /dev/null and b/symbols/ter_shield4.png differ
diff --git a/symbols/ter_shield5.png b/symbols/ter_shield5.png
new file mode 100644
index 0000000..5bfbf4e
Binary files /dev/null and b/symbols/ter_shield5.png differ
diff --git a/symbols/ter_shield6.png b/symbols/ter_shield6.png
new file mode 100644
index 0000000..4561fb1
Binary files /dev/null and b/symbols/ter_shield6.png differ
diff --git a/symbols/ter_shield7.png b/symbols/ter_shield7.png
new file mode 100644
index 0000000..80b4a16
Binary files /dev/null and b/symbols/ter_shield7.png differ
diff --git a/symbols/ter_shield8.png b/symbols/ter_shield8.png
new file mode 100644
index 0000000..a1eed49
Binary files /dev/null and b/symbols/ter_shield8.png differ
diff --git a/symbols/tertiary_shield1.png b/symbols/tertiary_shield1.png
new file mode 100644
index 0000000..0ba9015
Binary files /dev/null and b/symbols/tertiary_shield1.png differ
diff --git a/symbols/tertiary_shield2.png b/symbols/tertiary_shield2.png
new file mode 100644
index 0000000..4952fe7
Binary files /dev/null and b/symbols/tertiary_shield2.png differ
diff --git a/symbols/tertiary_shield3.png b/symbols/tertiary_shield3.png
new file mode 100644
index 0000000..4e7233c
Binary files /dev/null and b/symbols/tertiary_shield3.png differ
diff --git a/symbols/tertiary_shield4.png b/symbols/tertiary_shield4.png
new file mode 100644
index 0000000..b5ddee2
Binary files /dev/null and b/symbols/tertiary_shield4.png differ
diff --git a/symbols/tertiary_shield5.png b/symbols/tertiary_shield5.png
new file mode 100644
index 0000000..1c16176
Binary files /dev/null and b/symbols/tertiary_shield5.png differ
diff --git a/symbols/tertiary_shield6.png b/symbols/tertiary_shield6.png
new file mode 100644
index 0000000..87b8dad
Binary files /dev/null and b/symbols/tertiary_shield6.png differ
diff --git a/symbols/tertiary_shield7.png b/symbols/tertiary_shield7.png
new file mode 100644
index 0000000..8f3c4c5
Binary files /dev/null and b/symbols/tertiary_shield7.png differ
diff --git a/symbols/tertiary_shield8.png b/symbols/tertiary_shield8.png
new file mode 100644
index 0000000..ace8d21
Binary files /dev/null and b/symbols/tertiary_shield8.png differ
diff --git a/symbols/theatre.p.20.png b/symbols/theatre.p.20.png
new file mode 100644
index 0000000..36b918c
Binary files /dev/null and b/symbols/theatre.p.20.png differ
diff --git a/symbols/toilets.p.20.png b/symbols/toilets.p.20.png
new file mode 100644
index 0000000..80cf3af
Binary files /dev/null and b/symbols/toilets.p.20.png differ
diff --git a/symbols/tourist_archaeological2.glow.24.png b/symbols/tourist_archaeological2.glow.24.png
new file mode 100644
index 0000000..90c61c3
Binary files /dev/null and b/symbols/tourist_archaeological2.glow.24.png differ
diff --git a/symbols/tourist_memorial.p.20.png b/symbols/tourist_memorial.p.20.png
new file mode 100644
index 0000000..7fa8361
Binary files /dev/null and b/symbols/tourist_memorial.p.20.png differ
diff --git a/symbols/tower.png b/symbols/tower.png
new file mode 100644
index 0000000..304727a
Binary files /dev/null and b/symbols/tower.png differ
diff --git a/symbols/tower_water.p.20.png b/symbols/tower_water.p.20.png
new file mode 100644
index 0000000..5ca7801
Binary files /dev/null and b/symbols/tower_water.p.20.png differ
diff --git a/symbols/traffic_light.png b/symbols/traffic_light.png
new file mode 100644
index 0000000..1c2b3ca
Binary files /dev/null and b/symbols/traffic_light.png differ
diff --git a/symbols/transport_ford.p.16.png b/symbols/transport_ford.p.16.png
new file mode 100644
index 0000000..dc1bfc2
Binary files /dev/null and b/symbols/transport_ford.p.16.png differ
diff --git a/symbols/transport_slipway.p.20.png b/symbols/transport_slipway.p.20.png
new file mode 100644
index 0000000..45892de
Binary files /dev/null and b/symbols/transport_slipway.p.20.png differ
diff --git a/symbols/tree.png b/symbols/tree.png
new file mode 100644
index 0000000..7575bd6
Binary files /dev/null and b/symbols/tree.png differ
diff --git a/symbols/tree2.png b/symbols/tree2.png
new file mode 100644
index 0000000..f0e3e1f
Binary files /dev/null and b/symbols/tree2.png differ
diff --git a/symbols/tru_shield1.png b/symbols/tru_shield1.png
new file mode 100644
index 0000000..bbdd6fc
Binary files /dev/null and b/symbols/tru_shield1.png differ
diff --git a/symbols/tru_shield2.png b/symbols/tru_shield2.png
new file mode 100644
index 0000000..e33d296
Binary files /dev/null and b/symbols/tru_shield2.png differ
diff --git a/symbols/tru_shield3.png b/symbols/tru_shield3.png
new file mode 100644
index 0000000..1a47f9a
Binary files /dev/null and b/symbols/tru_shield3.png differ
diff --git a/symbols/tru_shield4.png b/symbols/tru_shield4.png
new file mode 100644
index 0000000..443c3f3
Binary files /dev/null and b/symbols/tru_shield4.png differ
diff --git a/symbols/tru_shield5.png b/symbols/tru_shield5.png
new file mode 100644
index 0000000..f53720b
Binary files /dev/null and b/symbols/tru_shield5.png differ
diff --git a/symbols/tru_shield6.png b/symbols/tru_shield6.png
new file mode 100644
index 0000000..092d0d9
Binary files /dev/null and b/symbols/tru_shield6.png differ
diff --git a/symbols/tru_shield7.png b/symbols/tru_shield7.png
new file mode 100644
index 0000000..49e9e03
Binary files /dev/null and b/symbols/tru_shield7.png differ
diff --git a/symbols/tru_shield8.png b/symbols/tru_shield8.png
new file mode 100644
index 0000000..587324a
Binary files /dev/null and b/symbols/tru_shield8.png differ
diff --git a/symbols/trunk_shield1.png b/symbols/trunk_shield1.png
new file mode 100644
index 0000000..bb849c2
Binary files /dev/null and b/symbols/trunk_shield1.png differ
diff --git a/symbols/trunk_shield2.png b/symbols/trunk_shield2.png
new file mode 100644
index 0000000..eb81d80
Binary files /dev/null and b/symbols/trunk_shield2.png differ
diff --git a/symbols/trunk_shield3.png b/symbols/trunk_shield3.png
new file mode 100644
index 0000000..4e6e976
Binary files /dev/null and b/symbols/trunk_shield3.png differ
diff --git a/symbols/trunk_shield4.png b/symbols/trunk_shield4.png
new file mode 100644
index 0000000..733d5d0
Binary files /dev/null and b/symbols/trunk_shield4.png differ
diff --git a/symbols/trunk_shield5.png b/symbols/trunk_shield5.png
new file mode 100644
index 0000000..d6700e7
Binary files /dev/null and b/symbols/trunk_shield5.png differ
diff --git a/symbols/trunk_shield6.png b/symbols/trunk_shield6.png
new file mode 100644
index 0000000..053784e
Binary files /dev/null and b/symbols/trunk_shield6.png differ
diff --git a/symbols/trunk_shield7.png b/symbols/trunk_shield7.png
new file mode 100644
index 0000000..3d8a555
Binary files /dev/null and b/symbols/trunk_shield7.png differ
diff --git a/symbols/trunk_shield8.png b/symbols/trunk_shield8.png
new file mode 100644
index 0000000..3d8f1b1
Binary files /dev/null and b/symbols/trunk_shield8.png differ
diff --git a/symbols/view_point.p.16.png b/symbols/view_point.p.16.png
new file mode 100644
index 0000000..b18660c
Binary files /dev/null and b/symbols/view_point.p.16.png differ
diff --git a/symbols/vineyard.png b/symbols/vineyard.png
new file mode 100644
index 0000000..6498e3f
Binary files /dev/null and b/symbols/vineyard.png differ
diff --git a/symbols/volcano.png b/symbols/volcano.png
new file mode 100644
index 0000000..a713ca3
Binary files /dev/null and b/symbols/volcano.png differ
diff --git a/symbols/walking.n.12.png b/symbols/walking.n.12.png
new file mode 100644
index 0000000..0902983
Binary files /dev/null and b/symbols/walking.n.12.png differ
diff --git a/symbols/windmill.png b/symbols/windmill.png
new file mode 100644
index 0000000..17229f3
Binary files /dev/null and b/symbols/windmill.png differ
diff --git a/symbols/zoo.png b/symbols/zoo.png
new file mode 100644
index 0000000..ef7e65b
Binary files /dev/null and b/symbols/zoo.png differ
diff --git a/water-features.mss b/water-features.mss
new file mode 100644
index 0000000..0672373
--- /dev/null
+++ b/water-features.mss
@@ -0,0 +1,72 @@
+#dam {
+ [zoom >= 13] {
+ line-width: 2;
+ line-color: #444;
+ line-join: round;
+ line-cap: round;
+ }
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-halo-radius: 1;
+ text-fill: #222;
+ text-size: 8;
+ text-face-name: @book-fonts;
+ }
+}
+
+#marinas-area {
+ [zoom >= 14] {
+ a/line-width: 1;
+ a/line-offset: -0.5;
+ a/line-color: blue;
+ a/line-opacity: 0.1;
+ a/line-join: round;
+ a/line-cap: round;
+ b/line-width: 3;
+ b/line-offset: -1.5;
+ b/line-color: blue;
+ b/line-opacity: 0.1;
+ b/line-join: round;
+ b/line-cap: round;
+ [zoom >= 17] {
+ a/line-width: 2;
+ a/line-offset: -1;
+ b/line-width: 6;
+ b/line-offset: -3;
+ }
+ }
+}
+
+#piers-area {
+ [zoom >= 12] {
+ polygon-fill: @land-color;
+ }
+}
+
+#piers {
+ [man_made = 'breakwater'],
+ [man_made = 'groyne'] {
+ [zoom >= 12] {
+ line-width: 1;
+ line-color: #aaa;
+ }
+ [zoom >= 13] {
+ line-width: 2;
+ }
+ [zoom >= 16] {
+ line-width: 4;
+ }
+ }
+ [man_made = 'pier'][zoom >= 12] {
+ line-width: 1.5;
+ line-color: @land-color;
+ [zoom >= 13] { line-width: 3; }
+ [zoom >= 16] { line-width: 7; }
+ }
+}
+
+#locks {
+ [waterway = 'lock_gate'][zoom >= 17] {
+ point-file: url('symbols/lock_gate.png');
+ }
+}
diff --git a/water.mss b/water.mss
new file mode 100644
index 0000000..d4ddfd7
--- /dev/null
+++ b/water.mss
@@ -0,0 +1,313 @@
+ at water-text: #6699cc;
+
+#water-areas {
+ [natural = 'glacier']::natural {
+ [zoom >= 6] {
+ line-dasharray: 4,2;
+ line-width: 1.5;
+ line-color: #9cf;
+ polygon-pattern-file: url('symbols/glacier.png');
+ [zoom >= 8] {
+ polygon-pattern-file: url('symbols/glacier2.png');
+ }
+ }
+ }
+
+ [waterway = 'dock'],
+ [waterway = 'mill_pond'],
+ [waterway = 'canal'] {
+ [zoom >= 9]::waterway {
+ polygon-gamma: 0.75;
+ polygon-fill: @water-color;
+ }
+ }
+
+ [landuse = 'basin'][zoom >= 7]::landuse {
+ polygon-gamma: 0.75;
+ polygon-fill: @water-color;
+ }
+
+ [natural = 'lake']::natural,
+ [natural = 'water']::natural,
+ [landuse = 'reservoir']::landuse,
+ [waterway = 'riverbank']::waterway,
+ [landuse = 'water']::water {
+ [zoom >= 6] {
+ polygon-fill: @water-color;
+ polygon-gamma: 0.75;
+ }
+ }
+
+ [natural = 'mud'][zoom >= 13]::natural {
+ polygon-pattern-file: url('symbols/mud.png');
+ }
+}
+
+#water-areas-overlay {
+ [natural = 'marsh'],
+ [natural = 'wetland'] {
+ [zoom >= 13] {
+ polygon-pattern-file: url('symbols/marsh.png');
+ }
+ }
+}
+
+#glaciers-text {
+ [way_area >= 10000000][zoom >= 10],
+ [way_area >= 5000000][way_area < 10000000][zoom >= 11],
+ [way_area < 5000000][zoom >= 12] {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #77f;
+ text-face-name: @oblique-fonts;
+ text-halo-radius: 1.5;
+ text-wrap-width: 20;
+ }
+}
+
+#water-lines-casing {
+ [waterway='stream'],
+ [waterway='ditch'],
+ [waterway='drain'] {
+ [zoom >= 13] {
+ line-width: 1.5;
+ line-color: white;
+ [waterway='stream'][zoom >= 15] {
+ line-width: 2.5;
+ }
+ }
+ }
+}
+
+#water-lines-low-zoom {
+ [waterway = 'river'][zoom >= 8][zoom < 12] {
+ line-color: @water-color;
+ line-width: 0.7;
+ [zoom >= 9] { line-width: 1.2; }
+ [zoom >= 10] { line-width: 1.6; }
+ }
+}
+
+#water-lines {
+ [waterway = 'weir'][zoom >= 15] {
+ line-color: #aaa;
+ line-width: 2;
+ line-join: round;
+ line-cap: round;
+ }
+
+ [waterway = 'wadi'][zoom >= 13] {
+ line-color: @water-color;
+ line-width: 1;
+ line-dasharray: 4,4;
+ line-cap: round;
+ line-join: round;
+ [zoom >= 16] { line-width: 2; }
+ }
+
+ [waterway = 'river'][zoom >= 12] {
+ line-color: @water-color;
+ line-width: 2;
+ line-cap: round;
+ line-join: round;
+ [zoom >= 13] {
+ line-width: 3;
+ }
+ [zoom >= 14] {
+ line-width: 5;
+ }
+ [zoom >= 15] {
+ line-width: 6;
+ }
+ [zoom >= 17] {
+ line-width: 10;
+ }
+ [zoom >= 18] {
+ line-width: 12;
+ }
+ [tunnel = 'yes'] {
+ [zoom >= 14] {
+ a/line-width: 6;
+ a/line-dasharray: 4,2;
+ a/line-color: @water-color;
+ b/line-width: 4;
+ b/line-color: white;
+ }
+ [zoom >= 15] {
+ a/line-width: 7;
+ }
+ [zoom >= 17] {
+ a/line-width: 11;
+ b/line-width: 7;
+ }
+ [zoom >= 18] {
+ a/line-width: 13;
+ b/line-width: 9;
+ }
+ }
+ }
+
+ [waterway = 'canal'][zoom >= 12][zoom < 14] {
+ line-color: @water-color;
+ line-width: 3;
+ line-cap: round;
+ line-join: round;
+ [zoom >= 13] {
+ line-width: 4;
+ }
+ }
+
+ [waterway = 'stream'],
+ [waterway = 'ditch'],
+ [waterway = 'drain'] {
+ [zoom >= 13][zoom < 15] {
+ line-width: 1;
+ line-color: @water-color;
+ }
+ }
+
+ [waterway = 'stream'][zoom >= 15] {
+ line-width: 2;
+ line-color: @water-color;
+ [tunnel = 'yes'] {
+ line-dasharray: 4,2;
+ line-width: 2.4;
+ a/line-width: 1.2;
+ a/line-color: #f3f7f7;
+ }
+ }
+
+ [waterway = 'drain'],
+ [waterway = 'ditch'] {
+ [zoom >= 15] {
+ line-width: 1;
+ line-color: @water-color;
+ [tunnel = 'yes'] {
+ line-width: 2;
+ line-dasharray: 4,2;
+ a/line-width: 1;
+ a/line-color: #f3f7f7;
+ }
+ }
+ }
+
+ [waterway = 'canal'][zoom >= 14] {
+ line-width: 7;
+ line-color: @water-color;
+ line-join: round;
+ line-cap: round;
+ [zoom >= 17] { line-width: 11; }
+ [tunnel = 'yes'] {
+ line-dasharray: 4,2;
+ b/line-width: 3;
+ b/line-color: white;
+ [zoom >= 17] { line-width: 7; }
+ }
+ }
+
+ [waterway = 'derelict_canal'][zoom >= 12] {
+ line-width: 1.5;
+ line-color: #b5e4d0;
+ line-dasharray: 4,4;
+ line-opacity: 0.5;
+ line-join: round;
+ line-cap: round;
+ [zoom >= 13] {
+ line-width: 2.5;
+ line-dasharray: 4,6;
+ }
+ [zoom >= 14] {
+ line-width: 4.5;
+ line-dasharray: 4,8;
+ }
+ }
+}
+
+#waterway-bridges {
+ [zoom >= 14] {
+ line-width: 7;
+ line-color: #000;
+ line-join: round;
+ b/line-width: 6;
+ b/line-color: @water-color;
+ b/line-cap: round;
+ b/line-join: round;
+ [zoom >= 17] {
+ line-width: 11;
+ b/line-width: 10;
+ }
+ }
+}
+
+#water-lines-text {
+ [waterway = 'river'][zoom >= 13] {
+ text-name: "[name]";
+ text-face-name: @oblique-fonts;
+ text-placement: line;
+ text-fill: @water-text;
+ text-spacing: 400;
+ text-size: 10;
+ text-halo-radius: 1;
+ [zoom >= 14] { text-size: 12; }
+ [tunnel = 'yes'] { text-min-distance: 200; }
+ }
+
+ [waterway = 'canal'][zoom >= 13][zoom < 14] {
+ text-name: "[name]";
+ text-face-name: @oblique-fonts;
+ text-halo-radius: 1;
+ text-size: 10;
+ text-placement: line;
+ text-fill: @water-text;
+ }
+
+ [waterway = 'stream'][zoom >= 15] {
+ text-name: "[name]";
+ text-size: 10;
+ text-face-name: @oblique-fonts;
+ text-fill: @water-text;
+ text-halo-radius: 1;
+ text-spacing: 600;
+ text-placement: line;
+ text-dy: 8;
+ }
+
+ [waterway = 'drain'],
+ [waterway = 'ditch'] {
+ [zoom >= 15] {
+ text-name: "[name]";
+ text-face-name: @oblique-fonts;
+ text-size: 10;
+ text-fill: @water-text;
+ text-spacing: 600;
+ text-placement: line;
+ text-halo-radius: 1;
+ }
+ }
+
+ [waterway = 'canal'][zoom >= 14] {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: @water-text;
+ text-placement: line;
+ text-face-name: @oblique-fonts;
+ text-halo-radius: 1;
+ [lock = 'yes'][zoom >= 17] {
+ text-placement: point;
+ text-wrap-width: 20;
+ }
+ }
+
+ [waterway = 'derelict_canal'][zoom >= 13] {
+ text-name: "[name]";
+ text-size: 10;
+ text-fill: #80d1ae;
+ text-face-name: @oblique-fonts;
+ text-placement: line;
+ text-spacing: 600;
+ text-halo-radius: 1;
+ [zoom >= 14] {
+ text-size: 12;
+ }
+ }
+}
--
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