diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000..7b86a913b4
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,22 @@
+language: node_js
+cache: apt
+node_js:
+ - "0.10"
+before_install:
+ - sudo apt-get update -qq
+ - sudo apt-get install -y -q python-demjson
+install:
+ - npm install carto@0.12.1
+ - 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
+ - touch data/world_boundaries/builtup_area.shp
+ - touch data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp
+ - touch data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp
+ - touch data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp
+ - touch data/land-polygons-split-3857/land_polygons.shp
+script:
+ - jsonlint project.mml
+ - ./node_modules/carto/bin/carto project.mml | xmllint - | wc -l
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6a97b8038a..544cc435f3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,25 @@
# OpenStreetMap Carto contribution guidelines
+## Workflow
+
+We operate the "Fork & Pull" model explained at
+
+https://help.github.com/articles/using-pull-requests
+
+You should fork the project into your own repo, create a topic branch
+there and then make one or more pull requests back to the gravitystorm repository.
+Your pull requests will then be reviewed and discussed.
+
+## Editing Layers
+
+OpenStreetMap Carto uses a YAML file for defining layers. Some of the rationale is outlined in [a GitHub issue](https://github.com/gravitystorm/openstreetmap-carto/issues/711). Editing multi-line SQL statements in a YAML file is much friendlier than editing escaped SQL in a JSON file.
+
+This requires a preprocessing step to convert the YAML to JSON. A script is provided at `scripts/yaml2mml.py`, which depends on PyYAML, available through `pip install pyyaml` or packaged on Ubuntu as `python-yaml`.
+
+After editing the YAML file, run `./scripts/yaml2mml.py < project.yaml > project.mml && touch project.mml` to update the file and force TileMill to reload it.
+
+When committing changes, add both the `project.yaml` and `project.mml` files to the commit. One of the big advantages of this system is that to resolve any layer merge conflicts, they only need to be resolved in the YAML file where they are easier to handle, then the JSON file can be regenerated, while at the same time the styles work with Tilemill out-of-the-box without needing to run the `yaml2mml` script.
+
## CartoCSS Style Guidelines
* Always specify zoom levels as either >= or < . Don't use = or =< or >
@@ -8,7 +28,6 @@
* 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
@@ -38,8 +57,22 @@ instead of
```
* 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.
+## SQL Style Guidelines
+Because SQL within JSON or YAML will not generally be syntax highlighted, indentation and caps are particularly important.
+
+* SQL keywords in caps, as in PostgreSQL documentation
+* Two space indents. No tabs.
+* Start with `(SELECT` and start the columns on the next line.
+* Two indents for columns, to bring them to the same indent level as later clause contents
+* Add indentation after `SELECT`s until the end of the sub-select.
+* Add indentation for contents of `FROM`, `WHERE`, `ORDER BY` and other clauses
+* Put content with WHERE, etc if it's short
+* Add indentation if necessary for complex function calls, WHERE parenthesis, and CASE statements
+* One space before and after = etc
+* Name SQL subqueries after the layer name (but use underscores)
+
## Previews
Some changes benefit from a review from a wider audience. In most cases some static images are sufficient, but sometimes a demo layer is necessary. pnorman has a private server which can host layers and has some data from parts of the world loaded. Before requesting this in a pull request, make sure that you don't anticipate any more changes to it.
-This does not replace reviewing your changes in Tilemill
\ No newline at end of file
+This does not replace reviewing your changes in Tilemill
diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 0000000000..c87096a309
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,95 @@
+# Installation
+
+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 [Mapzen](https://mapzen.com/metro-extracts/) 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
+```
+
+You can find a more detailed guide to setting up a database and loading data with osm2pgsql at [switch2osm.org](http://switch2osm.org/loading-osm-data/).
+
+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.
+
+```
+./get-shapefiles.sh
+```
+
+## Manual download
+
+You can also download them manually at the following paths:
+
+* [`simplified-land-polygons.shp`](http://data.openstreetmapdata.com/simplified-land-polygons-complete-3857.zip) (updated daily)
+* [`land-polygon.shp`](http://data.openstreetmapdata.com/land-polygons-split-3857.zip) (updated daily)
+* [`builtup_area.shp`](http://planet.openstreetmap.org/historical-shapefiles/world_boundaries-spherical.tgz)
+* [`ne_110m_admin_0_boundary_lines_land.shp`](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`](http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip) (and see [below](#populated-places-shapefile))
+
+The repeated www.naturalearthdata.com in the Natural Earth shapefiles is correct.
+
+Put these shapefiles at `path/to/openstreetmap-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`)
+
+### South Asia
+
+* Mukti Narrow, for Bangali (`ttf-indic-fonts-core`)
+* Gargi Medium, for Devanagari (`ttf-indic-fonts-core`)
+* TSCu_Paranar, for Tamil (`ttf-tamil-fonts`)
+* Mallige, for Kannada (`ttf-indic-fonts-core` for normal and bold and `ttf-kannada-fonts` for oblique) *The filename uses "Malige" but the font name uses "Mallige"*
+
+On Ubuntu you can install all the fonts with
+
+```
+sudo apt-get install ttf-dejavu fonts-droid ttf-unifont fonts-sipa-arundina fonts-sil-padauk fonts-khmeros \
+ttf-indic-fonts-core ttf-tamil-fonts ttf-kannada-fonts
+```
+
+## 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
+
+* [PyYAML](http://pyyaml.org/wiki/PyYAML) if editing the MML (layer definition) file (packaged as `python-yaml` on Ubuntu, or installed with `pip install pyyaml`)
diff --git a/README.md b/README.md
index c4bff2b073..9e8612ed30 100644
--- a/README.md
+++ b/README.md
@@ -1,104 +1,40 @@
# OpenStreetMap Carto
-The standard stylesheet on [OpenStreetMap.org](http://www.openstreetmap.org) An implemention of the standard OpenStreetMap mapnik style, in CartoCSS.
+![screenshot](https://raw.github.com/gravitystorm/openstreetmap-carto/master/preview.png)
+
+These are the CartoCSS map stylesheets for the Standard map layer on [OpenStreetMap.org](http://www.openstreetmap.org).
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
-```
-
-You can find a more detailed guide to setting up a database and loading data with osm2pgsql at [switch2osm.org](http://switch2osm.org/loading-osm-data/)
-
-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.
-
-```
-./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
+Since August 2013 these stylesheets have been 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).
-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.
+# Installation
-```
-ogr2ogr ne_10m_populated_places_fixed.shp ne_10m_populated_places.shp
-```
+You need a PostGIS database populated with OpenStreetMap data in the standard
+osm2pgsql database layout, along with auxillary shapefiles. See [INSTALL.md](INSTALL.md).
-See https://github.com/mapnik/mapnik/issues/1605 for more details.
+# Contributing
-## 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.
+Contributions to this project are welcome, see [CONTRIBUTING.md](CONTRIBUTING.md)
+for full details.
-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.
+# Versioning
-### 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``)
+This project follows a MAJOR.MINOR.PATCH versioning system. In the context of a
+cartographic project you can expect the following:
-### Southeast Asia
-* Arundina Sans, for Thai (``fonts-sipa-arundina``)
-* Padauk, for Burmese (``fonts-sil-padauk``)
-* Khmer OS Metal Chrieng Regular, for Khmer (``fonts-khmeros``)
-
-### South Asia
-
-* Mukti Narrow, for Bangali (``ttf-indic-fonts-core``)
-* Gargi Medium, for Devanagari (``ttf-indic-fonts-core``)
-* TSCu_Paranar, for Tamil (``ttf-tamil-fonts``)
-* Mallige, for Kannada (``ttf-indic-fonts-core`` for normal and bold and ``ttf-kannada-fonts`` for oblique) *The filename uses "Malige" but the font name uses "Mallige"*
-
-On Ubuntu you can install all the fonts with
-
-```
-sudo apt-get install ttf-dejavu fonts-droid ttf-unifont fonts-sipa-arundina fonts-sil-padauk fonts-khmeros \
-ttf-indic-fonts-core ttf-tamil-fonts ttf-kannada-fonts
-```
-
-## 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
+* PATCH: When a patch version is released, there would be no reason not to
+ upgrade. PATCH versions contain only bugfixes e.g. stylesheets won't compile,
+ features are missing by mistake, etc.
+* MINOR: These are routine releases and happen every 1-3 weeks. They will
+ contain changes to what's shown on the map, how they appear, new features
+ added and old features removed. They may rarely contain changes to assets i.e.
+ shapefiles and fonts but will not contain changes that require software or
+ database upgrades.
+* MAJOR: Any change the requires reloading a database, or upgrading software
+ dependecies will trigger a major version change.
# Roadmap
@@ -107,25 +43,42 @@ If you aren't using TileMill, you can compile the CartoCSS stylesheets into Mapn
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)
+## Current work (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'
+The v2.x series focuses on refactoring the style, both to to fix glitches and to
+leverage new features in CartoCSS / mapnik to simplify the stylesheets with only
+small changes to the output. It's also appropriate to pull out 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.
+The end goal will be a style that remains familiar but is much more suitable for
+further development, and/or forking for third-parties to customise.
-## Tackle the backlog (v3.x)
+## Future (v3.x)
-There are over [400 open requests][trac] on trac, some that have been open for years. These need
+There are over [300 open requests][issues], 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.
-[trac]: https://trac.openstreetmap.org/query?component=mapnik&status=!closed&order=changetime&desc=1&max=500
+[issues]: https://github.com/gravitystorm/openstreetmap-carto/issues
[cleverness]: https://github.com/openstreetmap/mapnik-stylesheets/blob/master/inc/settings.xml.inc.template#L16
+
+# Alternatives
+
+There are many open-source stylesheets written for creating OpenStreetMap-based
+maps using mapnik, many based on this project. Some alternatives are:
+
+* [OSM-Bright](https://github.com/mapbox/osm-bright)
+* [XML-based stylesheets](https://trac.openstreetmap.org/browser/subversion/applications/rendering/mapnik)
+* [osmfr-cartocss](https://github.com/cquest/osmfr-cartocss)
+* [openstreetmap-carto-german](https://github.com/woodpeck/openstreetmap-carto-german)
+
+# Maintainers
+
+* Andy Allan [@gravitystorm](https://github.com/gravitystorm/)
+* Matthijs Melissen [@math1985](https://github.com/math1985/)
+* Paul Norman [@pnorman](https://github.com/pnorman/)
+* Mateusz Konieczny [@mkoniecz](https://github.com/mkoniecz/)
diff --git a/amenity-points.mss b/amenity-points.mss
index 71fc6be3e4..1cbfbfd247 100644
--- a/amenity-points.mss
+++ b/amenity-points.mss
@@ -6,37 +6,37 @@
@transportation-text: #0066ff;
.points {
- [tourism = 'alpine_hut'][zoom >= 13]::tourism {
+ [feature = 'tourism_alpine_hut'][zoom >= 13] {
point-file: url('symbols/alpinehut.p.16.png');
point-placement: interior;
}
- [amenity = 'shelter'][zoom >= 16]::amenity {
+ [feature = 'amenity_shelter'][zoom >= 16] {
point-file: url('symbols/shelter2.p.16.png');
point-placement: interior;
}
- [amenity = 'atm'][zoom >=17]::amenity {
+ [feature = 'amenity_atm'][zoom >=17] {
point-file: url('symbols/atm2.p.16.png');
point-placement: interior;
}
- [amenity = 'bank'][zoom >= 17]::amenity {
+ [feature = 'amenity_bank'][zoom >= 17] {
point-file: url('symbols/bank2.p.16.png');
point-placement: interior;
}
- [amenity = 'bar'][zoom >=17]::amenity {
+ [feature = 'amenity_bar'][zoom >=17] {
point-file: url('symbols/bar.p.20.png');
point-placement: interior;
}
- [amenity = 'bicycle_rental'][zoom >= 17]::amenity {
+ [feature = 'amenity_bicycle_rental'][zoom >= 17] {
point-file: url('symbols/rental_bicycle.p.20.png');
point-placement: interior;
}
- [highway = 'bus_stop']::highway {
+ [feature = 'highway_bus_stop'] {
[zoom >= 16] {
point-file: url('symbols/bus_stop_small.png');
point-placement: interior;
@@ -46,125 +46,125 @@
}
}
- [amenity = 'bus_station'][zoom >= 16]::amenity {
+ [feature = 'amenity_bus_station'][zoom >= 16] {
point-file: url('symbols/bus_station.n.16.png');
point-placement: interior;
}
- [highway = 'traffic_signals'][zoom >= 17]::highway {
+ [feature = 'highway_traffic_signals'][zoom >= 17] {
point-file: url('symbols/traffic_light.png');
point-placement: interior;
}
- [amenity = 'cafe'][zoom >=17]::amenity {
+ [feature = 'amenity_cafe'][zoom >=17] {
point-file: url('symbols/cafe.p.16.png');
point-placement: interior;
}
- [tourism = 'camp_site'][zoom >= 16]::tourism {
+ [feature = 'tourism_camp_site'][zoom >= 16] {
point-file: url('symbols/camping.n.16.png');
point-placement: interior;
}
- [highway = 'ford'][zoom >= 16]::highway {
+ [feature = 'highway_ford'][zoom >= 16] {
point-file: url('symbols/transport_ford.p.16.png');
point-placement: interior;
}
- [tourism = 'caravan_site'][zoom >= 16]::tourism {
+ [feature = 'tourism_caravan_site'][zoom >= 16] {
point-file: url('symbols/caravan_park.p.24.png');
point-placement: interior;
}
- [amenity = 'car_sharing'][zoom >= 16]::amenity {
+ [feature = 'amenity_car_sharing'][zoom >= 16] {
point-file: url('symbols/car_share.p.16.png');
point-placement: interior;
}
- [tourism = 'chalet'][zoom >= 17]::tourism {
+ [feature = 'tourism_chalet'][zoom >= 17] {
point-file: url('symbols/chalet.p.16.png');
point-placement: interior;
}
- [amenity = 'cinema'][zoom >= 17]::amenity {
+ [feature = 'amenity_cinema'][zoom >= 16] {
point-file: url('symbols/cinema.p.24.png');
point-placement: interior;
}
- [amenity = 'fire_station'][zoom >= 17]::amenity {
+ [feature = 'amenity_fire_station'][zoom >= 16] {
point-file: url('symbols/firestation.p.16.png');
point-placement: interior;
}
- [amenity = 'fuel'][zoom >= 17]::amenity {
+ [feature = 'amenity_fuel'][zoom >= 17] {
point-file: url('symbols/fuel.p.16.png');
point-placement: interior;
}
- [tourism = 'guest_house'][zoom >= 17]::tourism {
+ [feature = 'tourism_guest_house'][zoom >= 17] {
point-file: url('symbols/guest_house.p.16.png');
point-placement: interior;
}
- [amenity = 'hospital'][zoom >= 15]::amenity {
+ [feature = 'amenity_hospital'][zoom >= 15] {
point-file: url('symbols/hospital.p.16.png');
point-placement: interior;
}
- [tourism = 'hostel'][zoom >= 17]::tourism {
+ [feature = 'tourism_hostel'][zoom >= 17] {
point-file: url('symbols/hostel.p.20.png');
point-placement: interior;
}
- [tourism = 'hotel'][zoom >= 17]::tourism {
+ [feature = 'tourism_hotel'][zoom >= 17] {
point-file: url('symbols/hotel2.p.20.png');
point-placement: interior;
}
- [tourism = 'motel'][zoom >= 17]::tourism {
+ [feature = 'tourism_motel'][zoom >= 17] {
point-file: url('symbols/motel.p.20.png');
point-placement: interior;
}
- [tourism = 'information'][zoom >= 16]::tourism {
+ [feature = 'tourism_information'][zoom >= 17] {
point-file: url('symbols/information.p.16.png');
point-placement: interior;
}
- [amenity = 'embassy'][zoom >= 17]::amenity {
+ [feature = 'amenity_embassy'][zoom >= 17] {
point-file: url('symbols/embassy.png');
point-placement: interior;
}
- [amenity = 'library'][zoom >= 17]::amenity {
+ [feature = 'amenity_library'][zoom >= 16] {
point-file: url('symbols/library.p.20.png');
point-placement: interior;
}
- [amenity = 'courthouse'][zoom > 17]::amenity {
+ [feature = 'amenity_courthouse'][zoom > 16] {
point-file: url('symbols/amenity_court.p.20.png');
point-placement: interior;
}
- [waterway = 'lock']::waterway,
- [lock = 'yes']::lock {
+ [feature = 'waterway_lock'],
+ [feature = 'lock_yes'] {
[zoom >= 15] {
point-file: url('symbols/lock_gate.png');
point-placement: interior;
}
}
- [man_made = 'mast'][zoom >= 17]::man_made {
+ [feature = 'man_made_mast'][zoom >= 17] {
point-file: url('symbols/communications.p.20.png');
point-placement: interior;
}
- [tourism = 'museum'][zoom >= 17]::tourism {
+ [feature = 'tourism_museum'][zoom >= 16] {
point-file: url('symbols/museum.p.16.png');
point-placement: interior;
}
- [amenity = 'parking'][zoom >= 15]::amenity {
+ [feature = 'amenity_parking'][zoom >= 16] {
marker-file: url('symbols/parking.svg');
marker-placement: interior;
marker-clip: false;
@@ -174,12 +174,12 @@
}
}
- [amenity = 'pharmacy'][zoom >= 17]::amenity {
+ [feature = 'amenity_pharmacy'][zoom >= 17] {
point-file: url('symbols/pharmacy.p.16.png');
point-placement: interior;
}
- [amenity = 'place_of_worship'][zoom >= 16]::amenity {
+ [feature = 'amenity_place_of_worship'][zoom >= 16] {
point-file: url('symbols/place_of_worship3.p.16.png');
point-placement: interior;
[religion = 'christian'] {
@@ -208,123 +208,123 @@
}
}
- [amenity = 'police'][zoom >= 17]::amenity {
+ [feature = 'amenity_police'][zoom >= 16] {
point-file: url('symbols/police.p.16.png');
point-placement: interior;
}
- [amenity = 'post_box'][zoom >= 17]::amenity {
+ [feature = 'amenity_post_box'][zoom >= 17] {
point-file: url('symbols/post_box.p.16.png');
point-placement: interior;
}
- [amenity = 'post_office'][zoom >= 17]::amenity {
+ [feature = 'amenity_post_office'][zoom >= 17] {
point-file: url('symbols/post_office.p.16.png');
point-placement: interior;
}
- [amenity = 'pub'][zoom >= 16]::amenity {
+ [feature = 'amenity_pub'][zoom >= 17] {
point-file: url('symbols/pub.p.16.png');
point-placement: interior;
}
- [amenity = 'biergarten'][zoom >= 16]::amenity {
+ [feature = 'amenity_biergarten'][zoom >= 17] {
point-file: url('symbols/biergarten.p.16.png');
point-placement: interior;
}
- [amenity = 'recycling'][zoom >= 16]::amenity {
+ [feature = 'amenity_recycling'][zoom >= 16] {
point-file: url('symbols/recycling.p.16.png');
point-placement: interior;
}
- [amenity = 'restaurant'][zoom >= 17]::amenity {
+ [feature = 'amenity_restaurant'][zoom >= 17] {
point-file: url('symbols/restaurant.p.16.png');
point-placement: interior;
}
- [amenity = 'fast_food'][zoom >= 17]::amenity {
+ [feature = 'amenity_fast_food'][zoom >= 17] {
point-file: url('symbols/fast_food.png');
point-placement: interior;
}
- [amenity = 'telephone'][zoom >= 17]::amenity {
+ [feature = 'amenity_telephone'][zoom >= 17] {
point-file: url('symbols/telephone.p.16.png');
point-placement: interior;
}
- [amenity = 'emergency_phone'][zoom >= 17]::amenity {
+ [feature = 'amenity_emergency_phone'][zoom >= 17] {
point-file: url('symbols/sosphone.png');
point-placement: interior;
}
- [amenity = 'theatre'][zoom >= 17]::amenity {
+ [feature = 'amenity_theatre'][zoom >= 16] {
point-file: url('symbols/theatre.p.20.png');
point-placement: interior;
}
- [amenity = 'toilets'][zoom >= 17]::amenity {
+ [feature = 'amenity_toilets'][zoom >= 17] {
point-file: url('symbols/toilets.p.20.png');
point-placement: interior;
}
- [amenity = 'drinking_water'][zoom >= 17]::amenity {
+ [feature = 'amenity_drinking_water'][zoom >= 17] {
point-file: url('symbols/food_drinkingtap.p.20.png');
point-placement: interior;
}
- [amenity = 'prison'][zoom >= 17]::amenity {
+ [feature = 'amenity_prison'][zoom >= 17] {
point-file: url('symbols/amenity_prison.p.20.png');
point-placement: interior;
}
- [tourism = 'viewpoint'][zoom >= 16]::tourism {
+ [feature = 'tourism_viewpoint'][zoom >= 16] {
point-file: url('symbols/view_point.p.16.png');
point-placement: interior;
}
- [man_made = 'water_tower'][zoom >= 17]::man_made {
+ [feature = 'man_made_water_tower'][zoom >= 17] {
point-file: url('symbols/tower_water.p.20.png');
point-placement: interior;
}
- [historic = 'memorial'][zoom >= 17]::historic {
+ [feature = 'historic_memorial'][zoom >= 17] {
point-file: url('symbols/tourist_memorial.p.20.png');
point-placement: interior;
}
- [historic = 'archaeological_site'][zoom >= 16]::historic {
+ [feature = 'historic_archaeological_site'][zoom >= 16] {
point-file: url('symbols/tourist_archaeological2.glow.24.png');
point-placement: interior;
}
- [shop != ''][zoom >= 17]::shop {
+ [feature = 'shop_other'][zoom >= 17] {
marker-file: url('symbols/shop.p.16.png');
marker-placement: interior;
marker-clip: false;
}
- [shop = 'supermarket'][zoom >= 16]::shop {
+ [feature = 'shop_supermarket'][zoom >= 16] {
marker-file: url('symbols/shop_supermarket.svg');
marker-placement: interior;
marker-clip: false;
marker-fill: @shop-icon;
}
- [shop = 'bakery'][zoom >= 17]::shop {
+ [feature = 'shop_bakery'][zoom >= 17] {
marker-file: url('symbols/shop_bakery.p.16.png');
marker-placement: interior;
marker-clip: false;
}
- [shop = 'butcher'][zoom >= 17]::shop {
+ [feature = 'shop_butcher'][zoom >= 17] {
marker-file: url('symbols/shop_butcher.png');
marker-placement: interior;
marker-clip: false;
}
- [shop = 'clothes']::shop,
- [shop = 'fashion']::shop {
+ [feature = 'shop_clothes'],
+ [feature = 'shop_fashion'] {
[zoom >= 17] {
marker-file: url('symbols/shop_clothes.svg');
marker-placement: interior;
@@ -333,71 +333,71 @@
}
}
- [shop = 'convenience'][zoom >= 17]::shop {
+ [feature = 'shop_convenience'][zoom >= 17] {
marker-file: url('symbols/shop_convenience.svg');
marker-placement: interior;
marker-clip: false;
marker-fill: @shop-icon;
}
- [shop = 'department_store'][zoom >= 16]::shop {
+ [feature = 'shop_department_store'][zoom >= 16] {
point-file: url('symbols/department_store.p.16.png');
point-placement: interior;
}
- [shop = 'doityourself'][zoom >= 17]::shop {
+ [feature = 'shop_doityourself'][zoom >= 17] {
marker-file: url('symbols/shop_diy.p.16.png');
marker-placement: interior;
marker-clip: false;
}
- [shop = 'florist'][zoom >= 17]::shop {
+ [feature = 'shop_florist'][zoom >= 17] {
marker-file: url('symbols/florist.p.16.png');
marker-placement: interior;
marker-clip: false;
}
- [shop = 'hairdresser'][zoom >= 17]::shop {
+ [feature = 'shop_hairdresser'][zoom >= 17] {
marker-file: url('symbols/shop_hairdresser.p.16.png');
marker-placement: interior;
marker-clip: false;
}
- [shop = 'car'][zoom >= 17]::shop {
+ [feature = 'shop_car'][zoom >= 17] {
marker-file: url('symbols/shop_car.svg');
marker-placement: interior;
marker-clip: false;
marker-fill: @shop-icon;
}
- [shop = 'car_repair'][zoom >= 17]::shop {
+ [feature = 'shop_car_repair'][zoom >= 17] {
marker-file: url('symbols/shopping_car_repair.p.16.png');
marker-placement: interior;
marker-clip: false;
}
- [shop = 'bicycle'][zoom >= 17]::shop {
+ [feature = 'shop_bicycle'][zoom >= 17] {
marker-file: url('symbols/shopping_bicycle.p.16.png');
marker-placement: interior;
marker-clip: false;
}
- [leisure = 'playground'][zoom >= 17]::leisure {
+ [feature = 'leisure_playground'][zoom >= 17] {
point-file: url('symbols/playground.p.20.png');
point-placement: interior;
}
- [tourism = 'picnic_site'][zoom >= 16]::tourism {
+ [feature = 'tourism_picnic_site'][zoom >= 16] {
point-file: url('symbols/picnic.p.16.png');
point-placement: interior;
}
- [leisure = 'picnic_table'][zoom >= 17]::leisure {
+ [feature = 'leisure_picnic_table'][zoom >= 17] {
point-file: url('symbols/picnic.p.16.png');
point-placement: interior;
}
- [leisure = 'slipway'][zoom >= 17]::leisure {
+ [feature = 'leisure_slipway'][zoom >= 17] {
point-file: url('symbols/transport_slipway.p.20.png');
point-placement: interior;
}
@@ -405,7 +405,7 @@
.text {
- [place = 'island'][zoom >= 12]::place {
+ [feature = 'place_island'][zoom >= 12] {
text-name: "[name]";
text-fill: #000;
text-size: 9;
@@ -414,11 +414,11 @@
text-placement: interior;
}
- [amenity = 'pub']::amenity,
- [amenity = 'restaurant']::amenity,
- [amenity = 'cafe']::amenity,
- [amenity = 'fast_food']::amenity,
- [amenity = 'biergarten']::amenity {
+ [feature = 'amenity_pub'],
+ [feature = 'amenity_restaurant'],
+ [feature = 'amenity_cafe'],
+ [feature = 'amenity_fast_food'],
+ [feature = 'amenity_biergarten'] {
[zoom >= 17] {
text-name: "[name]";
text-fill: #734a08;
@@ -431,7 +431,7 @@
}
}
- [amenity = 'bar'][zoom >= 17]::amenity {
+ [feature = 'amenity_bar'][zoom >= 17] {
text-name: "[name]";
text-size: 10;
text-fill: #734a08;
@@ -441,9 +441,9 @@
text-placement: interior;
}
- [amenity = 'library']::amenity,
- [amenity = 'theatre']::amenity,
- [amenity = 'courthouse']::amenity {
+ [feature = 'amenity_library'],
+ [feature = 'amenity_theatre'],
+ [feature = 'amenity_courthouse'] {
[zoom >= 17] {
text-name: "[name]";
text-size: 10;
@@ -455,7 +455,7 @@
}
}
- [amenity = 'cinema'][zoom >= 17]::amenity {
+ [feature = 'amenity_cinema'][zoom >= 17] {
text-name: "[name]";
text-size: 10;
text-fill: #734a08;
@@ -465,7 +465,7 @@
text-placement: interior;
}
- [amenity = 'parking'][zoom >= 17]::amenity {
+ [feature = 'amenity_parking'][zoom >= 17] {
text-name: "[name]";
text-size: 9;
text-fill: @transportation-text;
@@ -479,7 +479,7 @@
}
}
- [amenity = 'police'][zoom >= 17]::amenity {
+ [feature = 'amenity_police'][zoom >= 17] {
text-name: "[name]";
text-size: 10;
text-fill: #734a08;
@@ -490,7 +490,7 @@
text-placement: interior;
}
- [amenity = 'fire_station'][zoom >= 17]::amenity {
+ [feature = 'amenity_fire_station'][zoom >= 17] {
text-name: "[name]";
text-size: 10;
text-fill: #734a08;
@@ -501,7 +501,7 @@
text-placement: interior;
}
- [amenity = 'place_of_worship'][zoom >= 17]::amenity {
+ [feature = 'amenity_place_of_worship'][zoom >= 17] {
text-name: "[name]";
text-size: 10;
text-fill: #000033;
@@ -512,7 +512,7 @@
text-placement: interior;
}
- [natural = 'wood'][zoom >= 15]::natural {
+ [feature = 'natural_wood'][zoom >= 15] {
text-name: "[name]";
text-size: 10;
text-fill: darken(@wood, 50%);
@@ -522,8 +522,8 @@
text-placement: interior;
}
- [natural = 'peak']::natural,
- [natural = 'volcano']::natural {
+ [feature = 'natural_peak'],
+ [feature = 'natural_volcano'] {
[zoom >= 13] {
text-name: "[name]";
text-size: 10;
@@ -545,7 +545,7 @@
}
}
- [natural = 'cave_entrance'][zoom >= 15]::natural {
+ [feature = 'natural_cave_entrance'][zoom >= 15] {
text-name: "[name]";
text-size: 10;
text-fill: brown;
@@ -556,7 +556,7 @@
text-placement: interior;
}
- [historic = 'memorial'][zoom >= 17]::historic {
+ [feature = 'historic_memorial'][zoom >= 17] {
text-name: "[name]";
text-size: 9;
text-fill: brown;
@@ -567,7 +567,7 @@
text-placement: interior;
}
- [historic = 'archaeological_site'][zoom >= 17]::historic {
+ [feature = 'historic_archaeological_site'][zoom >= 17] {
text-name: "[name]";
text-size: 9;
text-fill: brown;
@@ -578,11 +578,18 @@
text-placement: interior;
}
- [natural = 'water']::natural,
- [natural = 'lake']::natural,
- [landuse = 'reservoir']::landuse,
- [landuse = 'basin']::landuse {
- [zoom >= 15] {
+ [feature = 'natural_water'],
+ [feature = 'natural_lake'],
+ [feature = 'landuse_reservoir'],
+ [feature = 'landuse_basin'] {
+ [way_area >= 40000000][zoom >= 10],
+ [way_area >= 10000000][zoom >= 11],
+ [way_area >= 2400000][zoom >= 12],
+ [way_area >= 600000][zoom >= 13],
+ [way_area >= 150000][zoom >= 14],
+ [way_area >= 80000][zoom >= 15],
+ [way_area >= 20000][zoom >= 16],
+ [zoom >= 17] {
text-name: "[name]";
text-size: 12;
text-fill: @water-text;
@@ -593,7 +600,7 @@
}
}
- [leisure = 'swimming_pool']::leisure {
+ [feature = 'leisure_swimming_pool'] {
[zoom >= 17] {
text-name: "[name]";
text-size: 9;
@@ -605,10 +612,10 @@
}
}
- [leisure = 'sports_centre']::leisure,
- [leisure = 'stadium']::leisure,
- [leisure = 'track']::leisure,
- [leisure = 'pitch']::leisure {
+ [feature = 'leisure_sports_centre'],
+ [feature = 'leisure_stadium'],
+ [feature = 'leisure_track'],
+ [feature = 'leisure_pitch'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -620,16 +627,16 @@
}
}
- [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 {
+ [feature = 'leisure_playground'],
+ [feature = 'leisure_park'],
+ [feature = 'leisure_recreation_ground'],
+ [feature = 'landuse_recreation_ground'],
+ [feature = 'landuse_conservation'],
+ [feature = 'landuse_village_green'],
+ [feature = 'leisure_common'],
+ [feature = 'leisure_garden'],
+ [feature = 'leisure_golf_course'],
+ [feature = 'leisure_nature_reserve'] {
[way_area >= 150000][zoom >= 14],
[way_area >= 80000][zoom >= 15],
[way_area >= 20000][zoom >= 16],
@@ -645,7 +652,7 @@
}
}
- [landuse = 'quarry']::landuse {
+ [feature = 'landuse_quarry'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -653,11 +660,12 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'vineyard']::landuse,
- [landuse = 'orchard']::landuse {
+ [feature = 'landuse_vineyard'],
+ [feature = 'landuse_orchard'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -666,11 +674,12 @@
// extra halo needed to overpower the cemetery polygon pattern
text-halo-radius: 1.5;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'cemetery']::landuse,
- [landuse = 'grave_yard']::landuse {
+ [feature = 'landuse_cemetery'],
+ [feature = 'landuse_grave_yard'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -679,10 +688,11 @@
// extra halo needed to overpower the cemetery polygon pattern
text-halo-radius: 1.5;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'residential']::landuse {
+ [feature = 'landuse_residential'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -690,10 +700,11 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'garages']::landuse {
+ [feature = 'landuse_garages'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -701,10 +712,11 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'field']::landuse {
+ [feature = 'landuse_field'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -712,11 +724,12 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'meadow']::landuse,
- [landuse = 'grass']::landuse {
+ [feature = 'landuse_meadow'],
+ [feature = 'landuse_grass'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -724,10 +737,11 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'allotments']::landuse {
+ [feature = 'landuse_allotments'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -735,10 +749,11 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'forest']::landuse {
+ [feature = 'landuse_forest'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -746,12 +761,13 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'farm']::landuse,
- [landuse = 'farmland']::landuse,
- [landuse = 'farmyard']::landuse {
+ [feature = 'landuse_farm'],
+ [feature = 'landuse_farmland'],
+ [feature = 'landuse_farmyard'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -759,10 +775,11 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'retail']::landuse {
+ [feature = 'landuse_retail'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -770,11 +787,12 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'industrial']::landuse,
- [landuse = 'railway']::landuse {
+ [feature = 'landuse_industrial'],
+ [feature = 'landuse_railway'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -782,10 +800,11 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'commercial']::landuse {
+ [feature = 'landuse_commercial'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -793,12 +812,13 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [landuse = 'brownfield']::landuse,
- [landuse = 'landfill']::landuse,
- [landuse = 'construction']::landuse {
+ [feature = 'landuse_brownfield'],
+ [feature = 'landuse_landfill'],
+ [feature = 'landuse_construction'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -806,10 +826,11 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 10;
+ text-placement: interior;
}
}
- [natural = 'bay'][zoom >= 14]::natural {
+ [feature = 'natural_bay'][zoom >= 14] {
text-name: "[name]";
text-size: 10;
text-fill: #6699cc;
@@ -819,7 +840,7 @@
text-placement: interior;
}
- [natural = 'spring'][zoom >= 16]::natural {
+ [feature = 'natural_spring'][zoom >= 16] {
text-name: "[name]";
text-size: 10;
text-fill: #6699cc;
@@ -830,7 +851,7 @@
text-dy: 6;
}
- [tourism = 'alpine_hut'][zoom >= 15]::tourism {
+ [feature = 'tourism_alpine_hut'][zoom >= 15] {
text-name: "[name]";
text-size: 9;
text-fill: #6699cc;
@@ -849,7 +870,7 @@
}
}
- [amenity = 'shelter'][zoom >= 17]::amenity {
+ [feature = 'amenity_shelter'][zoom >= 17] {
text-name: "[name]";
text-size: 9;
text-fill: #6699cc;
@@ -866,7 +887,7 @@
ele/text-placement: interior;
}
- [amenity = 'bank'][zoom >= 17]::amenity {
+ [feature = 'amenity_bank'][zoom >= 17] {
text-name: "[name]";
text-size: 9;
text-fill: black;
@@ -876,10 +897,10 @@
text-face-name: @book-fonts;
}
- [tourism = 'hotel']::tourism,
- [tourism = 'motel']::tourism,
- [tourism = 'hostel']::tourism,
- [tourism = 'chalet']::tourism {
+ [feature = 'tourism_hotel'],
+ [feature = 'tourism_motel'],
+ [feature = 'tourism_hostel'],
+ [feature = 'tourism_chalet'] {
[zoom >= 17] {
text-name: "[name]";
text-size: 10;
@@ -891,7 +912,7 @@
}
}
- [amenity = 'embassy'][zoom >= 17]::amenity {
+ [feature = 'amenity_embassy'][zoom >= 17] {
text-name: "[name]";
text-size: 9;
text-fill: #0066ff;
@@ -901,7 +922,7 @@
text-placement: interior;
}
- [tourism = 'guest_house'][zoom >= 17]::tourism {
+ [feature = 'tourism_guest_house'][zoom >= 17] {
text-name: "[name]";
text-size: 8;
text-fill: #0066ff;
@@ -911,7 +932,7 @@
text-placement: interior;
}
- [tourism = 'bed_and_breakfast'][zoom >= 17]::tourism {
+ [feature = 'tourism_bed_and_breakfast'][zoom >= 17] {
text-name: "[name]";
text-size: 8;
text-fill: #0066ff;
@@ -921,8 +942,8 @@
text-placement: interior;
}
- [amenity = 'fuel']::amenity,
- [amenity = 'bus_station']::amenity {
+ [feature = 'amenity_fuel'],
+ [feature = 'amenity_bus_station'] {
[zoom >= 17] {
text-name: "[name]";
text-size: 9;
@@ -930,10 +951,11 @@
text-dy: 9;
text-face-name: @book-fonts;
text-halo-radius: 1;
+ text-placement: interior;
}
}
- [tourism = 'camp_site'][zoom >= 17]::tourism {
+ [feature = 'tourism_camp_site'][zoom >= 17] {
text-name: "[name]";
text-size: 10;
text-fill: #0066ff;
@@ -941,9 +963,10 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 70;
+ text-placement: interior;
}
- [tourism = 'caravan_site'][zoom >= 17]::tourism {
+ [feature = 'tourism_caravan_site'][zoom >= 17] {
text-name: "[name]";
text-size: 10;
text-fill: #0066ff;
@@ -951,9 +974,10 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 70;
+ text-placement: interior;
}
- [waterway = 'lock'][zoom >= 15]::waterway {
+ [feature = 'waterway_lock'][zoom >= 15] {
text-name: "[name]";
text-size: 9;
text-dy: 10;
@@ -961,9 +985,10 @@
text-face-name: @book-fonts;
text-halo-radius: 1;
text-wrap-width: 70;
+ text-placement: interior;
}
- [leisure = 'marina'][zoom >= 15]::leisure {
+ [feature = 'leisure_marina'][zoom >= 15] {
text-name: "[name]";
text-size: 8;
text-fill: @marina-text;
@@ -976,7 +1001,7 @@
}
}
- [tourism = 'theme_park'][zoom >= 14]::tourism {
+ [feature = 'tourism_theme_park'][zoom >= 14] {
text-name: "[name]";
text-size: 8;
text-fill: #734a08;
@@ -989,7 +1014,7 @@
}
}
- [tourism = 'museum'][zoom >= 17]::tourism {
+ [feature = 'tourism_museum'][zoom >= 17] {
text-name: "[name]";
text-size: 10;
text-dy: 10;
@@ -999,7 +1024,7 @@
text-placement: interior;
}
- [amenity = 'prison'][zoom >= 17]::amenity {
+ [feature = 'amenity_prison'][zoom >= 17] {
text-name: "[name]";
text-size: 10;
text-fill: #734a08;
@@ -1009,7 +1034,7 @@
text-placement: interior;
}
- [tourism = 'attraction'][zoom >= 16]::tourism {
+ [feature = 'tourism_attraction'][zoom >= 16] {
text-name: "[name]";
text-size: 10;
text-fill: #660033;
@@ -1019,7 +1044,7 @@
text-placement: interior;
}
- [amenity = 'university'][zoom >= 15]::amenity {
+ [feature = 'amenity_university'][zoom >= 15] {
text-name: "[name]";
text-size: 9;
text-fill: #000033;
@@ -1029,8 +1054,8 @@
text-placement: interior;
}
- [amenity = 'school']::amenity,
- [amenity = 'college']::amenity {
+ [feature = 'amenity_school'],
+ [feature = 'amenity_college'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -1042,7 +1067,7 @@
}
}
- [amenity = 'kindergarten'][zoom >= 16]::amenity {
+ [feature = 'amenity_kindergarten'][zoom >= 16] {
text-name: "[name]";
text-size: 8;
text-fill: #000033;
@@ -1052,7 +1077,7 @@
text-placement: interior;
}
- [man_made = 'lighthouse'][zoom >= 15]::man_made {
+ [feature = 'man_made_lighthouse'][zoom >= 15] {
text-name: "[name]";
text-size: 9;
text-fill: #000033;
@@ -1063,7 +1088,7 @@
text-placement: interior;
}
- [man_made = 'windmill'][zoom >= 17]::man_made {
+ [feature = 'man_made_windmill'][zoom >= 17] {
text-name: "[name]";
text-size: 9;
text-fill: #734a08;
@@ -1074,7 +1099,7 @@
text-placement: interior;
}
- [amenity = 'hospital'][zoom >= 16]::amenity {
+ [feature = 'amenity_hospital'][zoom >= 16] {
text-name: "[name]";
text-fill: #da0092;
text-size: 8;
@@ -1085,7 +1110,7 @@
text-placement: interior;
}
- [amenity = 'pharmacy'][zoom >= 17]::amenity {
+ [feature = 'amenity_pharmacy'][zoom >= 17] {
text-name: "[name]";
text-size: 8;
text-dy: 10;
@@ -1097,10 +1122,10 @@
}
/* Default shop text style */
- [shop != ''][zoom >= 17]::shop {
+ [feature = 'shop_other'][zoom >= 17] {
text-name: [name];
text-size: 9;
- text-dy: 9;
+ text-dy: 10;
text-fill: #939;
text-face-name: @book-fonts;
text-halo-radius: 1;
@@ -1108,17 +1133,17 @@
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 {
+ [feature = 'shop_bakery'],
+ [feature = 'shop_clothes'],
+ [feature = 'shop_fashion'],
+ [feature = 'shop_convenience'],
+ [feature = 'shop_doityourself'],
+ [feature = 'shop_hairdresser'],
+ [feature = 'shop_butcher'],
+ [feature = 'shop_car'],
+ [feature = 'shop_car_repair'],
+ [feature = 'shop_bicycle'],
+ [feature = 'shop_florist'] {
[zoom >= 17] {
text-name: "[name]";
text-size: 8;
@@ -1131,8 +1156,8 @@
}
}
- [shop = 'supermarket']::shop,
- [shop = 'department_store']::shop {
+ [feature = 'shop_supermarket'],
+ [feature = 'shop_department_store'] {
[zoom >= 16] {
text-name: "[name]";
text-size: 9;
@@ -1145,7 +1170,7 @@
}
}
- [military = 'danger_area'][zoom >= 12]::military {
+ [feature = 'military_danger_area'][zoom >= 12] {
text-name: "[name]";
text-size: 9;
text-fill: @military-text;
@@ -1155,7 +1180,7 @@
text-placement: interior;
}
- [landuse = 'military']::landuse {
+ [feature = 'landuse_military'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 9;
@@ -1167,7 +1192,7 @@
}
}
- [aeroway = 'gate'][zoom >= 17]::aeroway {
+ [feature = 'aeroway_gate'][zoom >= 17] {
text-name: "[ref]";
text-size: 10;
text-fill: #aa66cc;
diff --git a/landcover.mss b/landcover.mss
index 7557397584..06a4594b8a 100644
--- a/landcover.mss
+++ b/landcover.mss
@@ -4,7 +4,7 @@
@grass: #cfeca8; // also meadow, common, garden, village_green, conservation
@golf_course: #b5e3b5;
@natural: #c6e4b4; // also grassland
-@park: #b6fdb6; // also recreation_ground
+@park: #cdf7c9; // also recreation_ground
@wood: #aed1a0;
@vineyard: #abdf96;
@@ -34,18 +34,18 @@
// --- Other ----
-@aerodrome: #ccc;
+@aerodrome: #e9e7e2;
@allotments: #e5c7ab;
@apron: #e9d1ff;
@attraction: #f2caea;
@barracks: #ff8f8f;
-@campsite: #ccff99; // also caravan_site, picnic_site
+@campsite: #def6c0; // also caravan_site, picnic_site
@cemetery: #aacbaf; // also grave_yard
-@construction: #9d9d6c;
+@construction: #b6b592;
@danger_area: pink;
@desert: #e3b57a;
-@field: #660;
-@garages: #996;
+@field: @farmland;
+@garages: #dfddce;
@heath: #d6d99f;
@parking: #f7efb7;
@playground: #ccfff1;
@@ -70,9 +70,8 @@
[feature = 'tourism_camp_site'],
[feature = 'tourism_caravan_site'],
[feature = 'tourism_picnic_site'] {
- [zoom >= 13] {
+ [zoom >= 10] {
polygon-fill: @campsite;
- polygon-opacity: 0.5;
line-color: saturate(darken(@campsite, 60%), 30%);
line-width: 0.3;
}
@@ -82,7 +81,7 @@
polygon-fill: @attraction;
}
- [feature = 'landuse_quarry'][zoom >= 11] {
+ [feature = 'landuse_quarry'][zoom >= 10] {
polygon-pattern-file: url('symbols/quarry2.png');
line-width: 0.5;
line-color: grey;
@@ -102,7 +101,6 @@
}
[feature = 'landuse_cemetery'],
- [feature = 'landuse_grave_yard'],
[feature = 'amenity_grave_yard'] {
[zoom >= 10][zoom < 14] {
polygon-fill: @cemetery;
@@ -126,9 +124,8 @@
}
}
- [feature = 'landuse_garages'][zoom >= 12] {
+ [feature = 'landuse_garages'][zoom >= 13] {
polygon-fill: @garages;
- polygon-opacity: 0.2;
}
[feature = 'military_barracks'][zoom >= 10] {
@@ -138,7 +135,6 @@
[feature = 'landuse_field'] {
[zoom >= 10] {
polygon-fill: @field;
- polygon-opacity: 0.2;
[zoom >= 14] {
line-width: 0.3;
line-opacity: 0.4;
@@ -168,7 +164,6 @@
[feature = 'leisure_recreation_ground'] {
[zoom >= 10] {
polygon-fill: @park;
- polygon-opacity: 0.6;
}
}
@@ -194,6 +189,7 @@
}
[zoom >= 14] {
polygon-pattern-file: url('symbols/allotments.png');
+ polygon-pattern-alignment: global;
}
}
@@ -206,7 +202,7 @@
}
}
- [feature = 'landuse_farmyard'][zoom >= 9] {
+ [feature = 'landuse_farmyard'][zoom >= 10] {
polygon-fill: @farmyard;
[zoom >= 16] {
line-width: 0.5;
@@ -219,7 +215,7 @@
[feature = 'landuse_farm'],
[feature = 'landuse_farmland'] {
- [zoom >= 9] {
+ [zoom >= 10] {
polygon-fill: @farmland;
[zoom >= 16] {
line-width: .5;
@@ -235,7 +231,7 @@
}
}
- [feature = 'landuse_village_green'][zoom >= 11] {
+ [feature = 'landuse_village_green'][zoom >= 10] {
polygon-fill: @grass;
}
@@ -297,7 +293,6 @@
[feature = 'landuse_construction'] {
[zoom >= 10] {
polygon-fill: @construction;
- polygon-opacity: 0.7;
}
}
@@ -307,7 +302,7 @@
}
}
- [feature = 'natural_desert'][zoom >= 8] {
+ [feature = 'natural_desert'][zoom >= 10] {
polygon-fill: @desert;
}
@@ -354,24 +349,23 @@
}
}
- [feature = 'aeroway_apron'][zoom >= 12] {
+ [feature = 'aeroway_apron'][zoom >= 10] {
polygon-fill: @apron;
}
- [feature = 'aeroway_aerodrome'][zoom >= 12] {
+ [feature = 'aeroway_aerodrome'][zoom >= 10] {
polygon-fill: @aerodrome;
- polygon-opacity: 0.2;
line-width: 0.2;
line-color: saturate(darken(@aerodrome, 40%), 20%);
}
- [feature = 'natural_beach'][zoom >= 13] {
+ [feature = 'natural_beach'][zoom >= 10] {
polygon-pattern-file: url('symbols/beach.png');
}
[feature = 'highway_services'],
[feature = 'highway_rest_area'] {
- [zoom >= 14] {
+ [zoom >= 10] {
polygon-fill: @rest_area;
}
}
diff --git a/preview.png b/preview.png
new file mode 100644
index 0000000000..b21499766e
Binary files /dev/null and b/preview.png differ
diff --git a/project.mml b/project.mml
index 82f61b05f3..b36ac72ef5 100644
--- a/project.mml
+++ b/project.mml
@@ -1,1757 +1,1762 @@
{
- "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"
- ],
+ "interactivity": false,
"Layer": [
{
- "geometry": "polygon",
- "extent": [
- -179.99999692067183,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way, name, religion,\ncoalesce (aeroway, amenity, landuse, leisure, military, \"natural\", power, tourism, highway) as feature from (\nselect way, COALESCE(name,'') AS name, \n('aeroway_' || (case when aeroway in ('apron', 'aerodrome') then aeroway else null end)) as aeroway,\n('amenity_' || (case when amenity in ('parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard') then amenity else null end)) as amenity,\n('landuse_' || (case when landuse in ('quarry', 'vineyard', 'orchard', 'cemetery', 'grave_yard', 'residential', 'garages', 'field', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'recreation_ground', 'conservation', 'village_green', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction') then landuse else null end)) as landuse,\n('leisure_' || (case when leisure in ('swimming_pool', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'golf_course', 'picnic_table','sports_centre','stadium','pitch','track') then leisure else null end)) as leisure,\n('military_' || (case when military in ('barracks', 'danger_area') then military else null end)) as military,\n('natural_' || (case when \"natural\" in ('beach','desert','heath','mud','grassland','wood','sand','scrub') then \"natural\" else null end)) as \"natural\",\n('power_' || (case when power in ('station','sub_station','substation','generator') then power else null end)) as power,\n('tourism_' || (case when tourism in ('attraction', 'camp_site', 'caravan_site', 'picnic_site', 'zoo') then tourism else null end)) as tourism,\n('highway_' || (case when highway in ('services', 'rest_area') then highway else null end)) as highway,\ncase when religion in ('christian','jewish') then religion else 'INT-generic'::text end as religion\n from planet_osm_polygon\n where landuse is not null\n or leisure is not null\n or aeroway in ('apron','aerodrome')\n or amenity in ('parking','university','college','school','hospital','kindergarten','grave_yard')\n or military in ('barracks','danger_area')\n or \"natural\" in ('beach','desert','heath','mud','grassland','wood','sand','scrub')\n or power in ('station','sub_station','substation','generator')\n or tourism in ('attraction','camp_site','caravan_site','picnic_site','zoo')\n or highway in ('services','rest_area')\n order by z_order,way_area desc\n ) as landcover\n) as features",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way\nfrom planet_osm_line\nwhere man_made='cutline'\n) as landcover_line",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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": "linestring",
- "extent": [
- -179.99999692067183,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": " (select way,waterway,case when tunnel in ('yes','culvert') then 'yes' else 'no' end as int_tunnel \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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": " (select way,waterway\n from planet_osm_line\n where waterway='river'\n ) as water_lines_low_zoom",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": " (select way,waterway,lock,name,case when tunnel in ('yes','culvert') then 'yes' else 'no' end as int_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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,name from planet_osm_line where waterway='dam') as dam",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way from planet_osm_polygon where leisure ='marina') as marinas_area",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,man_made from planet_osm_polygon where man_made in ('pier','breakwater','groyne')) as piers_area",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,man_made from planet_osm_line where man_made in ('pier','breakwater','groyne')) as piers",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,waterway from planet_osm_point where waterway='lock_gate') as locks",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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": "polygon",
- "extent": [
- -179.99999692067183,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": " (select way,aeroway,\n case\n when building in ('garage','roof','garages','service','shed','shelter','cabin','storage_tank','tank','support','glasshouse','greenhouse','mobile_home','kiosk','silo','canopy','tent') 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'))\n or aeroway = 'terminal'\n order by z_order,way_area desc) as buildings",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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', 'construction', 'miniature', 'turntable') then railway else null end)), ('aeroway_' || aeroway)) as feature, horse, foot, bicycle, tracktype, case when access in ('destination') then 'destination'::text when access in ('no', 'private') then 'no'::text else null end as access, construction, case when service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as service, case when oneway in ('yes', '-1') and 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') then oneway else null end as oneway, case when layer is null then '0' else layer end as layernotnull from planet_osm_line where (highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'road', 'unclassified', 'service', 'pedestrian', 'living_street', 'raceway', 'bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'platform', 'proposed', 'construction') or aeroway in ('runway','taxiway') or railway in ('light_rail', 'subway', 'narrow_gauge', 'rail', 'spur', 'siding', 'preserved', 'funicular', 'tram', 'monorail', 'platform', 'miniature', 'turntable', 'disused', 'construction')) and (tunnel='yes' or tunnel='building_passage' or covered='yes') order by layernotnull, z_order) as tunnels",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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",
+ "name": "world",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "type": "shape",
+ "file": "data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "world",
+ "advanced": {}
+ },
+ {
+ "name": "coast-poly",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "type": "shape",
+ "file": "data/land-polygons-split-3857/land_polygons.shp"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "coast-poly",
+ "advanced": {}
+ },
+ {
+ "name": "builtup",
+ "srs-name": "mercator",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +datum=WGS84 +over",
+ "Datasource": {
+ "type": "shape",
+ "file": "data/world_boundaries/builtup_area.shp"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "builtup",
+ "advanced": {}
+ },
+ {
+ "name": "necountries",
+ "srs-name": "WGS84",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs",
+ "Datasource": {
+ "type": "shape",
+ "file": "data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "necountries",
+ "advanced": {}
+ },
+ {
+ "name": "landcover",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, name, religion,\n COALESCE(aeroway, amenity, landuse, leisure, military, \"natural\", power, tourism, highway) AS feature \n FROM (SELECT \n way, COALESCE(name,'') AS name, \n ('aeroway_' || (CASE WHEN aeroway IN ('apron', 'aerodrome') THEN aeroway ELSE NULL END)) AS aeroway,\n ('amenity_' || (CASE WHEN amenity IN ('parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard') THEN amenity ELSE NULL END)) AS amenity,\n ('landuse_' || (CASE WHEN landuse IN ('quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'field', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'recreation_ground', 'conservation', 'village_green', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction') THEN landuse ELSE NULL END)) AS landuse,\n ('leisure_' || (CASE WHEN leisure IN ('swimming_pool', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'golf_course', 'picnic_table','sports_centre','stadium','pitch','track') THEN leisure ELSE NULL END)) AS leisure,\n ('military_' || (CASE WHEN military IN ('barracks', 'danger_area') THEN military ELSE NULL END)) AS military,\n ('natural_' || (CASE WHEN \"natural\" IN ('beach','desert','heath','mud','grassland','wood','sand','scrub') THEN \"natural\" ELSE NULL END)) AS \"natural\",\n ('power_' || (CASE WHEN power IN ('station','sub_station','substation','generator') THEN power ELSE NULL END)) AS power,\n ('tourism_' || (CASE WHEN tourism IN ('attraction', 'camp_site', 'caravan_site', 'picnic_site', 'zoo') THEN tourism ELSE NULL END)) AS tourism,\n ('highway_' || (CASE WHEN highway IN ('services', 'rest_area') THEN highway ELSE NULL END)) AS highway,\n CASE WHEN religion IN ('christian','jewish') THEN religion ELSE 'INT-generic'::text end AS religion\n FROM planet_osm_polygon\n WHERE landuse IS NOT NULL\n OR leisure IS NOT NULL\n OR aeroway IN ('apron','aerodrome')\n OR amenity IN ('parking','university','college','school','hospital','kindergarten','grave_yard')\n OR military IN ('barracks','danger_area')\n OR \"natural\" IN ('beach','desert','heath','mud','grassland','wood','sand','scrub')\n OR power IN ('station','sub_station','substation','generator')\n OR tourism IN ('attraction','camp_site','caravan_site','picnic_site','zoo')\n OR highway IN ('services','rest_area')\n ORDER BY z_order, way_area DESC\n ) AS landcover\n) AS features",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "landcover",
+ "advanced": {}
+ },
+ {
+ "name": "landcover-line",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way\n FROM planet_osm_line\n WHERE man_made = 'cutline'\n) AS landcover_line",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "landcover-line",
+ "advanced": {}
+ },
+ {
+ "name": "water-lines-casing",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, waterway,\n CASE WHEN tunnel IN ('yes', 'culvert') THEN 'yes' ELSE 'no' END AS int_tunnel \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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "water-lines-casing",
+ "advanced": {}
+ },
+ {
+ "name": "water-lines-low-zoom",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way, waterway\n FROM planet_osm_line\n WHERE waterway = 'river'\n) AS water_lines_low_zoom",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "water-lines-low-zoom",
+ "advanced": {}
+ },
+ {
+ "name": "water-areas",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, \"natural\", waterway, landuse, name, way_area/(!pixel_width!*!pixel_height!) AS way_pixels\n FROM planet_osm_polygon\n WHERE\n (waterway IN ('dock', 'riverbank', 'canal')\n OR landuse IN ('reservoir', 'basin')\n OR \"natural\" IN ('lake', 'water', 'land', 'glacier', 'mud'))\n AND building IS NULL\n AND way_area/(!pixel_width!*!pixel_height!) > 0.01\n ORDER BY z_order, way_area\n) AS water_areas",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "water-areas",
+ "advanced": {}
+ },
+ {
+ "name": "water-areas-overlay",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, \"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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "water-areas-overlay",
+ "advanced": {}
+ },
+ {
+ "name": "water-lines",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "water-lines",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, waterway, lock, name,\n CASE WHEN tunnel IN ('yes','culvert') THEN 'yes' ELSE 'no' END AS int_tunnel, \n 'no' as bridge\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','aqueduct'))\n ORDER BY z_order\n) AS water_lines",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "water-lines",
+ "advanced": {}
+ },
+ {
+ "name": "dam",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way, name \n FROM planet_osm_line \n WHERE waterway = 'dam'\n) AS dam",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "dam",
+ "advanced": {}
+ },
+ {
+ "name": "marinas-area",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way \n FROM planet_osm_polygon \n WHERE leisure = 'marina'\n) AS marinas_area",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "marinas-area",
+ "advanced": {}
+ },
+ {
+ "name": "piers-area",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, man_made \n FROM planet_osm_polygon \n WHERE man_made IN ('pier', 'breakwater', 'groyne')\n) AS piers_area",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "piers-area",
+ "advanced": {}
+ },
+ {
+ "name": "piers",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, man_made \n FROM planet_osm_line \n WHERE man_made IN ('pier', 'breakwater', 'groyne')\n) AS piers",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "piers",
+ "advanced": {}
+ },
+ {
+ "name": "locks",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, waterway \n FROM planet_osm_point \n WHERE waterway = 'lock_gate'\n) AS locks",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "locks",
+ "advanced": {}
+ },
+ {
+ "name": "buildings-lz",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT\n way, 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\n) AS buildings_lz",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "buildings-lz",
+ "advanced": {}
+ },
+ {
+ "name": "buildings",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way,aeroway,\n CASE\n WHEN building IN ('garage','roof','garages','service','shed','shelter','cabin','storage_tank','tank','support','glasshouse','greenhouse','mobile_home','kiosk','silo','canopy','tent') 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'))\n OR aeroway = 'terminal'\n ORDER BY z_order, way_area DESC\n) AS buildings",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "buildings",
+ "advanced": {}
+ },
+ {
+ "name": "tunnels",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "tunnels-fill tunnels-casing access directions",
+ "id": "tunnels",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT * \n FROM (\n (SELECT \n way, prio, \n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) ELSE highway END)) AS feature, \n horse, foot, bicycle, tracktype, \n CASE WHEN access IN ('destination') THEN 'destination'::text \n WHEN access IN ('no', 'private') THEN 'no'::text \n ELSE NULL \n END AS access, \n construction, \n CASE WHEN service IN ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text \n ELSE 'INT-normal'::text \n END AS service, \n CASE WHEN oneway in ('yes', '-1') AND 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') THEN oneway \n ELSE NULL \n END AS oneway,\n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' \n ELSE 'no' END AS link, \n CASE WHEN layer IS NULL THEN '0' \n ELSE layer \n END AS layernotnull \n FROM planet_osm_line \n JOIN (VALUES \n ('highway_motorway', 380), \n ('highway_trunk', 370), \n ('highway_primary', 360), \n ('highway_secondary', 350), \n ('highway_tertiary', 340), \n ('highway_residential', 330), \n ('highway_unclassified', 330), \n ('highway_road', 330), \n ('highway_living_street', 320), \n ('highway_pedestrian', 310), \n ('highway_raceway', 300), \n ('highway_motorway_link', 240), \n ('highway_trunk_link', 230), \n ('highway_primary_link', 220), \n ('highway_secondary_link', 210), \n ('highway_tertiary_link', 200),\n ('highway_service', 150), \n ('highway_track', 110), \n ('highway_path', 100), \n ('highway_footway', 100), \n ('highway_bridleway', 100), \n ('highway_cycleway', 100),\n ('highway_steps', 100), \n ('highway_platform', 90), \n ('highway_proposed', 20), \n ('highway_construction', 10)\n ) AS ordertable (feature, prio) \n ON ('highway_' || planet_osm_line.highway) = ordertable.feature \n WHERE (tunnel='yes' OR tunnel = 'building_passage' OR covered='yes')) \n UNION ALL\n (SELECT \n way, prio, \n COALESCE(('railway_' || (CASE WHEN railway='preserved' AND service in ('spur','siding','yard') THEN 'INT-preserved-ssy'::text WHEN (railway='rail' AND service in ('spur','siding','yard')) THEN 'INT-spur-siding-yard' else railway END)),\n ('aeroway_' || aeroway)) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access in ('destination') THEN 'destination'::text \n WHEN access in ('no', 'private') THEN 'no'::text \n ELSE NULL END as access,\n construction,\n CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text END as service, \n null AS oneway, \n 'no' AS link,\n CASE WHEN layer IS NULL THEN '0' ELSE layer END AS layernotnull \n FROM planet_osm_line \n JOIN (VALUES \n ('railway_rail', 430), \n ('railway_spur', 430), \n ('railway_siding', 430), \n ('railway_subway', 420), \n ('railway_narrow_gauge', 420), \n ('railway_light_rail', 420), \n ('railway_preserved', 420), \n ('railway_funicular', 420), \n ('railway_monorail', 420), \n ('railway_miniature', 420), \n ('railway_turntable', 420), \n ('railway_tram', 410), \n ('railway_disused', 400), \n ('railway_construction', 400), \n ('aeroway_runway', 60), \n ('aeroway_taxiway', 50), \n ('railway_platform', 90)\n ) AS ordertable (feature, prio) \n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE (tunnel='yes' or tunnel='building_passage' or covered='yes'))\n ) AS features \n ORDER BY layernotnull, prio\n) AS tunnels",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
"properties": {
"group-by": "layernotnull"
- }
- },
- {
- "geometry": "linestring",
- "extent": [
- -179.99999692067183,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way from planet_osm_line where \"historic\"='citywalls') as citywalls",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way from planet_osm_line where \"historic\"='castle_walls') as castlewalls",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way from planet_osm_polygon where \"historic\"='castle_walls') as castlewalls_poly",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,landuse,leisure\n from planet_osm_polygon\n where (landuse = 'military') and building is null\n ) as landuse_overlay",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way, barrier from planet_osm_line where barrier is not null) as line_barriers",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,\"natural\",man_made from planet_osm_line where \"natural\" = 'cliff' or man_made = 'embankment') as cliffs",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,barrier from planet_osm_polygon where barrier is not null) as area_barriers",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,\"natural\" from planet_osm_line where \"natural\" = 'tree_row') as tree_row",
- "extent": "-20037508,-19929239,20037508,19929239",
- "key_field": "",
- "geometry_field": "way",
- "dbname": "gis"
- },
- "id": "tree-row",
- "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": "tree-row"
- },
- {
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select distinct on (p.way) p.way as way,l.highway as int_tc_type,case when l.service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as int_tc_service\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' or p.highway='turning_loop' \n order by p.way,v.prio\n ) as turning_circle_casing",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,coalesce(('highway_' || (case when highway in ('residential','unclassified','pedestrian','service','footway','cycleway','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_area desc) as highway_area_casing",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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', 'construction', 'miniature', 'turntable') then railway else null end)), ('aeroway_' || aeroway)) as feature, horse, foot, bicycle, tracktype, case when access in ('destination') then 'destination'::text when access in ('no', 'private') then 'no'::text else null end as access, construction, case when service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as service, case when oneway in ('yes', '-1') and 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') then oneway else null end as oneway, case when layer is null then '0' else layer end as layernotnull from planet_osm_line where (highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'road', 'unclassified', 'service', 'pedestrian', 'living_street', 'raceway', 'bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'platform', 'proposed', 'construction') or aeroway in ('runway','taxiway') or railway in ('light_rail', 'subway', 'narrow_gauge', 'rail', 'spur', 'siding', 'preserved', 'funicular', 'tram', 'monorail', 'platform', 'miniature', 'turntable', 'disused', 'construction')) and (tunnel is null or not tunnel in ('yes','building_passage')) and (covered is null or not covered='yes') and (bridge is null or not bridge in ('yes','true','1','viaduct')) order by z_order) as roads",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,coalesce(('highway_' || (case when highway in ('residential','unclassified','pedestrian','service','footway','cycleway','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','pedestrian','service','footway','living_street','track','path','platform','services')\n or railway in ('platform')\n or aeroway in ('runway','taxiway','helipad')\n order by z_order,way_area desc) as highway_area_fill",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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": "linestring",
- "extent": [
- -179.99999692067183,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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', 'construction', 'miniature', 'turntable') then railway else null end)), ('aeroway_' || aeroway)) as feature, horse, foot, bicycle, tracktype, case when access in ('destination') then 'destination'::text when access in ('no', 'private') then 'no'::text else null end as access, construction, case when service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as service, case when oneway in ('yes', '-1') and 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') then oneway else null end as oneway, case when layer is null then '0' else layer end as layernotnull from planet_osm_line where (highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'road', 'unclassified', 'service', 'pedestrian', 'living_street', 'raceway', 'bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'platform', 'proposed', 'construction') or aeroway in ('runway','taxiway') or railway in ('light_rail', 'subway', 'narrow_gauge', 'rail', 'spur', 'siding', 'preserved', 'funicular', 'tram', 'monorail', 'platform', 'miniature', 'turntable', 'disused', 'construction')) and (tunnel is null or not tunnel in ('yes','building_passage')) and (covered is null or not covered='yes') and (bridge is null or not bridge in ('yes','true','1','viaduct')) order by z_order) as roads_fill",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": " (select distinct on (p.way) p.way as way,l.highway as int_tc_type,case when l.service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as int_tc_service\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' or p.highway='turning_loop' \n order by p.way,v.prio\n ) as turning_circle_fill",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,aerialway from planet_osm_line where aerialway is not null) as aerialways",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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 null or service not in ('spur','siding','yard')))\n order by z_order\n ) as roads_low_zoom",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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', 'construction', 'miniature', 'turntable') then railway else null end)), ('aeroway_' || aeroway)) as feature, horse, foot, bicycle, tracktype, case when access in ('destination') then 'destination'::text when access in ('no', 'private') then 'no'::text else null end as access, construction, case when service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as service, case when oneway in ('yes', '-1') and 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') then oneway else null end as oneway, case when layer is null then '0' else layer end as layernotnull from planet_osm_line where (highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'road', 'unclassified', 'service', 'pedestrian', 'living_street', 'raceway', 'bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'platform', 'proposed', 'construction') or aeroway in ('runway','taxiway') or railway in ('light_rail', 'subway', 'narrow_gauge', 'rail', 'spur', 'siding', 'preserved', 'funicular', 'tram', 'monorail', 'platform', 'miniature', 'turntable', 'disused', 'construction')) and bridge in ('yes','true','1','viaduct') and (layer is null or (layer in ('0','1','2','3','4','5'))) order by layernotnull, z_order) as bridges",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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",
+ },
+ "advanced": {}
+ },
+ {
+ "name": "citywalls",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way \n FROM planet_osm_line \n WHERE historic = 'citywalls')\nAS citywalls",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "citywalls",
+ "advanced": {}
+ },
+ {
+ "name": "castlewalls",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "castlewalls",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT\n way \n FROM planet_osm_line \n WHERE historic = 'castle_walls'\n) AS castlewalls",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "castlewalls",
+ "advanced": {}
+ },
+ {
+ "name": "castlewalls-poly",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "castlewalls",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way \n FROM planet_osm_polygon \n WHERE historic = 'castle_walls'\n) AS castlewalls_poly",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "castlewalls-poly",
+ "advanced": {}
+ },
+ {
+ "name": "landuse-overlay",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, landuse, leisure\n FROM planet_osm_polygon\n WHERE (landuse = 'military') AND building IS NULL\n) AS landuse_overlay",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "landuse-overlay",
+ "advanced": {}
+ },
+ {
+ "name": "line-barriers",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "barriers",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way, barrier \n FROM planet_osm_line \n WHERE barrier IS NOT NULL\n) AS line_barriers",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "line-barriers",
+ "advanced": {}
+ },
+ {
+ "name": "cliffs",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way,\"natural\",man_made\n FROM planet_osm_line \n WHERE \"natural\" = 'cliff' OR man_made = 'embankment'\n) AS cliffs",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "cliffs",
+ "advanced": {}
+ },
+ {
+ "name": "area-barriers",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "barriers",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT\n way,barrier \n FROM planet_osm_polygon \n WHERE barrier IS NOT NULL\n) AS area_barriers",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "area-barriers",
+ "advanced": {}
+ },
+ {
+ "name": "tree-row",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way,\"natural\" \n FROM planet_osm_line \n WHERE \"natural\" = 'tree_row'\n) AS tree_row",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "tree-row",
+ "advanced": {}
+ },
+ {
+ "name": "ferry-routes",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way \n FROM planet_osm_line \n WHERE route = 'ferry' \n) AS ferry_routes",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "ferry-routes",
+ "advanced": {}
+ },
+ {
+ "name": "turning-circle-casing",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT DISTINCT ON (p.way) \n p.way AS way, l.highway AS int_tc_type,\n CASE WHEN l.service IN ('parking_aisle','drive-through','driveway') \n THEN 'INT-minor'::text \n ELSE 'INT-normal'::text \n END AS int_tc_service\n FROM planet_osm_point p\n JOIN planet_osm_line l ON ST_DWithin(p.way,l.way,0.1) -- Assumes Mercator\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 OR p.highway = 'turning_loop' \n ORDER BY p.way, v.prio\n) AS turning_circle_casing",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "turning-circle-casing",
+ "advanced": {}
+ },
+ {
+ "name": "highway-area-casing",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way,\n COALESCE((\n 'highway_' || (CASE WHEN highway IN ('residential','unclassified','pedestrian','service','footway','cycleway','track','path','platform') THEN highway ELSE NULL END)), \n ('railway_' || (CASE WHEN railway IN ('platform') THEN railway ELSE NULL END))\n ) AS feature \n 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_area DESC\n) AS highway_area_casing",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "highway-area-casing",
+ "advanced": {}
+ },
+ {
+ "name": "roads-casing",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "id": "roads-casing",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT\n * \n FROM \n (\n (SELECT \n way, prio, \n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) ELSE highway END)) AS feature, \n horse, foot, bicycle, tracktype, \n CASE WHEN access IN ('destination') THEN 'destination'::text when access IN ('no', 'private') THEN 'no'::text ELSE NULL END as access, construction, \n CASE WHEN service IN ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text end as service, \n CASE WHEN oneway IN ('yes', '-1') \n AND 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') THEN oneway \n ELSE NULL \n END as oneway, \n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' ELSE 'no' end as link, \n CASE WHEN layer IS NULL THEN '0' ELSE layer END AS layernotnull \n FROM planet_osm_line \n JOIN (VALUES\n ('highway_motorway',380), \n ('highway_trunk',370), \n ('highway_primary',360), \n ('highway_secondary',350), \n ('highway_tertiary',340), \n ('highway_residential',330), \n ('highway_unclassified',330), \n ('highway_road',330), \n ('highway_living_street',320), \n ('highway_pedestrian',310), \n ('highway_raceway',300), \n ('highway_motorway_link',240), \n ('highway_trunk_link',230), \n ('highway_primary_link',220), \n ('highway_secondary_link',210), \n ('highway_tertiary_link',200), \n ('highway_service',150), \n ('highway_track',110), \n ('highway_path',100), \n ('highway_footway',100), \n ('highway_bridleway',100), \n ('highway_cycleway',100), \n ('highway_steps',100), \n ('highway_platform',90), \n ('highway_proposed',20), \n ('highway_construction',10)\n ) AS ordertable (feature, prio) \n ON ('highway_' || planet_osm_line.highway) = ordertable.feature \n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage')) \n AND (covered IS NULL OR NOT covered='yes') \n AND (bridge IS NULL OR NOT bridge IN ('yes', 'viaduct'))) \n UNION ALL \n (SELECT \n way, prio, \n COALESCE(('railway_' ||(CASE WHEN railway='preserved' AND service in ('spur','siding','yard') THEN 'INT-preserved-ssy'::text when (railway='rail' AND service in ('spur','siding','yard')) THEN 'INT-spur-siding-yard' else railway end)), ('aeroway_' || aeroway)) AS feature, \n horse, foot, bicycle, tracktype, \n CASE WHEN access in ('destination') THEN 'destination'::text when access in ('no', 'private') THEN 'no'::text ELSE NULL END as access, \n construction, CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text end as service, \n null as oneway, 'no' as link, \n CASE WHEN layer IS NULL THEN '0' else layer end as layernotnull \n FROM planet_osm_line \n JOIN (VALUES \n ('railway_rail', 430),\n ('railway_spur', 430),\n ('railway_siding', 430),\n ('railway_subway', 420),\n ('railway_narrow_gauge', 420),\n ('railway_light_rail', 420),\n ('railway_preserved', 420),\n ('railway_funicular', 420),\n ('railway_monorail', 420),\n ('railway_miniature', 420),\n ('railway_turntable', 420),\n ('railway_tram', 410),\n ('railway_disused', 400),\n ('railway_construction', 400),\n ('aeroway_runway', 60),\n ('aeroway_taxiway', 50),\n ('railway_platform', 90)\n ) AS ordertable (feature, prio) \n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature\n WHERE (tunnel IS NULL or not tunnel in ('yes','building_passage'))\n AND (covered IS NULL or not covered='yes') \n AND (bridge IS NULL or not bridge in ('yes','viaduct'))\n )\n ) AS features \n ORDER BY prio\n) AS roads_casing",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "class": "roads-casing",
+ "advanced": {}
+ },
+ {
+ "name": "highway-area-fill",
+ "srs-name": "900913",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n way,\n COALESCE(\n ('highway_' || (CASE WHEN highway in ('residential','unclassified','pedestrian','service','footway','cycleway','living_street','track','path','platform','services') THEN highway ELSE NULL END)), \n ('railway_' || (CASE WHEN railway in ('platform') THEN railway ELSE NULL END)),\n (('aeroway_' || CASE WHEN aeroway in ('runway','taxiway','helipad') THEN aeroway ELSE NULL END))\n ) AS feature \n FROM planet_osm_polygon\n WHERE highway in ('residential', 'unclassified', 'pedestrian', 'service', 'footway', 'living_street', 'track', 'path', 'platform', 'services')\n OR railway IN ('platform')\n OR aeroway IN ('runway', 'taxiway', 'helipad')\n ORDER BY z_order, way_area desc\n) AS highway_area_fill",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "highway-area-fill",
+ "advanced": {}
+ },
+ {
+ "name": "roads-fill",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "roads-fill access directions",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n * \n FROM \n (\n (SELECT \n way, prio, \n ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) else highway end)) AS feature, \n horse, foot, bicycle, tracktype, \n CASE WHEN access in ('destination') THEN 'destination'::text \n WHEN access in ('no', 'private') THEN 'no'::text \n ELSE NULL \n END AS access,\n construction, \n CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text end as service, \n CASE WHEN oneway in ('yes', '-1') AND 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') THEN oneway ELSE NULL END as oneway, \n CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' else 'no' end as link, CASE WHEN layer IS NULL THEN '0' else layer end as layernotnull \n FROM planet_osm_line \n JOIN (VALUES \n ('highway_motorway',380), \n ('highway_trunk',370), \n ('highway_primary',360), \n ('highway_secondary',350), \n ('highway_tertiary',340), \n ('highway_residential',330),\n ('highway_unclassified',330),\n ('highway_road',330),\n ('highway_living_street',320),\n ('highway_pedestrian',310),\n ('highway_raceway',300),\n ('highway_motorway_link',240),\n ('highway_trunk_link',230),\n ('highway_primary_link',220),\n ('highway_secondary_link',210),\n ('highway_tertiary_link',200),\n ('highway_service',150),\n ('highway_track',110),\n ('highway_path',100),\n ('highway_footway',100),\n ('highway_bridleway',100),\n ('highway_cycleway',100),\n ('highway_steps',100),\n ('highway_platform',90),\n ('highway_proposed',20),\n ('highway_construction',10)\n ) AS ordertable (feature, prio) \n on ('highway_' || planet_osm_line.highway) = ordertable.feature \n WHERE (tunnel IS NULL or not tunnel in ('yes','building_passage')) \n AND (covered IS NULL or not covered='yes') \n AND (bridge IS NULL or not bridge in ('yes','viaduct'))) \n union all \n (SELECT \n way, prio, \n COALESCE(\n ('railway_' || (CASE WHEN railway='preserved' AND service IN ('spur','siding','yard') THEN 'INT-preserved-ssy'::text WHEN (railway='rail' AND service in ('spur','siding','yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),\n ('aeroway_' || aeroway)\n ) AS feature,\n horse, foot, bicycle, tracktype,\n CASE WHEN access in ('destination') THEN 'destination'::text \n WHEN access IN ('no', 'private') THEN 'no'::text \n ELSE NULL \n END as access,\n construction,\n CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text \n ELSE 'INT-normal'::text \n END as service,\n NULL as oneway, \n 'no' as link,\n CASE WHEN layer IS NULL THEN '0' ELSE layer END AS layernotnull \n FROM planet_osm_line \n JOIN (VALUES\n ('railway_rail',430),\n ('railway_spur',430),\n ('railway_siding',430),\n ('railway_subway',420),\n ('railway_narrow_gauge',420),\n ('railway_light_rail',420),\n ('railway_preserved',420),\n ('railway_funicular',420),\n ('railway_monorail',420), \n ('railway_miniature',420),\n ('railway_turntable',420),\n ('railway_tram',410),\n ('railway_disused',400),\n ('railway_construction',400),\n ('aeroway_runway',60),\n ('aeroway_taxiway',50),\n ('railway_platform',90)) AS ordertable (feature, prio) \n ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature \n WHERE (tunnel IS NULL OR NOT tunnel IN ('yes','building_passage')) \n AND (covered IS NULL OR NOT covered='yes') \n AND (bridge IS NULL OR NOT bridge IN ('yes','viaduct'))\n )\n ) AS features ORDER BY prio\n) AS roads_fill",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "roads-fill",
+ "advanced": {}
+ },
+ {
+ "name": "turning-circle-fill",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT \n DISTINCT on (p.way) \n p.way as way, l.highway as int_tc_type,\n CASE WHEN l.service IN ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text \n ELSE 'INT-normal'::text end AS int_tc_service\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' or p.highway='turning_loop' \n ORDER BY p.way,v.prio\n) AS turning_circle_fill",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "turning-circle-fill",
+ "advanced": {}
+ },
+ {
+ "name": "aerialways",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,aerialway FROM planet_osm_line WHERE aerialway IS NOT NULL) AS aerialways",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "aerialways",
+ "advanced": {}
+ },
+ {
+ "name": "roads-low-zoom",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way,coalesce(('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) else highway 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 NULL or service not in ('spur','siding','yard')))\n ORDER BY z_order\n ) AS roads_low_zoom",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "roads-low-zoom",
+ "advanced": {}
+ },
+ {
+ "name": "waterway-bridges",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "water-lines",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,waterway,name,CASE WHEN tunnel in ('yes','culvert') THEN 'yes' else 'no' end as int_tunnel, 'yes' as bridge FROM planet_osm_line WHERE waterway in ('river','canal','derelict_canal','stream','drain','ditch','wadi') AND bridge in ('yes','aqueduct') ORDER BY z_order) AS waterway_bridges",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "waterway-bridges",
+ "advanced": {}
+ },
+ {
+ "name": "bridges",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "bridges-fill bridges-casing access directions",
+ "id": "bridges",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT * FROM ((SELECT way, prio, ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) else highway end)) AS feature, horse, foot, bicycle, tracktype, CASE WHEN access in ('destination') THEN 'destination'::text when access in ('no', 'private') THEN 'no'::text ELSE NULL END as access, construction, CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text end as service, CASE WHEN oneway in ('yes', '-1') AND 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') THEN oneway ELSE NULL END as oneway, CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' else 'no' end as link, CASE WHEN layer IS NULL THEN '0' else layer end as layernotnull FROM planet_osm_line JOIN ( values ('highway_motorway',380), ('highway_trunk',370), ('highway_primary',360), ('highway_secondary',350), ('highway_tertiary',340), ('highway_residential',330), ('highway_unclassified',330), ('highway_road',330), ('highway_living_street',320), ('highway_pedestrian',310), ('highway_raceway',300), ('highway_motorway_link',240), ('highway_trunk_link',230), ('highway_primary_link',220), ('highway_secondary_link',210), ('highway_tertiary_link',200), ('highway_service',150), ('highway_track',110), ('highway_path',100), ('highway_footway',100), ('highway_bridleway',100), ('highway_cycleway',100), ('highway_steps',100), ('highway_platform',90), ('highway_proposed',20), ('highway_construction',10)) AS ordertable (feature, prio) on ('highway_' || planet_osm_line.highway) = ordertable.feature WHERE bridge in ('yes','viaduct')) union all (SELECT way, prio, coalesce(('railway_' ||(CASE WHEN railway='preserved' AND service in ('spur','siding','yard') THEN 'INT-preserved-ssy'::text when (railway='rail' AND service in ('spur','siding','yard')) THEN 'INT-spur-siding-yard' else railway end)), ('aeroway_' || aeroway)) AS feature, horse, foot, bicycle, tracktype, CASE WHEN access in ('destination') THEN 'destination'::text when access in ('no', 'private') THEN 'no'::text ELSE NULL END as access, construction, CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text end as service, null as oneway, 'no' as link, CASE WHEN layer IS NULL THEN '0' else layer end as layernotnull FROM planet_osm_line JOIN ( values ('railway_rail',430), ('railway_spur',430), ('railway_siding',430), ('railway_subway',420), ('railway_narrow_gauge',420), ('railway_light_rail',420), ('railway_preserved',420), ('railway_funicular',420), ('railway_monorail',420), ('railway_miniature',420), ('railway_turntable',420), ('railway_tram',410), ('railway_disused',400), ('railway_construction',400), ('aeroway_runway',60), ('aeroway_taxiway',50), ('railway_platform',90)) AS ordertable (feature, prio) on coalesce(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature WHERE bridge in ('yes','viaduct'))) AS features ORDER BY layernotnull,prio) AS bridges",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
"properties": {
"group-by": "layernotnull"
- }
- },
- {
- "geometry": "linestring",
- "extent": [
- -179.99999692067183,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way from planet_osm_line where \"power\"='minor_line') as power_minorline",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way from planet_osm_line where \"power\"='line') as power_line",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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",
+ },
+ "advanced": {}
+ },
+ {
+ "name": "guideways",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way FROM planet_osm_line WHERE highway='bus_guideway' AND (tunnel IS NULL or tunnel != 'yes')) AS guideways",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "guideways",
+ "advanced": {}
+ },
+ {
+ "name": "admin-01234",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "id": "admin-01234",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "class": "",
+ "advanced": {}
+ },
+ {
+ "name": "admin-5678",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,admin_level\n FROM planet_osm_roads\n WHERE \"boundary\"='administrative'\n AND admin_level in ('5','6','7','8')\n ) AS admin_5678",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "admin-5678",
+ "advanced": {}
+ },
+ {
+ "name": "admin-other",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,admin_level\n FROM planet_osm_roads\n WHERE \"boundary\"='administrative'\n AND admin_level in ('9', '10')\n ) AS admin_other",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "admin-other",
+ "advanced": {}
+ },
+ {
+ "name": "power-minorline",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way FROM planet_osm_line WHERE \"power\"='minor_line') AS power_minorline",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "power-minorline",
+ "advanced": {}
+ },
+ {
+ "name": "power-line",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way FROM planet_osm_line WHERE \"power\"='line') AS power_line",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "power-line",
+ "advanced": {}
+ },
+ {
+ "name": "nepopulated",
+ "srs-name": "WGS84",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs",
+ "Datasource": {
+ "type": "shape",
+ "file": "data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp",
"encoding": "windows-1252"
- },
- "srs-name": "WGS84",
- "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs",
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "nepopulated",
"advanced": {
"encoding": "windows-1252"
- },
- "name": "nepopulated"
- },
- {
- "geometry": "point",
- "extent": [
- -179.99999692067183,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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_crossing'\n ) as amenity_symbols",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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 ) as amenity_symbols_poly",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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 shop in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')\n or amenity is not null\n or tourism in ('alpine_hut','picnic_site','camp_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_tower')\n or historic in ('memorial','archaeological_site')\n or waterway='lock'\n or lock='yes'\n or leisure in ('playground','slipway','picnic_table')\n ) as amenity_points",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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 in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')\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')\n or historic in ('memorial','archaeological_site')\n or leisure in ('playground', 'picnic_table')\n ) as amenity_points_poly",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way from planet_osm_point where power='tower') as power_towers",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way from planet_osm_point where power='pole') as power_poles",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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 11\n ) as roads_text_ref_low_zoom",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": " (select way,ref,name\n from planet_osm_point\n where highway='motorway_junction'\n ) as highway_junctions",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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 11\n ) as roads_text_ref",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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','proposed') \n and name is not null\n ) as roads_text_name",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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 ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')\n or leisure is not null\n or landuse is not null\n or tourism is not null\n or \"natural\" is not null\n or man_made in ('lighthouse','windmill')\n or place='island'\n or military='danger_area'\n or aeroway='gate'\n or waterway='lock'\n or historic in ('memorial','archaeological_site')\n ) as text",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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 ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')\n or leisure is not null\n or landuse is not null\n or tourism is not null\n or \"natural\" is not null\n or man_made in ('lighthouse','windmill')\n or place='island'\n or military='danger_area'\n or historic in ('memorial','archaeological_site')\n ) as text_poly",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way from planet_osm_line where \"addr:interpolation\" is not null) as interpolation",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": " (select way,waterway,lock,name,case when tunnel in ('yes','culvert') then 'yes' else 'no' end as int_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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "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,-20037508,20037508,20037508",
- "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,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,way_area,name,boundary from planet_osm_polygon where (boundary='national_park' or leisure='nature_reserve') and building is null) as national_park_boundaries",
- "extent": "-20037508,-20037508,20037508,20037508",
- "key_field": "",
- "geometry_field": "way",
- "dbname": "gis"
- },
- "id": "nature-reserve-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": "nature-reserve-boundaries"
- },
- {
- "geometry": "polygon",
- "extent": [
- -179.99999692067183,
- -85.05112877980659,
- 179.99999692067183,
- 85.05112877980659
- ],
- "Datasource": {
- "type": "postgis",
- "table": "(select way,name,tourism from planet_osm_polygon where tourism='theme_park') as theme_park",
- "extent": "-20037508,-20037508,20037508,20037508",
- "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"
+ }
+ },
+ {
+ "name": "placenames-large",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "country state",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,place,name,ref\n FROM planet_osm_point\n WHERE place in ('country','state')\n ) AS placenames_large",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "placenames-large",
+ "advanced": {}
+ },
+ {
+ "name": "placenames-capital",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,place,name,ref\n FROM planet_osm_point\n WHERE place in ('city','town') AND capital='yes'\n ) AS placenames_capital",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "placenames-capital",
+ "advanced": {}
+ },
+ {
+ "name": "placenames-medium",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "placenames-medium",
+ "advanced": {}
+ },
+ {
+ "name": "placenames-small",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,place,name\n FROM planet_osm_point\n WHERE place in ('suburb','village','hamlet','neighbourhood','locality','isolated_dwelling','farm')\n ) AS placenames_small",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "placenames-small",
+ "advanced": {}
+ },
+ {
+ "name": "stations",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "stations",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way,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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "stations",
+ "advanced": {}
+ },
+ {
+ "name": "stations-poly",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "stations",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way,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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "stations-poly",
+ "advanced": {}
+ },
+ {
+ "name": "glaciers-text",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way,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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "glaciers-text",
+ "advanced": {}
+ },
+ {
+ "name": "amenity-symbols",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "symbols",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT *\n 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_crossing'\n ) AS amenity_symbols",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "amenity-symbols",
+ "advanced": {}
+ },
+ {
+ "name": "amenity-symbols-poly",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "symbols",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT *\n 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 ) AS amenity_symbols_poly",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "amenity-symbols-poly",
+ "advanced": {}
+ },
+ {
+ "name": "amenity-points-poly",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "points",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,coalesce('aeroway_' || aeroway, 'shop_' || CASE WHEN shop in ('supermarket', 'bakery', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle') THEN shop when not shop IS NULL THEN 'other' ELSE NULL END, 'amenity_' || amenity, 'leisure_' || leisure, 'landuse_' || landuse, 'man_made_' || man_made, 'natural_' || \"natural\", 'place_' || place, 'tourism_' || tourism, 'military_' || military, 'waterway_' || waterway, 'historic_' || historic, 'lock_' || lock, 'highway_' || highway) AS feature,access,religion\n FROM planet_osm_polygon\n WHERE amenity IS NOT NULL\n or shop in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')\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')\n or historic in ('memorial','archaeological_site')\n or leisure in ('playground', 'picnic_table')\n ORDER BY way_area desc ) AS amenity_points_poly",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "amenity-points-poly",
+ "advanced": {}
+ },
+ {
+ "name": "amenity-points",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "points",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,coalesce('aeroway_' || aeroway, 'shop_' || CASE WHEN shop in ('supermarket', 'bakery', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle') THEN shop when not shop IS NULL THEN 'other' ELSE NULL END, 'amenity_' || amenity, 'leisure_' || leisure, 'landuse_' || landuse, 'man_made_' || man_made, 'natural_' || \"natural\", 'place_' || place, 'tourism_' || tourism, 'military_' || military, 'waterway_' || waterway, 'historic_' || historic, 'lock_' || lock, 'highway_' || highway) AS feature,access,religion\n FROM planet_osm_point\n WHERE shop in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')\n or amenity IS NOT NULL\n or tourism in ('alpine_hut','picnic_site','camp_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_tower')\n or historic in ('memorial','archaeological_site')\n or waterway='lock'\n or lock='yes'\n or leisure in ('playground','slipway','picnic_table')\n ) AS amenity_points",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "amenity-points",
+ "advanced": {}
+ },
+ {
+ "name": "power-towers",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way FROM planet_osm_point WHERE power='tower') AS power_towers",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "power-towers",
+ "advanced": {}
+ },
+ {
+ "name": "power-poles",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way FROM planet_osm_point WHERE power='pole') AS power_poles",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "power-poles",
+ "advanced": {}
+ },
+ {
+ "name": "roads-text-ref-low-zoom",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way, highway, height, width, refs FROM\n (SELECT \n way, highway, \n array_length(refs,1) AS height, \n (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width, \n array_to_string(refs,E'\\n') AS refs\n FROM (\n SELECT \n way, \n highway, \n string_to_array(ref,';') AS refs\n FROM planet_osm_roads\n WHERE highway IN ('motorway','trunk','primary','secondary')\n AND ref IS NOT NULL\n ) AS p) AS q\n WHERE height <= 4 AND width <= 11) AS roads_text_ref_low_zoom",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "roads-text-ref-low-zoom",
+ "advanced": {}
+ },
+ {
+ "name": "junctions",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way,highway,junction,ref,name\n FROM planet_osm_point\n WHERE highway='motorway_junction' or highway = 'traffic_signals' or junction = 'yes'\n ) AS junctions",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "junctions",
+ "advanced": {}
+ },
+ {
+ "name": "roads-text-ref",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way, highway, height, width, refs FROM\n (SELECT \n way, highway, \n array_length(refs,1) AS height, \n (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width, \n array_to_string(refs,E'\\n') AS refs\n FROM (\n SELECT \n way, \n COALESCE(highway, aeroway) AS highway, \n string_to_array(ref,';') AS refs\n FROM planet_osm_line\n WHERE (highway IN ('motorway','trunk','primary','secondary','tertiary','unclassified','residential') OR aeroway IN ('runway','taxiway'))\n AND ref IS NOT NULL\n ) AS p) AS q\n WHERE height <= 4 AND width <= 11) AS roads_text_ref",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "roads-text-ref",
+ "advanced": {}
+ },
+ {
+ "name": "roads-area-text-name",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way, way_area/(!pixel_width!*!pixel_height!) AS way_pixels, highway, name\n FROM planet_osm_polygon\n WHERE highway in ('residential','unclassified','pedestrian','service','footway','cycleway','living_street','track','path','platform') or railway in ('platform') AND name IS NOT NULL\n ) AS roads_area_text_name",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "roads-area-text-name",
+ "advanced": {}
+ },
+ {
+ "name": "roads-text-name",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way, CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) else highway end, 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','proposed') \n AND name IS NOT NULL\n ) AS roads_text_name",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "roads-text-name",
+ "advanced": {}
+ },
+ {
+ "name": "paths-text-name",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way, highway, 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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "paths-text-name",
+ "advanced": {}
+ },
+ {
+ "name": "text-poly",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "text",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,coalesce('aeroway_' || aeroway, 'shop_' || CASE WHEN shop in ('supermarket', 'bakery', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle') THEN shop when not shop IS NULL THEN 'other' ELSE NULL END, 'amenity_' || amenity, 'leisure_' || leisure, 'landuse_' || landuse, 'man_made_' || man_made, 'natural_' || \"natural\", 'place_' || place, 'tourism_' || tourism, 'military_' || military, 'waterway_' || waterway, 'historic_' || historic, 'highway_' || highway) AS feature,access,NULL as ele,name,ref,way_area\n FROM planet_osm_polygon\n WHERE amenity IS NOT NULL\n or shop in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')\n or leisure IS NOT NULL\n or landuse IS NOT NULL\n or tourism IS NOT NULL\n or \"natural\" IS NOT NULL\n or man_made in ('lighthouse','windmill')\n or place='island'\n or military='danger_area'\n or historic in ('memorial','archaeological_site')\n ORDER BY way_area desc ) AS text_poly",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "text-poly",
+ "advanced": {}
+ },
+ {
+ "name": "text",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "text",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way,coalesce('aeroway_' || aeroway, 'shop_' || CASE WHEN shop in ('supermarket', 'bakery', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle') THEN shop when not shop IS NULL THEN 'other' ELSE NULL END, 'amenity_' || amenity, 'leisure_' || leisure, 'landuse_' || landuse, 'man_made_' || man_made, 'natural_' || \"natural\", 'place_' || place, 'tourism_' || tourism, 'military_' || military, 'waterway_' || waterway, 'historic_' || historic, 'highway_' || highway) AS feature,access,ele,name,ref,NULL as way_area\n FROM planet_osm_point\n WHERE amenity IS NOT NULL\n or shop in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')\n or leisure IS NOT NULL\n or landuse IS NOT NULL\n or tourism IS NOT NULL\n or \"natural\" IS NOT NULL\n or man_made in ('lighthouse','windmill')\n or place='island'\n or military='danger_area'\n or aeroway='gate'\n or waterway='lock'\n or historic in ('memorial','archaeological_site')\n ) AS text",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "text",
+ "advanced": {}
+ },
+ {
+ "name": "building-text",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT name, way, way_area FROM planet_osm_polygon WHERE building IS NOT NULL AND building not in ('no','station','supermarket')) AS building_text",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "building-text",
+ "advanced": {}
+ },
+ {
+ "name": "interpolation",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way FROM planet_osm_line WHERE \"addr:interpolation\" IS NOT NULL) AS interpolation",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "interpolation",
+ "advanced": {}
+ },
+ {
+ "name": "housenumbers",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way,\"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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "housenumbers",
+ "advanced": {}
+ },
+ {
+ "name": "housenames",
+ "srs-name": "900913",
+ "geometry": "point",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,\"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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "housenames",
+ "advanced": {}
+ },
+ {
+ "name": "water-lines-text",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": " (SELECT way,waterway,lock,name,CASE WHEN tunnel in ('yes','culvert') THEN 'yes' else 'no' end as int_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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "water-lines-text",
+ "advanced": {}
+ },
+ {
+ "name": "admin-text",
+ "srs-name": "900913",
+ "geometry": "linestring",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way, 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",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "admin-text",
+ "advanced": {}
+ },
+ {
+ "name": "nature-reserve-boundaries",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,way_area,name,boundary FROM planet_osm_polygon WHERE (boundary='national_park' or leisure='nature_reserve') AND building IS NULL) AS national_park_boundaries",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "nature-reserve-boundaries",
+ "advanced": {}
+ },
+ {
+ "name": "theme-park",
+ "srs-name": "900913",
+ "geometry": "polygon",
+ "class": "",
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+ "Datasource": {
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "table": "(SELECT way,name,tourism FROM planet_osm_polygon WHERE tourism='theme_park') AS theme_park",
+ "geometry_field": "way",
+ "type": "postgis",
+ "key_field": "",
+ "dbname": "gis"
+ },
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "id": "theme-park",
+ "advanced": {}
+ }
+ ],
+ "scale": 1,
+ "center": [
+ 0,
+ 0,
+ 4
+ ],
+ "format": "png",
+ "_parts": {
+ "extents": {
+ "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",
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "srs-name": "900913"
+ },
+ "osm2pgsql": {
+ "geometry_field": "way",
+ "type": "postgis",
+ "dbname": "gis",
+ "extent": "-20037508,-20037508,20037508,20037508",
+ "key_field": ""
+ },
+ "extents84": {
+ "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs",
+ "extent": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "srs-name": "WGS84"
}
- ],
- "scale": 1,
- "metatile": 2,
- "name": "OpenStreetMap Carto",
+ },
+ "metatile": 2,
+ "bounds": [
+ -180,
+ -85.05112877980659,
+ 180,
+ 85.05112877980659
+ ],
+ "name": "OpenStreetMap Carto",
+ "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"
+ ],
+ "minzoom": 0,
+ "maxzoom": 22,
"description": "A faithful reimplementation of the standard OpenStreetMap style"
-}
+}
\ No newline at end of file
diff --git a/project.yaml b/project.yaml
new file mode 100644
index 0000000000..95eea93868
--- /dev/null
+++ b/project.yaml
@@ -0,0 +1,1424 @@
+scale: 1
+metatile: 2
+name: "OpenStreetMap Carto"
+description: "A faithful reimplementation of the standard OpenStreetMap style"
+bounds: &world
+ - -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"
+
+# Various parts to be included later on
+_parts:
+ # Extents are used for tilemill, and don't actually make it to the generated XML
+ extents: &extents
+ extent: *world
+ 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"
+ extents84: &extents84
+ extent: *world
+ srs-name: "WGS84"
+ srs: "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"
+ osm2pgsql: &osm2pgsql
+ type: "postgis"
+ dbname: "gis"
+ key_field: ""
+ geometry_field: "way"
+ extent: "-20037508,-20037508,20037508,20037508"
+
+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:
+ - id: "world"
+ name: "world"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ file: "data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp"
+ type: "shape"
+ advanced: {}
+ - id: "coast-poly"
+ name: "coast-poly"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ file: "data/land-polygons-split-3857/land_polygons.shp"
+ type: "shape"
+ advanced: {}
+ - id: "builtup"
+ name: "builtup"
+ geometry: "polygon"
+ class: ""
+ extent: *world
+ srs-name: "mercator"
+ srs: "+proj=merc +datum=WGS84 +over"
+ Datasource:
+ file: "data/world_boundaries/builtup_area.shp"
+ type: "shape"
+ advanced: {}
+ - id: "necountries"
+ name: "necountries"
+ class: ""
+ geometry: "linestring"
+ <<: *extents84
+ Datasource:
+ file: "data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp"
+ type: "shape"
+ advanced: {}
+ - id: "landcover"
+ name: "landcover"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, name, religion,
+ COALESCE(aeroway, amenity, landuse, leisure, military, "natural", power, tourism, highway) AS feature
+ FROM (SELECT
+ way, COALESCE(name,'') AS name,
+ ('aeroway_' || (CASE WHEN aeroway IN ('apron', 'aerodrome') THEN aeroway ELSE NULL END)) AS aeroway,
+ ('amenity_' || (CASE WHEN amenity IN ('parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard') THEN amenity ELSE NULL END)) AS amenity,
+ ('landuse_' || (CASE WHEN landuse IN ('quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'field', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'recreation_ground', 'conservation', 'village_green', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction') THEN landuse ELSE NULL END)) AS landuse,
+ ('leisure_' || (CASE WHEN leisure IN ('swimming_pool', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'golf_course', 'picnic_table','sports_centre','stadium','pitch','track') THEN leisure ELSE NULL END)) AS leisure,
+ ('military_' || (CASE WHEN military IN ('barracks', 'danger_area') THEN military ELSE NULL END)) AS military,
+ ('natural_' || (CASE WHEN "natural" IN ('beach','desert','heath','mud','grassland','wood','sand','scrub') THEN "natural" ELSE NULL END)) AS "natural",
+ ('power_' || (CASE WHEN power IN ('station','sub_station','substation','generator') THEN power ELSE NULL END)) AS power,
+ ('tourism_' || (CASE WHEN tourism IN ('attraction', 'camp_site', 'caravan_site', 'picnic_site', 'zoo') THEN tourism ELSE NULL END)) AS tourism,
+ ('highway_' || (CASE WHEN highway IN ('services', 'rest_area') THEN highway ELSE NULL END)) AS highway,
+ CASE WHEN religion IN ('christian','jewish') THEN religion ELSE 'INT-generic'::text end AS religion
+ FROM planet_osm_polygon
+ WHERE landuse IS NOT NULL
+ OR leisure IS NOT NULL
+ OR aeroway IN ('apron','aerodrome')
+ OR amenity IN ('parking','university','college','school','hospital','kindergarten','grave_yard')
+ OR military IN ('barracks','danger_area')
+ OR "natural" IN ('beach','desert','heath','mud','grassland','wood','sand','scrub')
+ OR power IN ('station','sub_station','substation','generator')
+ OR tourism IN ('attraction','camp_site','caravan_site','picnic_site','zoo')
+ OR highway IN ('services','rest_area')
+ ORDER BY z_order, way_area DESC
+ ) AS landcover
+ ) AS features
+ advanced: {}
+ - id: "landcover-line"
+ name: "landcover-line"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way
+ FROM planet_osm_line
+ WHERE man_made = 'cutline'
+ ) AS landcover_line
+ advanced: {}
+ - id: "water-lines-casing"
+ name: "water-lines-casing"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, waterway,
+ CASE WHEN tunnel IN ('yes', 'culvert') THEN 'yes' ELSE 'no' END AS int_tunnel
+ FROM planet_osm_line
+ WHERE waterway IN ('stream', 'drain', 'ditch')
+ AND (tunnel IS NULL OR tunnel != 'yes')
+ ) AS water_lines_casing
+ advanced: {}
+ - id: "water-lines-low-zoom"
+ name: "water-lines-low-zoom"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT way, waterway
+ FROM planet_osm_line
+ WHERE waterway = 'river'
+ ) AS water_lines_low_zoom
+ advanced: {}
+ - id: "water-areas"
+ name: "water-areas"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, "natural", waterway, landuse, name, way_area/(!pixel_width!*!pixel_height!) AS way_pixels
+ FROM planet_osm_polygon
+ WHERE
+ (waterway IN ('dock', 'riverbank', 'canal')
+ OR landuse IN ('reservoir', 'basin')
+ OR "natural" IN ('lake', 'water', 'land', 'glacier', 'mud'))
+ AND building IS NULL
+ AND way_area/(!pixel_width!*!pixel_height!) > 0.01
+ ORDER BY z_order, way_area
+ ) AS water_areas
+ advanced: {}
+ - id: "water-areas-overlay"
+ name: "water-areas-overlay"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, "natural"
+ FROM planet_osm_polygon
+ WHERE "natural" IN ('marsh', 'wetland') AND building IS NULL
+ ORDER BY z_order,way_area DESC
+ ) AS water_areas_overlay
+ advanced: {}
+ - id: "water-lines"
+ name: "water-lines"
+ class: "water-lines"
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, waterway, lock, name,
+ CASE WHEN tunnel IN ('yes','culvert') THEN 'yes' ELSE 'no' END AS int_tunnel,
+ 'no' as bridge
+ FROM planet_osm_line
+ WHERE waterway in ('weir', 'river', 'canal', 'derelict_canal', 'stream', 'drain', 'ditch', 'wadi')
+ AND (bridge IS NULL or bridge not in ('yes','aqueduct'))
+ ORDER BY z_order
+ ) AS water_lines
+ advanced: {}
+ - id: "dam"
+ name: "dam"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT way, name
+ FROM planet_osm_line
+ WHERE waterway = 'dam'
+ ) AS dam
+ advanced: {}
+ - id: "marinas-area"
+ name: "marinas-area"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way
+ FROM planet_osm_polygon
+ WHERE leisure = 'marina'
+ ) AS marinas_area
+ advanced: {}
+ - id: "piers-area"
+ name: "piers-area"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, man_made
+ FROM planet_osm_polygon
+ WHERE man_made IN ('pier', 'breakwater', 'groyne')
+ ) AS piers_area
+ advanced: {}
+ - id: "piers"
+ name: "piers"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, man_made
+ FROM planet_osm_line
+ WHERE man_made IN ('pier', 'breakwater', 'groyne')
+ ) AS piers
+ advanced: {}
+ - id: "locks"
+ name: "locks"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, waterway
+ FROM planet_osm_point
+ WHERE waterway = 'lock_gate'
+ ) AS locks
+ advanced: {}
+ - id: "buildings-lz"
+ name: "buildings-lz"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, building, railway, amenity FROM planet_osm_polygon
+ WHERE railway = 'station'
+ OR building IN ('station', 'supermarket')
+ OR amenity = 'place_of_worship'
+ ORDER BY z_order, way_area DESC
+ ) AS buildings_lz
+ advanced: {}
+ - id: "buildings"
+ name: "buildings"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way,aeroway,
+ CASE
+ WHEN building IN ('garage','roof','garages','service','shed','shelter','cabin','storage_tank','tank','support','glasshouse','greenhouse','mobile_home','kiosk','silo','canopy','tent') THEN 'INT-light'::text
+ ELSE building
+ END AS building
+ FROM planet_osm_polygon
+ WHERE (building IS NOT null
+ AND building NOT IN ('no','station','supermarket','planned')
+ AND (railway IS null OR railway != 'station')
+ AND (amenity IS null OR amenity != 'place_of_worship'))
+ OR aeroway = 'terminal'
+ ORDER BY z_order, way_area DESC
+ ) AS buildings
+ advanced: {}
+ - id: "tunnels"
+ name: "tunnels"
+ class: "tunnels-fill tunnels-casing access directions"
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT *
+ FROM (
+ (SELECT
+ way, prio,
+ ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) ELSE highway END)) AS feature,
+ horse, foot, bicycle, tracktype,
+ CASE WHEN access IN ('destination') THEN 'destination'::text
+ WHEN access IN ('no', 'private') THEN 'no'::text
+ ELSE NULL
+ END AS access,
+ construction,
+ CASE WHEN service IN ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text
+ ELSE 'INT-normal'::text
+ END AS service,
+ CASE WHEN oneway in ('yes', '-1') AND 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') THEN oneway
+ ELSE NULL
+ END AS oneway,
+ CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes'
+ ELSE 'no' END AS link,
+ CASE WHEN layer IS NULL THEN '0'
+ ELSE layer
+ END AS layernotnull
+ FROM planet_osm_line
+ JOIN (VALUES
+ ('highway_motorway', 380),
+ ('highway_trunk', 370),
+ ('highway_primary', 360),
+ ('highway_secondary', 350),
+ ('highway_tertiary', 340),
+ ('highway_residential', 330),
+ ('highway_unclassified', 330),
+ ('highway_road', 330),
+ ('highway_living_street', 320),
+ ('highway_pedestrian', 310),
+ ('highway_raceway', 300),
+ ('highway_motorway_link', 240),
+ ('highway_trunk_link', 230),
+ ('highway_primary_link', 220),
+ ('highway_secondary_link', 210),
+ ('highway_tertiary_link', 200),
+ ('highway_service', 150),
+ ('highway_track', 110),
+ ('highway_path', 100),
+ ('highway_footway', 100),
+ ('highway_bridleway', 100),
+ ('highway_cycleway', 100),
+ ('highway_steps', 100),
+ ('highway_platform', 90),
+ ('highway_proposed', 20),
+ ('highway_construction', 10)
+ ) AS ordertable (feature, prio)
+ ON ('highway_' || planet_osm_line.highway) = ordertable.feature
+ WHERE (tunnel='yes' OR tunnel = 'building_passage' OR covered='yes'))
+ UNION ALL
+ (SELECT
+ way, prio,
+ COALESCE(('railway_' || (CASE WHEN railway='preserved' AND service in ('spur','siding','yard') THEN 'INT-preserved-ssy'::text WHEN (railway='rail' AND service in ('spur','siding','yard')) THEN 'INT-spur-siding-yard' else railway END)),
+ ('aeroway_' || aeroway)) AS feature,
+ horse, foot, bicycle, tracktype,
+ CASE WHEN access in ('destination') THEN 'destination'::text
+ WHEN access in ('no', 'private') THEN 'no'::text
+ ELSE NULL END as access,
+ construction,
+ CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text END as service,
+ null AS oneway,
+ 'no' AS link,
+ CASE WHEN layer IS NULL THEN '0' ELSE layer END AS layernotnull
+ FROM planet_osm_line
+ JOIN (VALUES
+ ('railway_rail', 430),
+ ('railway_spur', 430),
+ ('railway_siding', 430),
+ ('railway_subway', 420),
+ ('railway_narrow_gauge', 420),
+ ('railway_light_rail', 420),
+ ('railway_preserved', 420),
+ ('railway_funicular', 420),
+ ('railway_monorail', 420),
+ ('railway_miniature', 420),
+ ('railway_turntable', 420),
+ ('railway_tram', 410),
+ ('railway_disused', 400),
+ ('railway_construction', 400),
+ ('aeroway_runway', 60),
+ ('aeroway_taxiway', 50),
+ ('railway_platform', 90)
+ ) AS ordertable (feature, prio)
+ ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature
+ WHERE (tunnel='yes' or tunnel='building_passage' or covered='yes'))
+ ) AS features
+ ORDER BY layernotnull, prio
+ ) AS tunnels
+ properties:
+ group-by: "layernotnull"
+ advanced: {}
+ - id: "citywalls"
+ name: "citywalls"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way
+ FROM planet_osm_line
+ WHERE historic = 'citywalls')
+ AS citywalls
+ advanced: {}
+ - id: "castlewalls"
+ name: "castlewalls"
+ class: "castlewalls"
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way
+ FROM planet_osm_line
+ WHERE historic = 'castle_walls'
+ ) AS castlewalls
+ advanced: {}
+ - id: "castlewalls-poly"
+ name: "castlewalls-poly"
+ class: "castlewalls"
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way
+ FROM planet_osm_polygon
+ WHERE historic = 'castle_walls'
+ ) AS castlewalls_poly
+ advanced: {}
+ - id: "landuse-overlay"
+ name: "landuse-overlay"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, landuse, leisure
+ FROM planet_osm_polygon
+ WHERE (landuse = 'military') AND building IS NULL
+ ) AS landuse_overlay
+ advanced: {}
+ - id: "line-barriers"
+ name: "line-barriers"
+ class: "barriers"
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way, barrier
+ FROM planet_osm_line
+ WHERE barrier IS NOT NULL
+ ) AS line_barriers
+ advanced: {}
+ - id: "cliffs"
+ name: "cliffs"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way,"natural",man_made
+ FROM planet_osm_line
+ WHERE "natural" = 'cliff' OR man_made = 'embankment'
+ ) AS cliffs
+ advanced: {}
+ - id: "area-barriers"
+ name: "area-barriers"
+ class: "barriers"
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way,barrier
+ FROM planet_osm_polygon
+ WHERE barrier IS NOT NULL
+ ) AS area_barriers
+ advanced: {}
+ - id: "tree-row"
+ name: "tree-row"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way,"natural"
+ FROM planet_osm_line
+ WHERE "natural" = 'tree_row'
+ ) AS tree_row
+ advanced: {}
+ - id: "ferry-routes"
+ name: "ferry-routes"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way
+ FROM planet_osm_line
+ WHERE route = 'ferry'
+ ) AS ferry_routes
+ advanced: {}
+ - id: "turning-circle-casing"
+ name: "turning-circle-casing"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT DISTINCT ON (p.way)
+ p.way AS way, l.highway AS int_tc_type,
+ CASE WHEN l.service IN ('parking_aisle','drive-through','driveway')
+ THEN 'INT-minor'::text
+ ELSE 'INT-normal'::text
+ END AS int_tc_service
+ FROM planet_osm_point p
+ JOIN planet_osm_line l ON ST_DWithin(p.way,l.way,0.1) -- Assumes Mercator
+ JOIN (VALUES
+ ('tertiary', 1),
+ ('unclassified', 2),
+ ('residential', 3),
+ ('living_street', 4),
+ ('service', 5)
+ ) AS v (highway, prio)
+ ON v.highway=l.highway
+ WHERE p.highway = 'turning_circle'
+ OR p.highway = 'turning_loop'
+ ORDER BY p.way, v.prio
+ ) AS turning_circle_casing
+ advanced: {}
+ - id: "highway-area-casing"
+ name: "highway-area-casing"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way,
+ COALESCE((
+ 'highway_' || (CASE WHEN highway IN ('residential','unclassified','pedestrian','service','footway','cycleway','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
+ WHERE highway IN ('residential', 'unclassified', 'pedestrian', 'service', 'footway', 'track', 'path', 'platform')
+ OR railway IN ('platform')
+ ORDER BY z_order, way_area DESC
+ ) AS highway_area_casing
+ advanced: {}
+ - name: "roads-casing"
+ id: "roads-casing"
+ class: "roads-casing"
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ *
+ FROM
+ (
+ (SELECT
+ way, prio,
+ ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) ELSE highway END)) AS feature,
+ horse, foot, bicycle, tracktype,
+ CASE WHEN access IN ('destination') THEN 'destination'::text when access IN ('no', 'private') THEN 'no'::text ELSE NULL END as access, construction,
+ CASE WHEN service IN ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text ELSE 'INT-normal'::text end as service,
+ CASE WHEN oneway IN ('yes', '-1')
+ AND 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') THEN oneway
+ ELSE NULL
+ END as oneway,
+ CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' ELSE 'no' end as link,
+ CASE WHEN layer IS NULL THEN '0' ELSE layer END AS layernotnull
+ FROM planet_osm_line
+ JOIN (VALUES
+ ('highway_motorway',380),
+ ('highway_trunk',370),
+ ('highway_primary',360),
+ ('highway_secondary',350),
+ ('highway_tertiary',340),
+ ('highway_residential',330),
+ ('highway_unclassified',330),
+ ('highway_road',330),
+ ('highway_living_street',320),
+ ('highway_pedestrian',310),
+ ('highway_raceway',300),
+ ('highway_motorway_link',240),
+ ('highway_trunk_link',230),
+ ('highway_primary_link',220),
+ ('highway_secondary_link',210),
+ ('highway_tertiary_link',200),
+ ('highway_service',150),
+ ('highway_track',110),
+ ('highway_path',100),
+ ('highway_footway',100),
+ ('highway_bridleway',100),
+ ('highway_cycleway',100),
+ ('highway_steps',100),
+ ('highway_platform',90),
+ ('highway_proposed',20),
+ ('highway_construction',10)
+ ) AS ordertable (feature, prio)
+ ON ('highway_' || planet_osm_line.highway) = ordertable.feature
+ WHERE (tunnel IS NULL OR NOT tunnel IN ('yes', 'building_passage'))
+ AND (covered IS NULL OR NOT covered='yes')
+ AND (bridge IS NULL OR NOT bridge IN ('yes', 'viaduct')))
+ UNION ALL
+ (SELECT
+ way, prio,
+ COALESCE(('railway_' ||(CASE WHEN railway='preserved' AND service in ('spur','siding','yard') THEN 'INT-preserved-ssy'::text when (railway='rail' AND service in ('spur','siding','yard')) THEN 'INT-spur-siding-yard' else railway end)), ('aeroway_' || aeroway)) AS feature,
+ horse, foot, bicycle, tracktype,
+ CASE WHEN access in ('destination') THEN 'destination'::text when access in ('no', 'private') THEN 'no'::text ELSE NULL END as access,
+ construction, CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text end as service,
+ null as oneway, 'no' as link,
+ CASE WHEN layer IS NULL THEN '0' else layer end as layernotnull
+ FROM planet_osm_line
+ JOIN (VALUES
+ ('railway_rail', 430),
+ ('railway_spur', 430),
+ ('railway_siding', 430),
+ ('railway_subway', 420),
+ ('railway_narrow_gauge', 420),
+ ('railway_light_rail', 420),
+ ('railway_preserved', 420),
+ ('railway_funicular', 420),
+ ('railway_monorail', 420),
+ ('railway_miniature', 420),
+ ('railway_turntable', 420),
+ ('railway_tram', 410),
+ ('railway_disused', 400),
+ ('railway_construction', 400),
+ ('aeroway_runway', 60),
+ ('aeroway_taxiway', 50),
+ ('railway_platform', 90)
+ ) AS ordertable (feature, prio)
+ ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature
+ WHERE (tunnel IS NULL or not tunnel in ('yes','building_passage'))
+ AND (covered IS NULL or not covered='yes')
+ AND (bridge IS NULL or not bridge in ('yes','viaduct'))
+ )
+ ) AS features
+ ORDER BY prio
+ ) AS roads_casing
+ advanced: {}
+ - id: "highway-area-fill"
+ name: "highway-area-fill"
+ class: ""
+ # FIXME: No geometry?
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ way,
+ COALESCE(
+ ('highway_' || (CASE WHEN highway in ('residential','unclassified','pedestrian','service','footway','cycleway','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
+ WHERE highway in ('residential', 'unclassified', 'pedestrian', 'service', 'footway', 'living_street', 'track', 'path', 'platform', 'services')
+ OR railway IN ('platform')
+ OR aeroway IN ('runway', 'taxiway', 'helipad')
+ ORDER BY z_order, way_area desc
+ ) AS highway_area_fill
+ advanced: {}
+ - id: "roads-fill"
+ name: "roads-fill"
+ class: "roads-fill access directions"
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ *
+ FROM
+ (
+ (SELECT
+ way, prio,
+ ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) else highway end)) AS feature,
+ horse, foot, bicycle, tracktype,
+ CASE WHEN access in ('destination') THEN 'destination'::text
+ WHEN access in ('no', 'private') THEN 'no'::text
+ ELSE NULL
+ END AS access,
+ construction,
+ CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text end as service,
+ CASE WHEN oneway in ('yes', '-1') AND 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') THEN oneway ELSE NULL END as oneway,
+ CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' else 'no' end as link, CASE WHEN layer IS NULL THEN '0' else layer end as layernotnull
+ FROM planet_osm_line
+ JOIN (VALUES
+ ('highway_motorway',380),
+ ('highway_trunk',370),
+ ('highway_primary',360),
+ ('highway_secondary',350),
+ ('highway_tertiary',340),
+ ('highway_residential',330),
+ ('highway_unclassified',330),
+ ('highway_road',330),
+ ('highway_living_street',320),
+ ('highway_pedestrian',310),
+ ('highway_raceway',300),
+ ('highway_motorway_link',240),
+ ('highway_trunk_link',230),
+ ('highway_primary_link',220),
+ ('highway_secondary_link',210),
+ ('highway_tertiary_link',200),
+ ('highway_service',150),
+ ('highway_track',110),
+ ('highway_path',100),
+ ('highway_footway',100),
+ ('highway_bridleway',100),
+ ('highway_cycleway',100),
+ ('highway_steps',100),
+ ('highway_platform',90),
+ ('highway_proposed',20),
+ ('highway_construction',10)
+ ) AS ordertable (feature, prio)
+ on ('highway_' || planet_osm_line.highway) = ordertable.feature
+ WHERE (tunnel IS NULL or not tunnel in ('yes','building_passage'))
+ AND (covered IS NULL or not covered='yes')
+ AND (bridge IS NULL or not bridge in ('yes','viaduct')))
+ union all
+ (SELECT
+ way, prio,
+ COALESCE(
+ ('railway_' || (CASE WHEN railway='preserved' AND service IN ('spur','siding','yard') THEN 'INT-preserved-ssy'::text WHEN (railway='rail' AND service in ('spur','siding','yard')) THEN 'INT-spur-siding-yard' ELSE railway END)),
+ ('aeroway_' || aeroway)
+ ) AS feature,
+ horse, foot, bicycle, tracktype,
+ CASE WHEN access in ('destination') THEN 'destination'::text
+ WHEN access IN ('no', 'private') THEN 'no'::text
+ ELSE NULL
+ END as access,
+ construction,
+ CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text
+ ELSE 'INT-normal'::text
+ END as service,
+ NULL as oneway,
+ 'no' as link,
+ CASE WHEN layer IS NULL THEN '0' ELSE layer END AS layernotnull
+ FROM planet_osm_line
+ JOIN (VALUES
+ ('railway_rail',430),
+ ('railway_spur',430),
+ ('railway_siding',430),
+ ('railway_subway',420),
+ ('railway_narrow_gauge',420),
+ ('railway_light_rail',420),
+ ('railway_preserved',420),
+ ('railway_funicular',420),
+ ('railway_monorail',420),
+ ('railway_miniature',420),
+ ('railway_turntable',420),
+ ('railway_tram',410),
+ ('railway_disused',400),
+ ('railway_construction',400),
+ ('aeroway_runway',60),
+ ('aeroway_taxiway',50),
+ ('railway_platform',90)) AS ordertable (feature, prio)
+ ON COALESCE(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature
+ WHERE (tunnel IS NULL OR NOT tunnel IN ('yes','building_passage'))
+ AND (covered IS NULL OR NOT covered='yes')
+ AND (bridge IS NULL OR NOT bridge IN ('yes','viaduct'))
+ )
+ ) AS features ORDER BY prio
+ ) AS roads_fill
+ advanced: {}
+ - id: "turning-circle-fill"
+ name: "turning-circle-fill"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |-
+ (SELECT
+ DISTINCT on (p.way)
+ p.way as way, l.highway as int_tc_type,
+ CASE WHEN l.service IN ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text
+ ELSE 'INT-normal'::text end AS int_tc_service
+ FROM planet_osm_point p
+ JOIN planet_osm_line l
+ ON ST_DWithin(p.way, l.way, 0.1)
+ JOIN (VALUES
+ ('tertiary', 1),
+ ('unclassified', 2),
+ ('residential', 3),
+ ('living_street', 4),
+ ('service', 5)
+ ) AS v (highway,prio)
+ ON v.highway=l.highway
+ WHERE p.highway='turning_circle' or p.highway='turning_loop'
+ ORDER BY p.way,v.prio
+ ) AS turning_circle_fill
+ advanced: {}
+ - id: "aerialways"
+ name: "aerialways"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,aerialway FROM planet_osm_line WHERE aerialway IS NOT NULL) AS aerialways
+ advanced: {}
+ - id: "roads-low-zoom"
+ name: "roads-low-zoom"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,coalesce(('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) else highway 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
+ FROM planet_osm_roads
+ WHERE highway IS NOT NULL
+ or (railway IS NOT NULL AND railway!='preserved' AND (service IS NULL or service not in ('spur','siding','yard')))
+ ORDER BY z_order
+ ) AS roads_low_zoom
+ advanced: {}
+ - id: "waterway-bridges"
+ name: "waterway-bridges"
+ class: "water-lines"
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,waterway,name,CASE WHEN tunnel in ('yes','culvert') THEN 'yes' else 'no' end as int_tunnel, 'yes' as bridge FROM planet_osm_line WHERE waterway in ('river','canal','derelict_canal','stream','drain','ditch','wadi') AND bridge in ('yes','aqueduct') ORDER BY z_order) AS waterway_bridges
+ advanced: {}
+ - id: "bridges"
+ name: "bridges"
+ class: "bridges-fill bridges-casing access directions"
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT * FROM ((SELECT way, prio, ('highway_' || (CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) else highway end)) AS feature, horse, foot, bicycle, tracktype, CASE WHEN access in ('destination') THEN 'destination'::text when access in ('no', 'private') THEN 'no'::text ELSE NULL END as access, construction, CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text end as service, CASE WHEN oneway in ('yes', '-1') AND 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') THEN oneway ELSE NULL END as oneway, CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN 'yes' else 'no' end as link, CASE WHEN layer IS NULL THEN '0' else layer end as layernotnull FROM planet_osm_line JOIN ( values ('highway_motorway',380), ('highway_trunk',370), ('highway_primary',360), ('highway_secondary',350), ('highway_tertiary',340), ('highway_residential',330), ('highway_unclassified',330), ('highway_road',330), ('highway_living_street',320), ('highway_pedestrian',310), ('highway_raceway',300), ('highway_motorway_link',240), ('highway_trunk_link',230), ('highway_primary_link',220), ('highway_secondary_link',210), ('highway_tertiary_link',200), ('highway_service',150), ('highway_track',110), ('highway_path',100), ('highway_footway',100), ('highway_bridleway',100), ('highway_cycleway',100), ('highway_steps',100), ('highway_platform',90), ('highway_proposed',20), ('highway_construction',10)) AS ordertable (feature, prio) on ('highway_' || planet_osm_line.highway) = ordertable.feature WHERE bridge in ('yes','viaduct')) union all (SELECT way, prio, coalesce(('railway_' ||(CASE WHEN railway='preserved' AND service in ('spur','siding','yard') THEN 'INT-preserved-ssy'::text when (railway='rail' AND service in ('spur','siding','yard')) THEN 'INT-spur-siding-yard' else railway end)), ('aeroway_' || aeroway)) AS feature, horse, foot, bicycle, tracktype, CASE WHEN access in ('destination') THEN 'destination'::text when access in ('no', 'private') THEN 'no'::text ELSE NULL END as access, construction, CASE WHEN service in ('parking_aisle','drive-through','driveway') THEN 'INT-minor'::text else 'INT-normal'::text end as service, null as oneway, 'no' as link, CASE WHEN layer IS NULL THEN '0' else layer end as layernotnull FROM planet_osm_line JOIN ( values ('railway_rail',430), ('railway_spur',430), ('railway_siding',430), ('railway_subway',420), ('railway_narrow_gauge',420), ('railway_light_rail',420), ('railway_preserved',420), ('railway_funicular',420), ('railway_monorail',420), ('railway_miniature',420), ('railway_turntable',420), ('railway_tram',410), ('railway_disused',400), ('railway_construction',400), ('aeroway_runway',60), ('aeroway_taxiway',50), ('railway_platform',90)) AS ordertable (feature, prio) on coalesce(('railway_' || planet_osm_line.railway), ('aeroway_' || planet_osm_line.aeroway)) = ordertable.feature WHERE bridge in ('yes','viaduct'))) AS features ORDER BY layernotnull,prio) AS bridges
+ properties:
+ group-by: "layernotnull"
+ advanced: {}
+ - id: "guideways"
+ name: "guideways"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way FROM planet_osm_line WHERE highway='bus_guideway' AND (tunnel IS NULL or tunnel != 'yes')) AS guideways
+ advanced: {}
+ - name: "admin-01234"
+ id: "admin-01234"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,admin_level
+ FROM planet_osm_roads
+ WHERE "boundary"='administrative'
+ AND admin_level in ('0','1','2','3','4')
+ ) AS admin_01234
+ advanced: {}
+ - id: "admin-5678"
+ name: "admin-5678"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,admin_level
+ FROM planet_osm_roads
+ WHERE "boundary"='administrative'
+ AND admin_level in ('5','6','7','8')
+ ) AS admin_5678
+ advanced: {}
+ - id: "admin-other"
+ name: "admin-other"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,admin_level
+ FROM planet_osm_roads
+ WHERE "boundary"='administrative'
+ AND admin_level in ('9', '10')
+ ) AS admin_other
+ advanced: {}
+ - id: "power-minorline"
+ name: "power-minorline"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way FROM planet_osm_line WHERE "power"='minor_line') AS power_minorline
+ advanced: {}
+ - id: "power-line"
+ name: "power-line"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way FROM planet_osm_line WHERE "power"='line') AS power_line
+ advanced: {}
+ - id: "nepopulated"
+ name: "nepopulated"
+ class: ""
+ geometry: "point"
+ <<: *extents84
+ Datasource:
+ file: "data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp"
+ type: "shape"
+ encoding: "windows-1252"
+ advanced:
+ encoding: "windows-1252"
+ - id: "placenames-large"
+ name: "placenames-large"
+ class: "country state"
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,place,name,ref
+ FROM planet_osm_point
+ WHERE place in ('country','state')
+ ) AS placenames_large
+ advanced: {}
+ - id: "placenames-capital"
+ name: "placenames-capital"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,place,name,ref
+ FROM planet_osm_point
+ WHERE place in ('city','town') AND capital='yes'
+ ) AS placenames_capital
+ advanced: {}
+ - id: "placenames-medium"
+ name: "placenames-medium"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,place,name
+ FROM planet_osm_point
+ WHERE place in ('city','town')
+ AND (capital IS NULL or capital != 'yes')
+ ) AS placenames_medium
+ advanced: {}
+ - id: "placenames-small"
+ name: "placenames-small"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,place,name
+ FROM planet_osm_point
+ WHERE place in ('suburb','village','hamlet','neighbourhood','locality','isolated_dwelling','farm')
+ ) AS placenames_small
+ advanced: {}
+ - id: "stations"
+ class: "stations"
+ name: "stations"
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,name,railway,aerialway,disused
+ FROM planet_osm_point
+ WHERE railway in ('station','halt','tram_stop','subway_entrance')
+ or aerialway='station'
+ ) AS stations
+ advanced: {}
+ - id: "stations-poly"
+ name: "stations-poly"
+ class: "stations"
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,name,railway,aerialway,disused
+ FROM planet_osm_polygon
+ WHERE railway in ('station','halt','tram_stop')
+ or aerialway='station'
+ ) AS stations_poly
+ advanced: {}
+ - id: "glaciers-text"
+ name: "glaciers-text"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,name,way_area
+ FROM planet_osm_polygon
+ WHERE "natural"='glacier' AND building IS NULL
+ ORDER BY way_area desc
+ ) AS glaciers_text
+ advanced: {}
+ - id: "amenity-symbols"
+ name: "amenity-symbols"
+ class: "symbols"
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT *
+ FROM planet_osm_point
+ WHERE aeroway in ('aerodrome','helipad')
+ or barrier in ('bollard','gate','lift_gate','block')
+ or highway in ('mini_roundabout','gate')
+ or man_made in ('lighthouse','power_wind','windmill','mast')
+ or (power='generator' AND ("generator:source"='wind' or power_source='wind'))
+ or "natural" in ('peak','volcano','spring','tree','cave_entrance')
+ or railway='level_crossing'
+ ) AS amenity_symbols
+ advanced: {}
+ - id: "amenity-symbols-poly"
+ name: "amenity-symbols-poly"
+ class: "symbols"
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT *
+ FROM planet_osm_polygon
+ WHERE aeroway in ('aerodrome','helipad')
+ or barrier in ('bollard','gate','lift_gate','block')
+ or highway in ('mini_roundabout','gate')
+ or man_made in ('lighthouse','power_wind','windmill','mast')
+ or (power='generator' AND ("generator:source"='wind' or power_source='wind'))
+ or "natural" in ('peak','volcano','spring','tree')
+ or railway='level_crossing'
+ ) AS amenity_symbols_poly
+ advanced: {}
+ - id: "amenity-points-poly"
+ name: "amenity-points-poly"
+ class: "points"
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,coalesce('aeroway_' || aeroway, 'shop_' || CASE WHEN shop in ('supermarket', 'bakery', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle') THEN shop when not shop IS NULL THEN 'other' ELSE NULL END, 'amenity_' || amenity, 'leisure_' || leisure, 'landuse_' || landuse, 'man_made_' || man_made, 'natural_' || "natural", 'place_' || place, 'tourism_' || tourism, 'military_' || military, 'waterway_' || waterway, 'historic_' || historic, 'lock_' || lock, 'highway_' || highway) AS feature,access,religion
+ FROM planet_osm_polygon
+ WHERE amenity IS NOT NULL
+ or shop in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')
+ or tourism in ('alpine_hut','camp_site','picnic_site','caravan_site','guest_house','hostel','hotel','motel','museum','viewpoint','bed_and_breakfast','information','chalet')
+ or highway in ('bus_stop','traffic_signals')
+ or man_made in ('mast','water_tower')
+ or historic in ('memorial','archaeological_site')
+ or leisure in ('playground', 'picnic_table')
+ ORDER BY way_area desc ) AS amenity_points_poly
+ advanced: {}
+ - id: "amenity-points"
+ name: "amenity-points"
+ class: "points"
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,coalesce('aeroway_' || aeroway, 'shop_' || CASE WHEN shop in ('supermarket', 'bakery', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle') THEN shop when not shop IS NULL THEN 'other' ELSE NULL END, 'amenity_' || amenity, 'leisure_' || leisure, 'landuse_' || landuse, 'man_made_' || man_made, 'natural_' || "natural", 'place_' || place, 'tourism_' || tourism, 'military_' || military, 'waterway_' || waterway, 'historic_' || historic, 'lock_' || lock, 'highway_' || highway) AS feature,access,religion
+ FROM planet_osm_point
+ WHERE shop in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')
+ or amenity IS NOT NULL
+ or tourism in ('alpine_hut','picnic_site','camp_site','caravan_site','guest_house','hostel','hotel','motel','museum','viewpoint','bed_and_breakfast','information','chalet')
+ or highway in ('bus_stop','traffic_signals','ford')
+ or man_made in ('mast','water_tower')
+ or historic in ('memorial','archaeological_site')
+ or waterway='lock'
+ or lock='yes'
+ or leisure in ('playground','slipway','picnic_table')
+ ) AS amenity_points
+ advanced: {}
+ - id: "power-towers"
+ name: "power-towers"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way FROM planet_osm_point WHERE power='tower') AS power_towers
+ advanced: {}
+ - id: "power-poles"
+ name: "power-poles"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way FROM planet_osm_point WHERE power='pole') AS power_poles
+ advanced: {}
+ - id: "roads-text-ref-low-zoom"
+ name: "roads-text-ref-low-zoom"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way, highway, height, width, refs FROM
+ (SELECT
+ way, highway,
+ array_length(refs,1) AS height,
+ (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,
+ array_to_string(refs,E'\n') AS refs
+ FROM (
+ SELECT
+ way,
+ highway,
+ string_to_array(ref,';') AS refs
+ FROM planet_osm_roads
+ WHERE highway IN ('motorway','trunk','primary','secondary')
+ AND ref IS NOT NULL
+ ) AS p) AS q
+ WHERE height <= 4 AND width <= 11) AS roads_text_ref_low_zoom
+ advanced: {}
+ - id: "junctions"
+ name: "junctions"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,highway,junction,ref,name
+ FROM planet_osm_point
+ WHERE highway='motorway_junction' or highway = 'traffic_signals' or junction = 'yes'
+ ) AS junctions
+ advanced: {}
+ - id: "roads-text-ref"
+ name: "roads-text-ref"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way, highway, height, width, refs FROM
+ (SELECT
+ way, highway,
+ array_length(refs,1) AS height,
+ (SELECT MAX(char_length(ref)) FROM unnest(refs) AS u(ref)) AS width,
+ array_to_string(refs,E'\n') AS refs
+ FROM (
+ SELECT
+ way,
+ COALESCE(highway, aeroway) AS highway,
+ string_to_array(ref,';') AS refs
+ FROM planet_osm_line
+ WHERE (highway IN ('motorway','trunk','primary','secondary','tertiary','unclassified','residential') OR aeroway IN ('runway','taxiway'))
+ AND ref IS NOT NULL
+ ) AS p) AS q
+ WHERE height <= 4 AND width <= 11) AS roads_text_ref
+ advanced: {}
+ - id: "roads-area-text-name"
+ name: "roads-area-text-name"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way, way_area/(!pixel_width!*!pixel_height!) AS way_pixels, highway, name
+ FROM planet_osm_polygon
+ WHERE highway in ('residential','unclassified','pedestrian','service','footway','cycleway','living_street','track','path','platform') or railway in ('platform') AND name IS NOT NULL
+ ) AS roads_area_text_name
+ advanced: {}
+ - id: "roads-text-name"
+ name: "roads-text-name"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way, CASE WHEN substr(highway, length(highway)-3, 4) = 'link' THEN substr(highway,0,length(highway)-4) else highway end, name
+ FROM planet_osm_line
+ WHERE highway in ('motorway','motorway_link','trunk','trunk_link','primary','primary_link','secondary','secondary_link','tertiary','tertiary_link','residential','unclassified','road','service','pedestrian','raceway','living_street', 'construction','proposed')
+ AND name IS NOT NULL
+ ) AS roads_text_name
+ advanced: {}
+ - id: "paths-text-name"
+ name: "paths-text-name"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way, highway, name
+ FROM planet_osm_line
+ WHERE highway in ('bridleway', 'footway', 'cycleway', 'path', 'track', 'steps')
+ AND name IS NOT NULL
+ ) AS paths_text_name
+ advanced: {}
+ - id: "text-poly"
+ name: "text-poly"
+ class: "text"
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,coalesce('aeroway_' || aeroway, 'shop_' || CASE WHEN shop in ('supermarket', 'bakery', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle') THEN shop when not shop IS NULL THEN 'other' ELSE NULL END, 'amenity_' || amenity, 'leisure_' || leisure, 'landuse_' || landuse, 'man_made_' || man_made, 'natural_' || "natural", 'place_' || place, 'tourism_' || tourism, 'military_' || military, 'waterway_' || waterway, 'historic_' || historic, 'highway_' || highway) AS feature,access,NULL as ele,name,ref,way_area
+ FROM planet_osm_polygon
+ WHERE amenity IS NOT NULL
+ or shop in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')
+ or leisure IS NOT NULL
+ or landuse IS NOT NULL
+ or tourism IS NOT NULL
+ or "natural" IS NOT NULL
+ or man_made in ('lighthouse','windmill')
+ or place='island'
+ or military='danger_area'
+ or historic in ('memorial','archaeological_site')
+ ORDER BY way_area desc ) AS text_poly
+ advanced: {}
+ - id: "text"
+ name: "text"
+ class: "text"
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,coalesce('aeroway_' || aeroway, 'shop_' || CASE WHEN shop in ('supermarket', 'bakery', 'butcher', 'clothes', 'fashion', 'convenience', 'department_store', 'doityourself', 'florist', 'hairdresser', 'car', 'car_repair', 'bicycle') THEN shop when not shop IS NULL THEN 'other' ELSE NULL END, 'amenity_' || amenity, 'leisure_' || leisure, 'landuse_' || landuse, 'man_made_' || man_made, 'natural_' || "natural", 'place_' || place, 'tourism_' || tourism, 'military_' || military, 'waterway_' || waterway, 'historic_' || historic, 'highway_' || highway) AS feature,access,ele,name,ref,NULL as way_area
+ FROM planet_osm_point
+ WHERE amenity IS NOT NULL
+ or shop in ('accessories', 'alcohol', 'antique', 'antiques', 'appliance', 'art', 'baby_goods', 'bag', 'bags', 'bakery', 'bathroom_furnishing', 'beauty', 'bed', 'betting', 'beverages', 'bicycle', 'boat', 'bookmaker', 'books', 'boutique', 'builder', 'building_materials', 'butcher', 'camera', 'car', 'car_parts', 'car_repair', 'car_service', 'carpet', 'charity', 'cheese', 'chemist', 'chocolate', 'clothes', 'coffee', 'communication', 'computer', 'confectionery', 'convenience', 'copyshop', 'cosmetics', 'craft', 'curtain', 'dairy', 'deli', 'delicatessen', 'department_store', 'discount', 'dive', 'doityourself', 'dry_cleaning', 'e-cigarette', 'electrical', 'electronics', 'energy', 'erotic', 'estate_agent', 'fabric', 'farm', 'fashion', 'fish', 'fishing', 'fishmonger', 'flooring', 'florist', 'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 'furniture', 'gallery', 'gambling', 'games', 'garden_centre', 'gas', 'general', 'gift', 'glaziery', 'greengrocer', 'grocery', 'hairdresser', 'hardware', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hifi', 'hobby', 'household', 'houseware', 'hunting', 'ice_cream', 'insurance', 'interior_decoration', 'jewellery', 'jewelry', 'kiosk', 'kitchen', 'laundry', 'leather', 'lighting', 'locksmith', 'lottery', 'mall', 'market', 'massage', 'medical', 'medical_supply', 'mobile_phone', 'money_lender', 'motorcycle', 'motorcycle_repair', 'music', 'musical_instrument', 'newsagent', 'office_supplies', 'optician', 'organic', 'outdoor', 'paint', 'pastry', 'pawnbroker', 'perfumery', 'pet', 'pets', 'pharmacy', 'phone', 'photo', 'photo_studio', 'photography', 'pottery', 'printing', 'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'seafood', 'second_hand', 'sewing', 'shoe_repair', 'shoes', 'shopping_centre', 'solarium', 'souvenir', 'sports', 'stationery', 'supermarket', 'tailor', 'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'toys', 'trade', 'travel_agency', 'tyres', 'vacuum_cleaner', 'variety_store', 'video', 'video_games', 'watches', 'wholesale', 'wine', 'winery', 'yes')
+ or leisure IS NOT NULL
+ or landuse IS NOT NULL
+ or tourism IS NOT NULL
+ or "natural" IS NOT NULL
+ or man_made in ('lighthouse','windmill')
+ or place='island'
+ or military='danger_area'
+ or aeroway='gate'
+ or waterway='lock'
+ or historic in ('memorial','archaeological_site')
+ ) AS text
+ advanced: {}
+ - id: "building-text"
+ name: "building-text"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT name, way, way_area FROM planet_osm_polygon WHERE building IS NOT NULL AND building not in ('no','station','supermarket')) AS building_text
+ advanced: {}
+ - id: "interpolation"
+ name: "interpolation"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way FROM planet_osm_line WHERE "addr:interpolation" IS NOT NULL) AS interpolation
+ advanced: {}
+ - id: "housenumbers"
+ name: "housenumbers"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,"addr:housenumber" FROM planet_osm_polygon WHERE "addr:housenumber" IS NOT NULL AND building IS NOT NULL
+ union
+ select way,"addr:housenumber" FROM planet_osm_point WHERE "addr:housenumber" IS NOT NULL
+ ) AS housenumbers
+ advanced: {}
+ - id: "housenames"
+ name: "housenames"
+ class: ""
+ geometry: "point"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,"addr:housename" FROM planet_osm_polygon WHERE "addr:housename" IS NOT NULL AND building IS NOT NULL
+ union
+ select way,"addr:housename" FROM planet_osm_point WHERE "addr:housename" IS NOT NULL
+ ) AS housenames
+ advanced: {}
+ - id: "water-lines-text"
+ name: "water-lines-text"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,waterway,lock,name,CASE WHEN tunnel in ('yes','culvert') THEN 'yes' else 'no' end as int_tunnel
+ FROM planet_osm_line
+ WHERE waterway in ('weir','river','canal','derelict_canal','stream','drain','ditch','wadi')
+ ORDER BY z_order
+ ) AS water_lines_text
+ advanced: {}
+ - id: "admin-text"
+ name: "admin-text"
+ class: ""
+ geometry: "linestring"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (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
+ advanced: {}
+ - id: "nature-reserve-boundaries"
+ name: "nature-reserve-boundaries"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,way_area,name,boundary FROM planet_osm_polygon WHERE (boundary='national_park' or leisure='nature_reserve') AND building IS NULL) AS national_park_boundaries
+ advanced: {}
+ - id: "theme-park"
+ name: "theme-park"
+ class: ""
+ geometry: "polygon"
+ <<: *extents
+ Datasource:
+ <<: *osm2pgsql
+ table: |2-
+ (SELECT way,name,tourism FROM planet_osm_polygon WHERE tourism='theme_park') AS theme_park
+ advanced: {}
diff --git a/roads.mss b/roads.mss
index d1488724ac..648a14fce1 100644
--- a/roads.mss
+++ b/roads.mss
@@ -7,7 +7,7 @@
@secondary-fill: #f9d6aa;
@tertiary-fill: #f8f8ba;
@residential-fill: #ffffff;
-@service-fill: #ffffff;
+@service-fill: @residential-fill;
@living-street-fill: #ccc;
@pedestrian-fill: #ededed;
@road-fill: #ddd;
@@ -29,7 +29,7 @@
@secondary-casing: #cca16a;
@tertiary-casing: #c6c68a;
@residential-casing: #bbb;
-@service-casing: #999;
+@service-casing: @residential-casing;
@living-street-casing: @default-casing;
@living-street-tunnel-casing: #bbb;
@pedestrian-casing: grey;
@@ -132,127 +132,6 @@
@paths-tunnel-casing-width: 1;
.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-width-z15; }
- [zoom >= 17] { line-width: @tertiary-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'] {
@@ -260,6 +139,12 @@
[zoom >= 13] { line-width: @motorway-width-z13; }
[zoom >= 15] { line-width: @motorway-width-z15; }
[zoom >= 17] { line-width: @motorway-width-z17; }
+ [link = 'yes'] {
+ 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; }
+ }
line-color: @motorway-casing;
.roads-casing {
line-join: round;
@@ -552,6 +437,19 @@
}
}
+ [feature = 'railway_tram'] {
+ .bridges-casing {
+ [zoom >= 13] {
+ line-width: 4;
+ [zoom >= 15] {
+ line-width: 5;
+ }
+ line-color: black;
+ line-join: round;
+ }
+ }
+ }
+
[feature = 'railway_subway'] {
.bridges-casing {
[zoom >= 14] {
@@ -627,7 +525,7 @@
line-join: round;
[zoom >= 15] { line-width: 7; }
}
- }
+ }
}
}
@@ -754,6 +652,18 @@
}
}
+ [feature = 'railway_tram'] {
+ .bridges-casing {
+ [zoom >= 13] {
+ line-width: 3;
+ [zoom >= 15] {
+ line-width: 4;
+ }
+ line-color: white;
+ }
+ }
+ }
+
[feature = 'railway_subway'] {
.bridges-casing {
[zoom >= 14] {
@@ -779,125 +689,7 @@
}
.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-width-z15 - 2 * @tertiary-width-z15; }
- [zoom >= 17] { line-width: @tertiary-width-z17 - 2 * @tertiary-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;
- }
- }
- }
-
::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
@@ -989,6 +781,12 @@
[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; }
+ [link = 'yes'] {
+ 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;
}
@@ -1000,6 +798,12 @@
[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; }
+ [link = 'yes'] {
+ 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;
@@ -1227,6 +1031,17 @@
}
}
+ [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_platform'] {
[zoom >= 16] {
line-join: round;
@@ -1259,7 +1074,7 @@
.roads-fill { background/line-opacity: 0.4; }
}
line/line-color: @steps-fill;
- line/line-dasharray: 1,3;
+ line/line-dasharray: 2,1;
[zoom >= 15] { line/line-width: @steps-width-z15; }
line/line-width: @steps-width-z13;
[zoom >= 15] { line/line-width: @steps-width-z15; }
@@ -1563,12 +1378,14 @@
}
[feature = 'railway_tram'] {
- .tunnels-fill {
- [zoom >= 13] {
- line-width: 1;
+ [zoom >= 13] {
+ line-color: #444;
+ line-width: 1;
+ [zoom >= 15] {
+ line-width: 2;
+ }
+ .tunnels-fill {
line-dasharray: 5,3;
- line-color: #444;
- [zoom >= 15] { line-width: 2; }
}
}
}
@@ -1918,29 +1735,58 @@
}
}
-#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;
- [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;
+#junctions {
+ [highway = 'motorway_junction'] {
+ [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;
+ [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;
+ }
}
- [zoom >= 15] {
- ref/text-size: 12;
- name/text-size: 11;
- name/text-dy: -10;
+ }
+
+ [junction = 'yes'],
+ [highway = 'traffic_signals'] {
+ [zoom >= 14] {
+ text-name: "[name]";
+ text-size: 8;
+ text-fill: black;
+ text-face-name: @book-fonts;
+ text-halo-radius: 1;
+ text-wrap-width: 30;
+ text-min-distance: 2;
+ [zoom >= 14] {
+ text-size: 9;
+ }
+ [zoom >= 15] {
+ text-size: 10;
+ }
+ [zoom >= 17] {
+ text-size: 11;
+ /* Offset name on traffic_signals on zoomlevels where they are displayed
+ in order not to hide the icon */
+ [highway = 'traffic_signals'] {
+ text-dy: 11;
+ }
+ }
}
}
}
@@ -1975,15 +1821,10 @@
}
[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'],
@@ -2016,8 +1857,7 @@
}
#roads-low-zoom {
- [feature = 'highway_motorway'],
- [feature = 'highway_motorway_link'] {
+ [feature = 'highway_motorway'] {
[zoom >= 5][zoom < 12] {
line-width: 0.5;
line-color: @motorway-fill;
@@ -2028,8 +1868,7 @@
}
}
- [feature = 'highway_trunk'],
- [feature = 'highway_trunk_link'] {
+ [feature = 'highway_trunk'] {
[zoom >= 5][zoom < 12] {
line-width: 0.4;
line-color: @trunk-fill;
@@ -2042,8 +1881,7 @@
}
}
- [feature = 'highway_primary'],
- [feature = 'highway_primary_link'] {
+ [feature = 'highway_primary'] {
[zoom >= 7][zoom < 12] {
line-width: 0.5;
line-color: @primary-fill;
@@ -2053,8 +1891,7 @@
}
}
- [feature = 'highway_secondary'],
- [feature = 'highway_secondary_link'] {
+ [feature = 'highway_secondary'] {
[zoom >= 9][zoom < 12] {
line-width: 1;
line-color: @secondary-fill;
@@ -2094,24 +1931,6 @@
}
}
-#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;
@@ -2128,26 +1947,24 @@
}
#roads-text-ref-low-zoom {
- [highway = 'motorway'][length < 12] {
- [zoom >= 10][zoom < 13] {
- shield-name: "[ref]";
- shield-size: 10;
- shield-fill: #fff;
- shield-placement: line;
- shield-file: url("symbols/shields/motorway_[length]x1.svg");
- shield-spacing: 750;
- shield-min-distance: 30;
- shield-face-name: @bold-fonts;
- shield-clip: false;
- }
+ [highway = 'motorway'][zoom >= 10][zoom < 13] {
+ shield-name: "[refs]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/shields/motorway_[width]x[height].svg");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ shield-clip: false;
}
[highway = 'trunk'][zoom >= 11][zoom < 13] {
- shield-name: "[ref]";
+ shield-name: "[refs]";
shield-size: 10;
shield-fill: #fff;
shield-placement: line;
- shield-file: url("symbols/shields/trunk_[length]x1.svg");
+ shield-file: url("symbols/shields/trunk_[width]x[height].svg");
shield-spacing: 750;
shield-min-distance: 30;
shield-face-name: @bold-fonts;
@@ -2155,11 +1972,11 @@
}
[highway = 'primary'][zoom >= 11][zoom < 13] {
- shield-name: "[ref]";
+ shield-name: "[refs]";
shield-size: 10;
shield-fill: #fff;
shield-placement: line;
- shield-file: url("symbols/shields/primary_[length]x1.svg");
+ shield-file: url("symbols/shields/primary_[width]x[height].svg");
shield-spacing: 750;
shield-min-distance: 30;
shield-face-name: @bold-fonts;
@@ -2167,11 +1984,11 @@
}
[highway = 'secondary'][zoom >= 12][zoom < 13] {
- shield-name: "[ref]";
+ shield-name: "[refs]";
shield-size: 10;
shield-fill: #fff;
shield-placement: line;
- shield-file: url("symbols/shields/secondary_[length]x1.svg");
+ shield-file: url("symbols/shields/secondary_[width]x[height].svg");
shield-spacing: 750;
shield-min-distance: 30;
shield-face-name: @bold-fonts;
@@ -2180,26 +1997,24 @@
}
#roads-text-ref {
- [highway = 'motorway'][length < 12] {
- [zoom >= 13] {
- shield-name: "[ref]";
- shield-size: 10;
- shield-fill: #fff;
- shield-placement: line;
- shield-file: url("symbols/shields/motorway_[length]x1.svg");
- shield-spacing: 750;
- shield-min-distance: 30;
- shield-face-name: @bold-fonts;
- shield-clip: false;
- }
+ [highway = 'motorway'][zoom >= 13] {
+ shield-name: "[refs]";
+ shield-size: 10;
+ shield-fill: #fff;
+ shield-placement: line;
+ shield-file: url("symbols/shields/motorway_[width]x[height].svg");
+ shield-spacing: 750;
+ shield-min-distance: 30;
+ shield-face-name: @bold-fonts;
+ shield-clip: false;
}
[highway = 'trunk'][zoom >= 13] {
- shield-name: "[ref]";
+ shield-name: "[refs]";
shield-size: 10;
shield-fill: #fff;
shield-placement: line;
- shield-file: url("symbols/shields/trunk_[length]x1.svg");
+ shield-file: url("symbols/shields/trunk_[width]x[height].svg");
shield-spacing: 750;
shield-min-distance: 30;
shield-face-name: @bold-fonts;
@@ -2207,35 +2022,35 @@
}
[highway = 'primary'][zoom >= 13] {
- shield-name: "[ref]";
+ shield-name: "[refs]";
shield-size: 10;
shield-fill: #fff;
shield-placement: line;
- shield-file: url("symbols/shields/primary_[length]x1.svg");
+ shield-file: url("symbols/shields/primary_[width]x[height].svg");
shield-spacing: 750;
shield-min-distance: 30;
shield-face-name: @bold-fonts;
shield-clip: false;
}
- [highway = 'secondary'][bridge = 'no'][zoom >= 13] {
- shield-name: "[ref]";
+ [highway = 'secondary'][zoom >= 13] {
+ shield-name: "[refs]";
shield-size: 10;
shield-fill: #fff;
shield-placement: line;
- shield-file: url("symbols/shields/secondary_[length]x1.svg");
+ shield-file: url("symbols/shields/secondary_[width]x[height].svg");
shield-spacing: 750;
shield-min-distance: 30;
shield-face-name: @bold-fonts;
shield-clip: false;
}
- [highway = 'tertiary'][bridge = 'no'][zoom >= 13] {
- shield-name: "[ref]";
+ [highway = 'tertiary'][zoom >= 13] {
+ shield-name: "[refs]";
shield-size: 10;
shield-fill: #fff;
shield-placement: line;
- shield-file: url("symbols/shields/tertiary_[length]x1.svg");
+ shield-file: url("symbols/shields/tertiary_[width]x[height].svg");
shield-spacing: 750;
shield-min-distance: 30;
shield-face-name: @bold-fonts;
@@ -2244,8 +2059,8 @@
[highway = 'unclassified'],
[highway = 'residential'] {
- [zoom >= 15][bridge = 'no'] {
- text-name: "[ref]";
+ [zoom >= 15] {
+ text-name: "[refs]";
text-size: 10;
text-fill: #000;
text-face-name: @bold-fonts;
@@ -2258,8 +2073,8 @@
[highway = 'runway'],
[highway = 'taxiway'] {
- [zoom >= 15][bridge = 'no'] {
- text-name: "[ref]";
+ [zoom >= 15] {
+ text-name: "[refs]";
text-size: 10;
text-fill: #333;
text-spacing: 750;
@@ -2274,11 +2089,8 @@
#roads-text-name {
[highway = 'motorway'],
- [highway = 'motorway_link'],
[highway = 'trunk'],
- [highway = 'trunk_link'],
- [highway = 'primary'],
- [highway = 'primary_link'] {
+ [highway = 'primary'] {
[zoom >= 13] {
text-name: "[name]";
text-size: 8;
@@ -2295,9 +2107,11 @@
[zoom >= 15] {
text-size: 10;
}
+ [zoom >= 17] {
+ text-size: 11;
+ }
}
- [highway = 'secondary'],
- [highway = 'secondary_link'] {
+ [highway = 'secondary'] {
[zoom >= 13] {
text-name: "[name]";
text-size: 8;
@@ -2314,13 +2128,16 @@
[zoom >= 15] {
text-size: 10;
}
+ [zoom >= 17] {
+ text-size: 11;
+ }
}
[highway = 'tertiary'],
[highway = 'tertiary_link'] {
- [zoom >= 15] {
+ [zoom >= 14] {
text-name: "[name]";
text-size: 9;
- text-fill: #000;
+ text-fill: black;
text-spacing: 300;
text-clip: false;
text-placement: line;
@@ -2336,14 +2153,14 @@
[zoom >= 13] {
text-name: "[name]";
text-size: 9;
- text-fill: #000;
+ text-fill: black;
text-spacing: 300;
text-clip: false;
text-placement: line;
- text-face-name: @book-fonts;
text-halo-radius: 1;
+ text-face-name: @book-fonts;
}
- [zoom >= 16] {
+ [zoom >= 17] {
text-size: 11;
}
}
@@ -2353,10 +2170,11 @@
[zoom >= 15] {
text-name: "[name]";
text-size: 8;
+ text-fill: black;
text-spacing: 300;
text-clip: false;
text-placement: line;
- text-halo-radius: 1;
+ text-halo-radius: 0;
text-face-name: @book-fonts;
}
[zoom >= 16] {
@@ -2373,9 +2191,11 @@
[zoom >= 16] {
text-name: "[name]";
text-size: 9;
+ text-fill: black;
text-spacing: 300;
text-clip: false;
text-placement: line;
+ text-halo-radius: 0;
text-face-name: @book-fonts;
}
[zoom >= 17] {
@@ -2388,9 +2208,11 @@
[zoom >= 15] {
text-name: "[name]";
text-size: 8;
+ text-fill: black;
text-spacing: 300;
text-clip: false;
text-placement: line;
+ text-halo-radius: 0;
text-face-name: @book-fonts;
}
[zoom >= 16] {
@@ -2403,7 +2225,7 @@
}
#roads-area-text-name {
- [highway = 'pedestrian'] {
+ [way_pixels > 3000] {
[zoom >= 15] {
text-name: "[name]";
text-size: 8;
@@ -2427,7 +2249,7 @@
text-fill: #222;
text-size: 8;
text-halo-radius: 1;
- text-halo-fill: rgba(255,255,255,0.8);
+ text-halo-fill: rgba(255,255,255,0.8);
text-spacing: 300;
text-clip: false;
text-placement: line;
@@ -2444,6 +2266,7 @@
}
}
+ [highway = 'bridleway'],
[highway = 'footway'],
[highway = 'cycleway'],
[highway = 'path'],
diff --git a/scripts/create_standard_shields b/scripts/create_standard_shields
index 7d890745cd..be84c50dac 100755
--- a/scripts/create_standard_shields
+++ b/scripts/create_standard_shields
@@ -28,18 +28,22 @@ tertiary:#c4c68f'
xoffset=1.25
yoffset=1.75
-h='1:18'
-
-for w in $widths; do
- xchars=$(echo $w | awk -F ":" '{print $1}')
- xpixels=$(echo $w | awk -F ":" '{print $2}')
- ychars=$(echo $h | awk -F ":" '{print $1}')
- ypixels=$(echo $h | awk -F ":" '{print $2}')
-
- for shield in $colours; do
- class=$(echo $shield | awk -F ":" '{print $1}')
- colour=$(echo $shield | awk -F ":" '{print $2}')
-
- ./create_shield $colour $xpixels $ypixels $xoffset $yoffset > "${class}_${xchars}x${ychars}.svg"
+heights='
+1:18
+2:30
+3:44
+4:54'
+
+for h in $heights; do
+ for w in $widths; do
+ xchars=$(echo $w | awk -F ":" '{print $1}')
+ xpixels=$(echo $w | awk -F ":" '{print $2}')
+ ychars=$(echo $h | awk -F ":" '{print $1}')
+ ypixels=$(echo $h | awk -F ":" '{print $2}')
+ for shield in $colours; do
+ class=$(echo $shield | awk -F ":" '{print $1}')
+ colour=$(echo $shield | awk -F ":" '{print $2}')
+ ./create_shield $colour $xpixels $ypixels $xoffset $yoffset > "${class}_${xchars}x${ychars}.svg"
+ done;
done;
done;
diff --git a/scripts/yaml2mml.py b/scripts/yaml2mml.py
new file mode 100755
index 0000000000..6fb26c3e41
--- /dev/null
+++ b/scripts/yaml2mml.py
@@ -0,0 +1,3 @@
+#!/usr/bin/env python
+import sys, yaml, json
+json.dump(yaml.safe_load(sys.stdin), sys.stdout, indent=2)
diff --git a/symbols/allotments.png b/symbols/allotments.png
index d5e27796c2..0abd799ab4 100644
Binary files a/symbols/allotments.png and b/symbols/allotments.png differ
diff --git a/symbols/shields/motorway_10x2.svg b/symbols/shields/motorway_10x2.svg
new file mode 100644
index 0000000000..14861c425c
--- /dev/null
+++ b/symbols/shields/motorway_10x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_10x3.svg b/symbols/shields/motorway_10x3.svg
new file mode 100644
index 0000000000..28fcf9edde
--- /dev/null
+++ b/symbols/shields/motorway_10x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_10x4.svg b/symbols/shields/motorway_10x4.svg
new file mode 100644
index 0000000000..8432563c26
--- /dev/null
+++ b/symbols/shields/motorway_10x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_11x2.svg b/symbols/shields/motorway_11x2.svg
new file mode 100644
index 0000000000..d1445220fb
--- /dev/null
+++ b/symbols/shields/motorway_11x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_11x3.svg b/symbols/shields/motorway_11x3.svg
new file mode 100644
index 0000000000..0ce904a49f
--- /dev/null
+++ b/symbols/shields/motorway_11x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_11x4.svg b/symbols/shields/motorway_11x4.svg
new file mode 100644
index 0000000000..89e18493d4
--- /dev/null
+++ b/symbols/shields/motorway_11x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_1x2.svg b/symbols/shields/motorway_1x2.svg
new file mode 100644
index 0000000000..c5a54e474d
--- /dev/null
+++ b/symbols/shields/motorway_1x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_1x3.svg b/symbols/shields/motorway_1x3.svg
new file mode 100644
index 0000000000..1f27cdd4ce
--- /dev/null
+++ b/symbols/shields/motorway_1x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_1x4.svg b/symbols/shields/motorway_1x4.svg
new file mode 100644
index 0000000000..b25e0057ba
--- /dev/null
+++ b/symbols/shields/motorway_1x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_2x2.svg b/symbols/shields/motorway_2x2.svg
new file mode 100644
index 0000000000..bc932a6175
--- /dev/null
+++ b/symbols/shields/motorway_2x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_2x3.svg b/symbols/shields/motorway_2x3.svg
new file mode 100644
index 0000000000..259359cf38
--- /dev/null
+++ b/symbols/shields/motorway_2x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_2x4.svg b/symbols/shields/motorway_2x4.svg
new file mode 100644
index 0000000000..13aa6c3896
--- /dev/null
+++ b/symbols/shields/motorway_2x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_3x2.svg b/symbols/shields/motorway_3x2.svg
new file mode 100644
index 0000000000..35e7fc603f
--- /dev/null
+++ b/symbols/shields/motorway_3x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_3x3.svg b/symbols/shields/motorway_3x3.svg
new file mode 100644
index 0000000000..e3e706d2cf
--- /dev/null
+++ b/symbols/shields/motorway_3x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_3x4.svg b/symbols/shields/motorway_3x4.svg
new file mode 100644
index 0000000000..cbe8e310d0
--- /dev/null
+++ b/symbols/shields/motorway_3x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_4x2.svg b/symbols/shields/motorway_4x2.svg
new file mode 100644
index 0000000000..637acf85fc
--- /dev/null
+++ b/symbols/shields/motorway_4x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_4x3.svg b/symbols/shields/motorway_4x3.svg
new file mode 100644
index 0000000000..78abfc378d
--- /dev/null
+++ b/symbols/shields/motorway_4x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_4x4.svg b/symbols/shields/motorway_4x4.svg
new file mode 100644
index 0000000000..fdce2ebe15
--- /dev/null
+++ b/symbols/shields/motorway_4x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_5x2.svg b/symbols/shields/motorway_5x2.svg
new file mode 100644
index 0000000000..ca963cbd1e
--- /dev/null
+++ b/symbols/shields/motorway_5x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_5x3.svg b/symbols/shields/motorway_5x3.svg
new file mode 100644
index 0000000000..fcba797d67
--- /dev/null
+++ b/symbols/shields/motorway_5x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_5x4.svg b/symbols/shields/motorway_5x4.svg
new file mode 100644
index 0000000000..7a8c7734cc
--- /dev/null
+++ b/symbols/shields/motorway_5x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_6x2.svg b/symbols/shields/motorway_6x2.svg
new file mode 100644
index 0000000000..950ba9b99b
--- /dev/null
+++ b/symbols/shields/motorway_6x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_6x3.svg b/symbols/shields/motorway_6x3.svg
new file mode 100644
index 0000000000..1501526357
--- /dev/null
+++ b/symbols/shields/motorway_6x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_6x4.svg b/symbols/shields/motorway_6x4.svg
new file mode 100644
index 0000000000..55397cbf97
--- /dev/null
+++ b/symbols/shields/motorway_6x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_7x2.svg b/symbols/shields/motorway_7x2.svg
new file mode 100644
index 0000000000..b93b4fcb79
--- /dev/null
+++ b/symbols/shields/motorway_7x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_7x3.svg b/symbols/shields/motorway_7x3.svg
new file mode 100644
index 0000000000..219e8e5480
--- /dev/null
+++ b/symbols/shields/motorway_7x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_7x4.svg b/symbols/shields/motorway_7x4.svg
new file mode 100644
index 0000000000..0c74453fed
--- /dev/null
+++ b/symbols/shields/motorway_7x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_8x2.svg b/symbols/shields/motorway_8x2.svg
new file mode 100644
index 0000000000..14cdafeb05
--- /dev/null
+++ b/symbols/shields/motorway_8x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_8x3.svg b/symbols/shields/motorway_8x3.svg
new file mode 100644
index 0000000000..9e683140d7
--- /dev/null
+++ b/symbols/shields/motorway_8x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_8x4.svg b/symbols/shields/motorway_8x4.svg
new file mode 100644
index 0000000000..869fbe93a8
--- /dev/null
+++ b/symbols/shields/motorway_8x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_9x2.svg b/symbols/shields/motorway_9x2.svg
new file mode 100644
index 0000000000..d03181ab7f
--- /dev/null
+++ b/symbols/shields/motorway_9x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_9x3.svg b/symbols/shields/motorway_9x3.svg
new file mode 100644
index 0000000000..b338ec96d4
--- /dev/null
+++ b/symbols/shields/motorway_9x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/motorway_9x4.svg b/symbols/shields/motorway_9x4.svg
new file mode 100644
index 0000000000..26e2b195de
--- /dev/null
+++ b/symbols/shields/motorway_9x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_10x2.svg b/symbols/shields/primary_10x2.svg
new file mode 100644
index 0000000000..31e7faf9d4
--- /dev/null
+++ b/symbols/shields/primary_10x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_10x3.svg b/symbols/shields/primary_10x3.svg
new file mode 100644
index 0000000000..5300559e2f
--- /dev/null
+++ b/symbols/shields/primary_10x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_10x4.svg b/symbols/shields/primary_10x4.svg
new file mode 100644
index 0000000000..8f5cdb79df
--- /dev/null
+++ b/symbols/shields/primary_10x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_11x2.svg b/symbols/shields/primary_11x2.svg
new file mode 100644
index 0000000000..4cee0e8a9f
--- /dev/null
+++ b/symbols/shields/primary_11x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_11x3.svg b/symbols/shields/primary_11x3.svg
new file mode 100644
index 0000000000..06a1708fe6
--- /dev/null
+++ b/symbols/shields/primary_11x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_11x4.svg b/symbols/shields/primary_11x4.svg
new file mode 100644
index 0000000000..6922ac3d4b
--- /dev/null
+++ b/symbols/shields/primary_11x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_1x2.svg b/symbols/shields/primary_1x2.svg
new file mode 100644
index 0000000000..430b01ca4d
--- /dev/null
+++ b/symbols/shields/primary_1x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_1x3.svg b/symbols/shields/primary_1x3.svg
new file mode 100644
index 0000000000..bb986a07fa
--- /dev/null
+++ b/symbols/shields/primary_1x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_1x4.svg b/symbols/shields/primary_1x4.svg
new file mode 100644
index 0000000000..ffb1da0ec8
--- /dev/null
+++ b/symbols/shields/primary_1x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_2x2.svg b/symbols/shields/primary_2x2.svg
new file mode 100644
index 0000000000..781e422dda
--- /dev/null
+++ b/symbols/shields/primary_2x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_2x3.svg b/symbols/shields/primary_2x3.svg
new file mode 100644
index 0000000000..e94cfb357f
--- /dev/null
+++ b/symbols/shields/primary_2x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_2x4.svg b/symbols/shields/primary_2x4.svg
new file mode 100644
index 0000000000..39207499e9
--- /dev/null
+++ b/symbols/shields/primary_2x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_3x2.svg b/symbols/shields/primary_3x2.svg
new file mode 100644
index 0000000000..61744981b0
--- /dev/null
+++ b/symbols/shields/primary_3x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_3x3.svg b/symbols/shields/primary_3x3.svg
new file mode 100644
index 0000000000..081902d58f
--- /dev/null
+++ b/symbols/shields/primary_3x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_3x4.svg b/symbols/shields/primary_3x4.svg
new file mode 100644
index 0000000000..58f9cfd1fb
--- /dev/null
+++ b/symbols/shields/primary_3x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_4x2.svg b/symbols/shields/primary_4x2.svg
new file mode 100644
index 0000000000..4faf4247f3
--- /dev/null
+++ b/symbols/shields/primary_4x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_4x3.svg b/symbols/shields/primary_4x3.svg
new file mode 100644
index 0000000000..ecc09fa878
--- /dev/null
+++ b/symbols/shields/primary_4x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_4x4.svg b/symbols/shields/primary_4x4.svg
new file mode 100644
index 0000000000..c5a12a529c
--- /dev/null
+++ b/symbols/shields/primary_4x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_5x2.svg b/symbols/shields/primary_5x2.svg
new file mode 100644
index 0000000000..a59bc0d6c1
--- /dev/null
+++ b/symbols/shields/primary_5x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_5x3.svg b/symbols/shields/primary_5x3.svg
new file mode 100644
index 0000000000..0a2d4b6000
--- /dev/null
+++ b/symbols/shields/primary_5x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_5x4.svg b/symbols/shields/primary_5x4.svg
new file mode 100644
index 0000000000..34aaabfbeb
--- /dev/null
+++ b/symbols/shields/primary_5x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_6x2.svg b/symbols/shields/primary_6x2.svg
new file mode 100644
index 0000000000..c4647357a7
--- /dev/null
+++ b/symbols/shields/primary_6x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_6x3.svg b/symbols/shields/primary_6x3.svg
new file mode 100644
index 0000000000..96aebabf5d
--- /dev/null
+++ b/symbols/shields/primary_6x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_6x4.svg b/symbols/shields/primary_6x4.svg
new file mode 100644
index 0000000000..e1360fd990
--- /dev/null
+++ b/symbols/shields/primary_6x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_7x2.svg b/symbols/shields/primary_7x2.svg
new file mode 100644
index 0000000000..84ce6098da
--- /dev/null
+++ b/symbols/shields/primary_7x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_7x3.svg b/symbols/shields/primary_7x3.svg
new file mode 100644
index 0000000000..08a9a48f9b
--- /dev/null
+++ b/symbols/shields/primary_7x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_7x4.svg b/symbols/shields/primary_7x4.svg
new file mode 100644
index 0000000000..cf56cc611f
--- /dev/null
+++ b/symbols/shields/primary_7x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_8x2.svg b/symbols/shields/primary_8x2.svg
new file mode 100644
index 0000000000..c12b3f5e11
--- /dev/null
+++ b/symbols/shields/primary_8x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_8x3.svg b/symbols/shields/primary_8x3.svg
new file mode 100644
index 0000000000..f0fba8a20f
--- /dev/null
+++ b/symbols/shields/primary_8x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_8x4.svg b/symbols/shields/primary_8x4.svg
new file mode 100644
index 0000000000..06c8705d99
--- /dev/null
+++ b/symbols/shields/primary_8x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_9x2.svg b/symbols/shields/primary_9x2.svg
new file mode 100644
index 0000000000..1a89a3c6ab
--- /dev/null
+++ b/symbols/shields/primary_9x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_9x3.svg b/symbols/shields/primary_9x3.svg
new file mode 100644
index 0000000000..57c57e5f46
--- /dev/null
+++ b/symbols/shields/primary_9x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/primary_9x4.svg b/symbols/shields/primary_9x4.svg
new file mode 100644
index 0000000000..5f7c586c84
--- /dev/null
+++ b/symbols/shields/primary_9x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_10x2.svg b/symbols/shields/secondary_10x2.svg
new file mode 100644
index 0000000000..be0935a57a
--- /dev/null
+++ b/symbols/shields/secondary_10x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_10x3.svg b/symbols/shields/secondary_10x3.svg
new file mode 100644
index 0000000000..ac58ec9c11
--- /dev/null
+++ b/symbols/shields/secondary_10x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_10x4.svg b/symbols/shields/secondary_10x4.svg
new file mode 100644
index 0000000000..b9afbee022
--- /dev/null
+++ b/symbols/shields/secondary_10x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_11x2.svg b/symbols/shields/secondary_11x2.svg
new file mode 100644
index 0000000000..e79d00604c
--- /dev/null
+++ b/symbols/shields/secondary_11x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_11x3.svg b/symbols/shields/secondary_11x3.svg
new file mode 100644
index 0000000000..16f52e22fe
--- /dev/null
+++ b/symbols/shields/secondary_11x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_11x4.svg b/symbols/shields/secondary_11x4.svg
new file mode 100644
index 0000000000..620e924518
--- /dev/null
+++ b/symbols/shields/secondary_11x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_1x2.svg b/symbols/shields/secondary_1x2.svg
new file mode 100644
index 0000000000..92e601459f
--- /dev/null
+++ b/symbols/shields/secondary_1x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_1x3.svg b/symbols/shields/secondary_1x3.svg
new file mode 100644
index 0000000000..d12fdb6cc0
--- /dev/null
+++ b/symbols/shields/secondary_1x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_1x4.svg b/symbols/shields/secondary_1x4.svg
new file mode 100644
index 0000000000..d46d7a0117
--- /dev/null
+++ b/symbols/shields/secondary_1x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_2x2.svg b/symbols/shields/secondary_2x2.svg
new file mode 100644
index 0000000000..02a6797763
--- /dev/null
+++ b/symbols/shields/secondary_2x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_2x3.svg b/symbols/shields/secondary_2x3.svg
new file mode 100644
index 0000000000..997347a3e3
--- /dev/null
+++ b/symbols/shields/secondary_2x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_2x4.svg b/symbols/shields/secondary_2x4.svg
new file mode 100644
index 0000000000..5070a311a6
--- /dev/null
+++ b/symbols/shields/secondary_2x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_3x2.svg b/symbols/shields/secondary_3x2.svg
new file mode 100644
index 0000000000..0d67319aca
--- /dev/null
+++ b/symbols/shields/secondary_3x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_3x3.svg b/symbols/shields/secondary_3x3.svg
new file mode 100644
index 0000000000..60c373916d
--- /dev/null
+++ b/symbols/shields/secondary_3x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_3x4.svg b/symbols/shields/secondary_3x4.svg
new file mode 100644
index 0000000000..1be64ee45e
--- /dev/null
+++ b/symbols/shields/secondary_3x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_4x2.svg b/symbols/shields/secondary_4x2.svg
new file mode 100644
index 0000000000..aaa82459eb
--- /dev/null
+++ b/symbols/shields/secondary_4x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_4x3.svg b/symbols/shields/secondary_4x3.svg
new file mode 100644
index 0000000000..1ce851dc99
--- /dev/null
+++ b/symbols/shields/secondary_4x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_4x4.svg b/symbols/shields/secondary_4x4.svg
new file mode 100644
index 0000000000..3b0d65a155
--- /dev/null
+++ b/symbols/shields/secondary_4x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_5x2.svg b/symbols/shields/secondary_5x2.svg
new file mode 100644
index 0000000000..2c1a6ea40b
--- /dev/null
+++ b/symbols/shields/secondary_5x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_5x3.svg b/symbols/shields/secondary_5x3.svg
new file mode 100644
index 0000000000..354d394ba3
--- /dev/null
+++ b/symbols/shields/secondary_5x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_5x4.svg b/symbols/shields/secondary_5x4.svg
new file mode 100644
index 0000000000..42e86fa664
--- /dev/null
+++ b/symbols/shields/secondary_5x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_6x2.svg b/symbols/shields/secondary_6x2.svg
new file mode 100644
index 0000000000..4408687c0b
--- /dev/null
+++ b/symbols/shields/secondary_6x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_6x3.svg b/symbols/shields/secondary_6x3.svg
new file mode 100644
index 0000000000..d6afdf15b3
--- /dev/null
+++ b/symbols/shields/secondary_6x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_6x4.svg b/symbols/shields/secondary_6x4.svg
new file mode 100644
index 0000000000..b0ed2525e2
--- /dev/null
+++ b/symbols/shields/secondary_6x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_7x2.svg b/symbols/shields/secondary_7x2.svg
new file mode 100644
index 0000000000..3e3e03772c
--- /dev/null
+++ b/symbols/shields/secondary_7x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_7x3.svg b/symbols/shields/secondary_7x3.svg
new file mode 100644
index 0000000000..6b1eba9f02
--- /dev/null
+++ b/symbols/shields/secondary_7x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_7x4.svg b/symbols/shields/secondary_7x4.svg
new file mode 100644
index 0000000000..876cd78a35
--- /dev/null
+++ b/symbols/shields/secondary_7x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_8x2.svg b/symbols/shields/secondary_8x2.svg
new file mode 100644
index 0000000000..836251661f
--- /dev/null
+++ b/symbols/shields/secondary_8x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_8x3.svg b/symbols/shields/secondary_8x3.svg
new file mode 100644
index 0000000000..2922686c68
--- /dev/null
+++ b/symbols/shields/secondary_8x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_8x4.svg b/symbols/shields/secondary_8x4.svg
new file mode 100644
index 0000000000..237ae3de20
--- /dev/null
+++ b/symbols/shields/secondary_8x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_9x2.svg b/symbols/shields/secondary_9x2.svg
new file mode 100644
index 0000000000..64ae0bbebe
--- /dev/null
+++ b/symbols/shields/secondary_9x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_9x3.svg b/symbols/shields/secondary_9x3.svg
new file mode 100644
index 0000000000..3bc7c80596
--- /dev/null
+++ b/symbols/shields/secondary_9x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/secondary_9x4.svg b/symbols/shields/secondary_9x4.svg
new file mode 100644
index 0000000000..8713f8d4f6
--- /dev/null
+++ b/symbols/shields/secondary_9x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_10x2.svg b/symbols/shields/tertiary_10x2.svg
new file mode 100644
index 0000000000..aff10b5b00
--- /dev/null
+++ b/symbols/shields/tertiary_10x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_10x3.svg b/symbols/shields/tertiary_10x3.svg
new file mode 100644
index 0000000000..c5fc4a8d3c
--- /dev/null
+++ b/symbols/shields/tertiary_10x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_10x4.svg b/symbols/shields/tertiary_10x4.svg
new file mode 100644
index 0000000000..c8eddf79dd
--- /dev/null
+++ b/symbols/shields/tertiary_10x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_11x2.svg b/symbols/shields/tertiary_11x2.svg
new file mode 100644
index 0000000000..81c1c229fd
--- /dev/null
+++ b/symbols/shields/tertiary_11x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_11x3.svg b/symbols/shields/tertiary_11x3.svg
new file mode 100644
index 0000000000..5b18b8504b
--- /dev/null
+++ b/symbols/shields/tertiary_11x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_11x4.svg b/symbols/shields/tertiary_11x4.svg
new file mode 100644
index 0000000000..ac1fec90a7
--- /dev/null
+++ b/symbols/shields/tertiary_11x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_1x2.svg b/symbols/shields/tertiary_1x2.svg
new file mode 100644
index 0000000000..49e201cd3b
--- /dev/null
+++ b/symbols/shields/tertiary_1x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_1x3.svg b/symbols/shields/tertiary_1x3.svg
new file mode 100644
index 0000000000..8f2b51e27c
--- /dev/null
+++ b/symbols/shields/tertiary_1x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_1x4.svg b/symbols/shields/tertiary_1x4.svg
new file mode 100644
index 0000000000..f5bffed918
--- /dev/null
+++ b/symbols/shields/tertiary_1x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_2x2.svg b/symbols/shields/tertiary_2x2.svg
new file mode 100644
index 0000000000..141d76966d
--- /dev/null
+++ b/symbols/shields/tertiary_2x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_2x3.svg b/symbols/shields/tertiary_2x3.svg
new file mode 100644
index 0000000000..f82418a414
--- /dev/null
+++ b/symbols/shields/tertiary_2x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_2x4.svg b/symbols/shields/tertiary_2x4.svg
new file mode 100644
index 0000000000..5d7eb09822
--- /dev/null
+++ b/symbols/shields/tertiary_2x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_3x2.svg b/symbols/shields/tertiary_3x2.svg
new file mode 100644
index 0000000000..44a3df3d49
--- /dev/null
+++ b/symbols/shields/tertiary_3x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_3x3.svg b/symbols/shields/tertiary_3x3.svg
new file mode 100644
index 0000000000..57c476f5d4
--- /dev/null
+++ b/symbols/shields/tertiary_3x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_3x4.svg b/symbols/shields/tertiary_3x4.svg
new file mode 100644
index 0000000000..607d0c4929
--- /dev/null
+++ b/symbols/shields/tertiary_3x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_4x2.svg b/symbols/shields/tertiary_4x2.svg
new file mode 100644
index 0000000000..7f6907d998
--- /dev/null
+++ b/symbols/shields/tertiary_4x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_4x3.svg b/symbols/shields/tertiary_4x3.svg
new file mode 100644
index 0000000000..a5e7f88392
--- /dev/null
+++ b/symbols/shields/tertiary_4x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_4x4.svg b/symbols/shields/tertiary_4x4.svg
new file mode 100644
index 0000000000..23892d87c7
--- /dev/null
+++ b/symbols/shields/tertiary_4x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_5x2.svg b/symbols/shields/tertiary_5x2.svg
new file mode 100644
index 0000000000..7cd283d107
--- /dev/null
+++ b/symbols/shields/tertiary_5x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_5x3.svg b/symbols/shields/tertiary_5x3.svg
new file mode 100644
index 0000000000..cf2718ac74
--- /dev/null
+++ b/symbols/shields/tertiary_5x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_5x4.svg b/symbols/shields/tertiary_5x4.svg
new file mode 100644
index 0000000000..0d69012a20
--- /dev/null
+++ b/symbols/shields/tertiary_5x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_6x2.svg b/symbols/shields/tertiary_6x2.svg
new file mode 100644
index 0000000000..1d4f5acd63
--- /dev/null
+++ b/symbols/shields/tertiary_6x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_6x3.svg b/symbols/shields/tertiary_6x3.svg
new file mode 100644
index 0000000000..a207a3c182
--- /dev/null
+++ b/symbols/shields/tertiary_6x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_6x4.svg b/symbols/shields/tertiary_6x4.svg
new file mode 100644
index 0000000000..0248947cc8
--- /dev/null
+++ b/symbols/shields/tertiary_6x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_7x2.svg b/symbols/shields/tertiary_7x2.svg
new file mode 100644
index 0000000000..d6baacc572
--- /dev/null
+++ b/symbols/shields/tertiary_7x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_7x3.svg b/symbols/shields/tertiary_7x3.svg
new file mode 100644
index 0000000000..aeb9b0a8b9
--- /dev/null
+++ b/symbols/shields/tertiary_7x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_7x4.svg b/symbols/shields/tertiary_7x4.svg
new file mode 100644
index 0000000000..3dd39e3c97
--- /dev/null
+++ b/symbols/shields/tertiary_7x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_8x2.svg b/symbols/shields/tertiary_8x2.svg
new file mode 100644
index 0000000000..9d4ea49d70
--- /dev/null
+++ b/symbols/shields/tertiary_8x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_8x3.svg b/symbols/shields/tertiary_8x3.svg
new file mode 100644
index 0000000000..3d2821f9ee
--- /dev/null
+++ b/symbols/shields/tertiary_8x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_8x4.svg b/symbols/shields/tertiary_8x4.svg
new file mode 100644
index 0000000000..111b9bc262
--- /dev/null
+++ b/symbols/shields/tertiary_8x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_9x2.svg b/symbols/shields/tertiary_9x2.svg
new file mode 100644
index 0000000000..16489073db
--- /dev/null
+++ b/symbols/shields/tertiary_9x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_9x3.svg b/symbols/shields/tertiary_9x3.svg
new file mode 100644
index 0000000000..ed1b4a11fe
--- /dev/null
+++ b/symbols/shields/tertiary_9x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/tertiary_9x4.svg b/symbols/shields/tertiary_9x4.svg
new file mode 100644
index 0000000000..c5069273d4
--- /dev/null
+++ b/symbols/shields/tertiary_9x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_10x2.svg b/symbols/shields/trunk_10x2.svg
new file mode 100644
index 0000000000..912c42c533
--- /dev/null
+++ b/symbols/shields/trunk_10x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_10x3.svg b/symbols/shields/trunk_10x3.svg
new file mode 100644
index 0000000000..343834f074
--- /dev/null
+++ b/symbols/shields/trunk_10x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_10x4.svg b/symbols/shields/trunk_10x4.svg
new file mode 100644
index 0000000000..e681955179
--- /dev/null
+++ b/symbols/shields/trunk_10x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_11x2.svg b/symbols/shields/trunk_11x2.svg
new file mode 100644
index 0000000000..ea9b8af272
--- /dev/null
+++ b/symbols/shields/trunk_11x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_11x3.svg b/symbols/shields/trunk_11x3.svg
new file mode 100644
index 0000000000..7a0bc0596a
--- /dev/null
+++ b/symbols/shields/trunk_11x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_11x4.svg b/symbols/shields/trunk_11x4.svg
new file mode 100644
index 0000000000..4d4cf4bb6c
--- /dev/null
+++ b/symbols/shields/trunk_11x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_1x2.svg b/symbols/shields/trunk_1x2.svg
new file mode 100644
index 0000000000..98c44866e8
--- /dev/null
+++ b/symbols/shields/trunk_1x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_1x3.svg b/symbols/shields/trunk_1x3.svg
new file mode 100644
index 0000000000..3c68953d55
--- /dev/null
+++ b/symbols/shields/trunk_1x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_1x4.svg b/symbols/shields/trunk_1x4.svg
new file mode 100644
index 0000000000..e56905f4ef
--- /dev/null
+++ b/symbols/shields/trunk_1x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_2x2.svg b/symbols/shields/trunk_2x2.svg
new file mode 100644
index 0000000000..c2b60aebe9
--- /dev/null
+++ b/symbols/shields/trunk_2x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_2x3.svg b/symbols/shields/trunk_2x3.svg
new file mode 100644
index 0000000000..d24f803ef2
--- /dev/null
+++ b/symbols/shields/trunk_2x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_2x4.svg b/symbols/shields/trunk_2x4.svg
new file mode 100644
index 0000000000..422f2dd846
--- /dev/null
+++ b/symbols/shields/trunk_2x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_3x2.svg b/symbols/shields/trunk_3x2.svg
new file mode 100644
index 0000000000..8bd3a5b736
--- /dev/null
+++ b/symbols/shields/trunk_3x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_3x3.svg b/symbols/shields/trunk_3x3.svg
new file mode 100644
index 0000000000..2ad03f3f3d
--- /dev/null
+++ b/symbols/shields/trunk_3x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_3x4.svg b/symbols/shields/trunk_3x4.svg
new file mode 100644
index 0000000000..ff6becb9a8
--- /dev/null
+++ b/symbols/shields/trunk_3x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_4x2.svg b/symbols/shields/trunk_4x2.svg
new file mode 100644
index 0000000000..68e452721c
--- /dev/null
+++ b/symbols/shields/trunk_4x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_4x3.svg b/symbols/shields/trunk_4x3.svg
new file mode 100644
index 0000000000..b1e899e77b
--- /dev/null
+++ b/symbols/shields/trunk_4x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_4x4.svg b/symbols/shields/trunk_4x4.svg
new file mode 100644
index 0000000000..f330d27afa
--- /dev/null
+++ b/symbols/shields/trunk_4x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_5x2.svg b/symbols/shields/trunk_5x2.svg
new file mode 100644
index 0000000000..6ef419d104
--- /dev/null
+++ b/symbols/shields/trunk_5x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_5x3.svg b/symbols/shields/trunk_5x3.svg
new file mode 100644
index 0000000000..b41feabb9b
--- /dev/null
+++ b/symbols/shields/trunk_5x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_5x4.svg b/symbols/shields/trunk_5x4.svg
new file mode 100644
index 0000000000..eb416b48ad
--- /dev/null
+++ b/symbols/shields/trunk_5x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_6x2.svg b/symbols/shields/trunk_6x2.svg
new file mode 100644
index 0000000000..56a00ccc19
--- /dev/null
+++ b/symbols/shields/trunk_6x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_6x3.svg b/symbols/shields/trunk_6x3.svg
new file mode 100644
index 0000000000..b3253194ff
--- /dev/null
+++ b/symbols/shields/trunk_6x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_6x4.svg b/symbols/shields/trunk_6x4.svg
new file mode 100644
index 0000000000..0b8e3f0cd5
--- /dev/null
+++ b/symbols/shields/trunk_6x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_7x2.svg b/symbols/shields/trunk_7x2.svg
new file mode 100644
index 0000000000..cae79f339c
--- /dev/null
+++ b/symbols/shields/trunk_7x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_7x3.svg b/symbols/shields/trunk_7x3.svg
new file mode 100644
index 0000000000..b68c25765c
--- /dev/null
+++ b/symbols/shields/trunk_7x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_7x4.svg b/symbols/shields/trunk_7x4.svg
new file mode 100644
index 0000000000..e98e374db5
--- /dev/null
+++ b/symbols/shields/trunk_7x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_8x2.svg b/symbols/shields/trunk_8x2.svg
new file mode 100644
index 0000000000..225b563b21
--- /dev/null
+++ b/symbols/shields/trunk_8x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_8x3.svg b/symbols/shields/trunk_8x3.svg
new file mode 100644
index 0000000000..7ad16ac922
--- /dev/null
+++ b/symbols/shields/trunk_8x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_8x4.svg b/symbols/shields/trunk_8x4.svg
new file mode 100644
index 0000000000..d8e01374b5
--- /dev/null
+++ b/symbols/shields/trunk_8x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_9x2.svg b/symbols/shields/trunk_9x2.svg
new file mode 100644
index 0000000000..f37cd3408f
--- /dev/null
+++ b/symbols/shields/trunk_9x2.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_9x3.svg b/symbols/shields/trunk_9x3.svg
new file mode 100644
index 0000000000..c2202e43af
--- /dev/null
+++ b/symbols/shields/trunk_9x3.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/shields/trunk_9x4.svg b/symbols/shields/trunk_9x4.svg
new file mode 100644
index 0000000000..648e6d5e93
--- /dev/null
+++ b/symbols/shields/trunk_9x4.svg
@@ -0,0 +1,5 @@
+
diff --git a/water.mss b/water.mss
index c1068c2404..591f024ca1 100644
--- a/water.mss
+++ b/water.mss
@@ -14,27 +14,40 @@
}
[waterway = 'dock'],
- [waterway = 'mill_pond'],
[waterway = 'canal'] {
[zoom >= 9]::waterway {
- polygon-gamma: 0.75;
polygon-fill: @water-color;
+ [way_pixels >= 4] {
+ polygon-gamma: 0.75;
+ }
+ [way_pixels >= 64] {
+ polygon-gamma: 0.6;
+ }
}
}
[landuse = 'basin'][zoom >= 7]::landuse {
- polygon-gamma: 0.75;
polygon-fill: @water-color;
+ [way_pixels >= 4] {
+ polygon-gamma: 0.75;
+ }
+ [way_pixels >= 64] {
+ polygon-gamma: 0.6;
+ }
}
[natural = 'lake']::natural,
[natural = 'water']::natural,
[landuse = 'reservoir']::landuse,
- [waterway = 'riverbank']::waterway,
- [landuse = 'water']::water {
+ [waterway = 'riverbank']::waterway {
[zoom >= 6] {
polygon-fill: @water-color;
- polygon-gamma: 0.75;
+ [way_pixels >= 4] {
+ polygon-gamma: 0.75;
+ }
+ [way_pixels >= 64] {
+ polygon-gamma: 0.6;
+ }
}
}
@@ -90,7 +103,7 @@
}
}
-#water-lines {
+.water-lines {
[waterway = 'weir'][zoom >= 15] {
line-color: #aaa;
line-width: 2;
@@ -109,6 +122,16 @@
[waterway = 'canal'][zoom >= 12],
[waterway = 'river'][zoom >= 12] {
+ [bridge = 'yes'] {
+ [zoom >= 14] {
+ bridgecasing/line-color: black;
+ bridgecasing/line-join: round;
+ bridgecasing/line-width: 6;
+ [zoom >= 15] { bridgecasing/line-width: 7; }
+ [zoom >= 17] { bridgecasing/line-width: 11; }
+ [zoom >= 18] { bridgecasing/line-width: 13; }
+ }
+ }
line-color: @water-color;
line-width: 2;
[zoom >= 13] { line-width: 3; }
@@ -135,6 +158,18 @@
[waterway = 'ditch'],
[waterway = 'drain'] {
[zoom >= 13] {
+ [bridge = 'yes'] {
+ [zoom >= 14] {
+ bridgecasing/line-color: black;
+ bridgecasing/line-join: round;
+ bridgecasing/line-width: 3;
+ [waterway = 'stream'][zoom >= 15] { bridgecasing/line-width: 4; }
+ bridgeglow/line-color: white;
+ bridgeglow/line-join: round;
+ bridgeglow/line-width: 2;
+ [waterway = 'stream'][zoom >= 15] { bridgeglow/line-width: 3; }
+ }
+ }
line-width: 1;
line-color: @water-color;
[waterway = 'stream'][zoom >= 15] {
@@ -169,22 +204,6 @@
}
}
-#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]";