diff --git a/CHANGELOG.md b/CHANGELOG.md
index 90a23dcf0a..5c4ac64647 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,17 +1,18 @@
-## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v5.3.1...master)
-
-### Changes
-- Fix type in text-line-spacing (#4455)
-- Shield dimensions (#4453)
-- Updated to work with pyscopg2 version 2.9.1 (#4451)
-- Fix advertising column shape (#4424)
-- Simplified version fixing tourism=information (#4420)
-- Make text for subway stations render at z>=15 (#4392)
-- Update README.md on v5 (#4357)
-- Windows line ending fix (#4330)
-- Documentation fixes (#4310)
-- De-emphasize parking=street_side (#4301)
-- Update DB dockerfile to use the postgis image (#4294)
+## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v5.4.0...master)
+
+## [v5.4.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v5.3.1...v5.4.0) - 2021-09-22
+### Changes
+- Added a new `planet_osm_line_label` index (#4381)
+- Updated Docker development setup to use offical PostGIS images (#4294)
+- Fixed endline conversion issues with python setup scripts on Windows (#4330)
+- Added detailed rendering of golf courses (#4381, #4467)
+- De-emphasized street-side parking (#4301)
+- Changed subway stations to start text rendering at z15 (#4392)
+- Updated road shield generation scripts to Python 3 (#4453)
+- Updated external data loading script to support pyscopg2 2.9.1 (#4451)
+- Stopped displaying tourism=information with unknown information values
+- Switched the Natural Earth URL to point at its new location (#4466)
+- Added more logging to the external data loading script (#4472)
## [v5.3.1](https://github.com/gravitystorm/openstreetmap-carto/compare/v5.3.0...v5.3.1) - 2021-02-04
### Changes
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index eb45275b10..9f8c8242c3 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -62,7 +62,7 @@ When using the OpenStreetMap Carto spaces you should act in the spirit of the va
The OpenStreetMap Carto maintainers are responsible for handling conduct-related issues. Their goal is to de-escalate conflicts and try to resolve issues to the satisfaction of all parties.
-If you encounter a conduct-related issue, you should report it to the maintainers by sending them [all an email](mailto:openstreetmap-carto@gravitystorm.co.uk,penorman@mac.com,info@matthijsmelissen.nl,matkoniecz@gmail.com,chris_hormann@gmx.de,daniel@xn--ko-wla.pl,sommerluk@gmail.com,joseph.eisenberg@gmail.com).
+If you encounter a conduct-related issue, you should report it to the maintainers by sending them [all an email](mailto:openstreetmap-carto@gravitystorm.co.uk,osm@paulnorman.ca,chris_hormann@gmx.de,daniel@xn--ko-wla.pl,sommerluk@gmail.com,joseph.eisenberg@gmail.com).
**Note that the goal of the Code of Conduct and the maintainers is to resolve conflicts in the most harmonious way possible.** We hope that in most cases issues may be resolved through polite discussion and mutual agreement. Bans and other forceful measures are to be employed only as a last resort.
@@ -77,6 +77,6 @@ Changes to the Code of Conduct should be proposed as pull requests.
## Acknowledgements
-This document is based on the [Go Code of Conduct](https://golang.org/conduct), which in turn has parts derived from the Code of Conduct documents of the Django, FreeBSD, and Rust projects.
+This document is based on the [Go Community Code of Conduct](https://go.dev/conduct), which in turn has parts derived from the Code of Conduct documents of the Django, FreeBSD, and Rust projects.
This documented is licensed under the Creative Commons Attribution 3.0 License.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 725ccf7c3e..54a26707e6 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -34,7 +34,7 @@ images might not be sufficient and a demo layer is necessary. pnorman has a serv
## Easy pickings
-Some [easy issues](https://github.com/gravitystorm/openstreetmap-carto/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) have been selected
+Some [easy issues](https://github.com/gravitystorm/openstreetmap-carto/labels/good%20first%20issue) have been selected
that are particularly suitable for new contributors to get familiar with the project's code base and the contribution process.
## Editing layers
@@ -148,8 +148,8 @@ Because SQL within JSON or YAML will not generally be syntax highlighted, indent
### External icon design resources
The project's goals and design philsophy are different from other projects, but some external resources with general information about icon design are:
-* [Maki Icons Design Guidelines](https://www.mapbox.com/maki-icons/guidelines/)
-* [GNOME Icon Design Guildelines](https://developer.gnome.org/hig/stable/icons-and-artwork.html.en)
+* [Maki Icons Design Guidelines](https://labs.mapbox.com/maki-icons/guidelines/)
+* [GNOME Icon Design Guildelines](https://developer.gnome.org/hig/guidelines/ui-icons.html)
## Typography
diff --git a/DOCKER.md b/DOCKER.md
index 0fc7418cf6..0e076e6a8f 100644
--- a/DOCKER.md
+++ b/DOCKER.md
@@ -1,13 +1,13 @@
# Running OpenStreetMap Carto with Docker
-[Docker](https://docker.com) is a virtualized environment running a [_Docker demon_](https://docs.docker.com/engine/docker-overview), in which you can run software without altering your host system permanently. The software components run in _containers_ that are easy to setup and tear down individually. The Docker demon can use operating-system-level virtualization (Linux, Windows) or a virtual machine (macOS, Windows).
+[Docker](https://www.docker.com/) is a virtualized environment running a [_Docker demon_](https://docs.docker.com/get-started/overview/), in which you can run software without altering your host system permanently. The software components run in _containers_ that are easy to setup and tear down individually. The Docker demon can use operating-system-level virtualization (Linux, Windows) or a virtual machine (macOS, Windows).
This allows to set up a development environment for OpenStreetMap Carto easily. Specifically, this environment consists of a
PostgreSQL database to store the OpenStreetMap data and [Kosmtik](https://github.com/kosmtik/kosmtik) for previewing the style.
## Prerequisites
-Docker is available for Linux, macOS and Windows. [Install](https://www.docker.com/get-docker) the software packaged for your host system in order
+Docker is available for Linux, macOS and Windows. [Install](https://www.docker.com/products/docker-desktop/) the software packaged for your host system in order
to be able to run Docker containers. You also need Docker Compose, which should be available once you installed
Docker itself. Otherwise you need to [install Docker Compose manually](https://docs.docker.com/compose/install/).
@@ -29,7 +29,7 @@ Read on below to get the details.
## Repositories
-Instructions above will clone main OpenStreetMap Carto repository. To test your own changes you should [fork](https://help.github.com/articles/fork-a-repo/) gravitystorm/openstreetmap-carto repository and [clone your fork](https://help.github.com/articles/cloning-a-repository/).
+Instructions above will clone main OpenStreetMap Carto repository. To test your own changes you should [fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) gravitystorm/openstreetmap-carto repository and [clone your fork](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository).
This OpenStreetMap Carto repository needs to be a directory that is shared between your host system and the Docker virtual machine. Home directories are shared by default; if your repository is in another place you need to add this to the Docker sharing list (e.g. macOS: Docker Preferences > File Sharing; Windows: Docker Settings > Shared Drives).
diff --git a/INSTALL.md b/INSTALL.md
index a568723e4e..56bf12ef33 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,9 +1,9 @@
# Installation
-This document describes how to manually configure your system for running OpenStreetMap Carto. If you prefer quick, platform independent setup for a development environment, without the need to install and configure tools by hand, follow a Docker installation guide in [DOCKER.md](https://github.com/gravitystorm/openstreetmap-carto/blob/master/DOCKER.md).
+This document describes how to manually configure your system for running OpenStreetMap Carto. If you prefer quick, platform independent setup for a development environment, without the need to install and configure tools by hand, follow a Docker installation guide in [DOCKER.md](DOCKER.md).
## OpenStreetMap data
-You need OpenStreetMap data loaded into a PostGIS database (see below for [dependencies](#dependencies)). These stylesheets expect a database generated with osm2pgsql using the pgsql backend (table names of `planet_osm_point`, etc), the default database name (`gis`), and the [lua transforms](https://github.com/openstreetmap/osm2pgsql/blob/master/docs/lua.md) documented in the instructions below.
+You need OpenStreetMap data loaded into a PostGIS database (see below for [dependencies](#dependencies)). These stylesheets expect a database generated with osm2pgsql using the pgsql backend (table names of `planet_osm_point`, etc), the default database name (`gis`), and the [lua transforms](https://osm2pgsql.org/doc/manual.html#lua-tag-transformations) documented in the instructions below.
Start by creating a database
@@ -24,7 +24,7 @@ then grab some OSM data. It's probably easiest to grab an PBF of OSM data from [
osm2pgsql -G --hstore --style openstreetmap-carto.style --tag-transform-script openstreetmap-carto.lua -d gis ~/path/to/data.osm.pbf
```
-You can find a more detailed guide to setting up a database and loading data with osm2pgsql at [switch2osm.org](https://switch2osm.org/manually-building-a-tile-server-16-04-2-lts/).
+You can find a more detailed guide to setting up a database and loading data with osm2pgsql at [switch2osm.org](https://switch2osm.org/serving-tiles/manually-building-a-tile-server-16-04-2-lts/).
### Custom indexes
Custom indexes are required for rendering performance and are essential on full planet databases.
@@ -51,7 +51,7 @@ DejaVu Sans is used as an optional fallback font for systems without Noto Sans.
Hanazono is used a fallback for seldom used CJK characters that are not covered by Noto.
-Unifont is used as a last resort fallback, with it's excellent coverage, common presence on machines, and ugly look. For compatibility reasons, we support two Linux-distributions-specific versions of Unifont, therefor it's expected that you *always* get a warning about a missing Unifont version.
+Unifont is used as a last resort fallback, with it's excellent coverage, common presence on machines, and ugly look. For compatibility reasons, we support two Linux-distributions-specific versions of Unifont, therefore it's expected that you *always* get a warning about a missing Unifont version.
If you do not install all the fonts, the rendering itself will not break, but missing glyphs will be ugly.
@@ -65,9 +65,9 @@ On Ubuntu 16.04 or Debian Testing you can download and install most of the requi
sudo apt-get install fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted fonts-hanazono ttf-unifont
```
-Noto Emoji Regular (*not* Noto Color Emoji) can be downloaded [from the Noto Emoji repository](https://github.com/googlei18n/noto-emoji).
+Noto Emoji Regular (*not* Noto Color Emoji) can be downloaded [from the Noto Emoji repository](https://github.com/googlefonts/noto-emoji).
-It might be useful to have a more recent version of the fonts for [rare non-latin scripts](#non-latin-scripts). The current upstream font release has also some more scripts and style variants than in the Ubuntu package. It can be installed [from source](https://github.com/googlei18n/noto-fonts/blob/master/FAQ.md#where-are-the-fonts).
+It might be useful to have a more recent version of the fonts for [rare non-latin scripts](#non-latin-scripts). The current upstream font release has also some more scripts and style variants than in the Ubuntu package. It can be installed [from source](https://github.com/googlefonts/noto-fonts/blob/master/FAQ.md#where-are-the-fonts).
DejaVu is packaged as `fonts-dejavu-core`.
@@ -75,8 +75,8 @@ DejaVu is packaged as `fonts-dejavu-core`.
The fonts can be downloaded here:
-* [Noto homepage](https://www.google.com/get/noto/) and [Noto github repositories](https://github.com/googlei18n?utf8=%E2%9C%93&q=noto)
-* [DejaVu homepage](http://dejavu-fonts.org/)
+* [Noto homepage](https://www.google.com/get/noto/) and [Noto github repositories](https://github.com/googlefonts?utf8=%E2%9C%93&q=noto)
+* [DejaVu homepage](https://dejavu-fonts.org/)
* [Hanazono homepage](http://fonts.jp/hanazono/)
* [Unifont homepage](http://unifoundry.com/)
@@ -101,7 +101,7 @@ To display any map a database containing OpenStreetMap data and some utilities a
* [PostgreSQL](https://www.postgresql.org/)
* [PostGIS](https://postgis.net/)
-* [osm2pgsql](https://github.com/openstreetmap/osm2pgsql#installing) to [import your data](https://switch2osm.org/loading-osm-data/) into a PostGIS database
+* [osm2pgsql](https://github.com/openstreetmap/osm2pgsql#installing) to [import your data](https://switch2osm.org/serving-tiles/updating-as-people-edit/) into a PostGIS database
* Python 3 with the psycopg2, yaml, and requests libraries (`python3-psycopg2`, `python3-yaml`, `python3-requests`, `python3-requests-file` packages on Debian-derived systems)
* `ogr2ogr` for loading shapefiles into the database (`gdal-bin` on Debian-derived systems)
@@ -110,7 +110,7 @@ To display any map a database containing OpenStreetMap data and some utilities a
Some colours, SVGs and other files are generated with helper scripts. Not all users will need these dependencies
* Python and Ruby to run helper scripts
-* [Color Math](https://github.com/gtaylor/python-colormath) and [numpy](http://www.numpy.org/) if running generate_road_colors.py helper script (may be obtained with `pip install colormath numpy`)
+* [Color Math](https://github.com/gtaylor/python-colormath) and [numpy](https://numpy.org/) if running generate_road_colors.py helper script (may be obtained with `pip install colormath numpy`)
### Additional deployment dependencies
diff --git a/README.md b/README.md
index 3829e13bef..498342abe8 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
![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](https://www.openstreetmap.org).
+These are the CartoCSS map stylesheets for the Standard map layer on [OpenStreetMap.org](https://www.openstreetmap.org/).
The general purpose, the cartographic design goals and guidelines for this style are outlined in [CARTOGRAPHY.md](CARTOGRAPHY.md).
@@ -10,7 +10,7 @@ These stylesheets can be used in your own cartography projects, and are designed
to be easily customised. They work with [Kosmtik](https://github.com/kosmtik/kosmtik)
and also with the command-line [CartoCSS](https://github.com/mapbox/carto) processor.
-Since August 2013 these stylesheets have been used on the OSMF tileservers (tile.openstreetmap.org), and
+Since August 2013 these stylesheets have been used on the [OSMF tileservers](https://operations.osmfoundation.org/policies/tiles/) (tile.openstreetmap.org), and
are updated from each point release. They supersede the previous [XML-based stylesheets](https://github.com/openstreetmap/mapnik-stylesheets).
# Installation
@@ -37,7 +37,7 @@ cartographic project you can expect the following:
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.
+ dependencies will trigger a major version change.
# Roadmap
@@ -60,14 +60,11 @@ versions.
Care has been 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.
-
-[issues]: https://github.com/gravitystorm/openstreetmap-carto/issues
-[cleverness]: https://github.com/openstreetmap/mapnik-stylesheets/blob/master/inc/settings.xml.inc.template#L16
+(e.g. [interpolated entities](https://github.com/openstreetmap/mapnik-stylesheets/blob/master/inc/settings.xml.inc.template#L16)) can discourage contributions.
## Database schema change (v4.x)
-The v4.x series includes [osm2pgsql lua transforms](https://github.com/openstreetmap/osm2pgsql/blob/master/docs/lua.md)
+The v4.x series includes [osm2pgsql lua transforms](https://osm2pgsql.org/doc/manual.html#lua-tag-transformations)
and a hstore column with all other tags, allowing use of more OpenStreetMap data. Users need
to reload their databases, v3.x compatibility is not maintained.
@@ -76,7 +73,7 @@ to reload their databases, v3.x compatibility is not maintained.
The v5.x series updates Lua tag transforms, linestring and polygon decisions have changed.
-There are over [400 open requests][issues], some that have been open for years.
+There are over [500 open requests](https://github.com/gravitystorm/openstreetmap-carto/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.
@@ -85,18 +82,22 @@ that need some cartographic judgement.
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/giggls/openstreetmap-carto-de)
+* [OSM Bright](https://github.com/mapbox/osm-bright)
+* [XML-based stylesheets](https://github.com/openstreetmap/mapnik-stylesheets)
+* [OpenStreetMap "FR" Carto](https://github.com/cquest/osmfr-cartocss)
+* [OpenStreetMap Carto German](https://github.com/giggls/openstreetmap-carto-de)
# Maintainers
-* Andy Allan [@gravitystorm](https://github.com/gravitystorm/)
-* Matthijs Melissen [@matthijsmelissen](https://github.com/matthijsmelissen/)
-* Paul Norman [@pnorman](https://github.com/pnorman/)
-* Mateusz Konieczny [@matkoniecz](https://github.com/matkoniecz/)
+* Andy Allan [@gravitystorm](https://github.com/gravitystorm)
+* Paul Norman [@pnorman](https://github.com/pnorman)
* Daniel Koć [@kocio-pl](https://github.com/kocio-pl)
* Christoph Hormann [@imagico](https://github.com/imagico)
* Lukas Sommer [@sommerluk](https://github.com/sommerluk)
* Joseph Eisenberg [@jeisenbe](https://github.com/jeisenbe)
+
+## Previous maintainers
+
+* Michael Glanznig [@nebulon42](https://github.com/nebulon42)
+* Matthijs Melissen [@matthijsmelissen](https://github.com/matthijsmelissen)
+* Mateusz Konieczny [@matkoniecz](https://github.com/matkoniecz)
diff --git a/docker-compose.yml b/docker-compose.yml
index 60a2d09fea..be99a123ae 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,6 +2,7 @@ version: '2'
services:
kosmtik:
image: kosmtik:v1
+ platform: linux/amd64
build:
context: .
dockerfile: Dockerfile
@@ -19,8 +20,6 @@ services:
build:
context: .
dockerfile: Dockerfile.db
- ports:
- - "127.0.0.1:5432:5432"
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
- PG_WORK_MEM
diff --git a/openstreetmap-carto.lua b/openstreetmap-carto.lua
index 8dbca62a64..8fc2c85212 100644
--- a/openstreetmap-carto.lua
+++ b/openstreetmap-carto.lua
@@ -121,7 +121,7 @@ local delete_tags = {
'dcgis:gis_id',
-- Building Identification Number (New York, US)
'nycdoitt:bin',
- -- Chicago Building Inport (US)
+ -- Chicago Building Import (US)
'chicago:building_id',
-- Louisville, Kentucky/Building Outlines Import (US)
'lojic:bgnum',
diff --git a/openstreetmap-carto.style b/openstreetmap-carto.style
index 77134cb705..0a30add22d 100644
--- a/openstreetmap-carto.style
+++ b/openstreetmap-carto.style
@@ -1,5 +1,5 @@
# This is the osm2pgsql .style file for openstreetmap-carto.
-# It is inteded to be used with openstreetmap-carto.lua and osm2pgsql Lua
+# It is intended to be used with openstreetmap-carto.lua and osm2pgsql Lua
# transforms. Full usage details are in INSTALL.md
# Among things, this means that the linear vs polygon distinction in this file
# doesn't matter, because that is set in the Lua and this file is only used for
diff --git a/project.mml b/project.mml
index 7fb3d47227..2a685232c8 100644
--- a/project.mml
+++ b/project.mml
@@ -1483,7 +1483,8 @@ Layer:
WHEN (tags ? 'ele') AND tags->'ele' ~ '^-?\d{1,4}(\.\d+)?$'
AND ("natural" IN ('peak', 'volcano', 'saddle')
OR tourism = 'alpine_hut' OR (tourism = 'information' AND tags->'information' = 'guidepost')
- OR amenity = 'shelter')
+ OR amenity = 'shelter'
+ OR tags->'mountain_pass' = 'yes')
THEN CONCAT(REPLACE(ROUND((tags->'ele')::NUMERIC)::TEXT, '-', U&'\2212'), U&'\00A0', 'm') END,
CASE
WHEN (tags ? 'height') AND tags->'height' ~ '^\d{1,3}(\.\d+)?$'
@@ -1529,6 +1530,7 @@ Layer:
'natural_' || CASE WHEN "natural" IN ('wood', 'water', 'mud', 'wetland', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath',
'grassland', 'scrub', 'beach', 'glacier', 'tree', 'strait', 'cape')
THEN "natural" END,
+ 'mountain_pass' || CASE WHEN tags->'mountain_pass' IN ('yes') THEN '' END, -- after natural=saddle to give priority to that tag on the same node
'waterway_' || CASE WHEN "waterway" IN ('waterfall') AND way_area IS NULL THEN waterway END,
'place_' || CASE WHEN place IN ('island', 'islet', 'square') THEN place END,
'historic_' || CASE WHEN historic IN ('memorial', 'monument', 'archaeological_site', 'fort', 'castle', 'manor', 'city_gate')
@@ -1557,7 +1559,8 @@ Layer:
) AS feature,
access,
CASE
- WHEN "natural" IN ('peak', 'volcano', 'saddle') THEN
+ WHEN "natural" IN ('peak', 'volcano', 'saddle')
+ OR tags->'mountain_pass' = 'yes' THEN
CASE
WHEN tags->'ele' ~ '^-?\d{1,4}(\.\d+)?$' THEN (tags->'ele')::NUMERIC
END
diff --git a/scripts/get-external-data.py b/scripts/get-external-data.py
index 4cd1321f5c..c5a444780d 100755
--- a/scripts/get-external-data.py
+++ b/scripts/get-external-data.py
@@ -50,7 +50,7 @@ def __init__(self, name, conn, temp_schema, schema, metadata_table):
self._dst_schema = schema
self._metadata_table = metadata_table
- # Clean up the temporary schema in preperation for loading
+ # Clean up the temporary schema in preparation for loading
def clean_temp(self):
with self._conn.cursor() as cur:
cur.execute('''DROP TABLE IF EXISTS "{temp_schema}"."{name}"'''
@@ -175,6 +175,8 @@ def main():
else:
logging.basicConfig(level=logging.INFO)
+ logging.info("Starting load of external data into database")
+
with open(opts.config) as config_file:
config = yaml.safe_load(config_file)
data_dir = opts.data or config["settings"]["data_dir"]
@@ -231,15 +233,20 @@ def main():
else:
headers = {}
+ logging.info(" Fetching {}".format(source["url"]))
download = s.get(source["url"], headers=headers)
download.raise_for_status()
- if (download.status_code == 200):
+ if download.status_code == requests.codes.ok:
if "Last-Modified" in download.headers:
new_last_modified = download.headers["Last-Modified"]
else:
new_last_modified = None
+
+ logging.info(" Download complete ({} bytes)".format(len(download.content)))
+
if "archive" in source and source["archive"]["format"] == "zip":
+ logging.info(" Decompressing file")
zip = zipfile.ZipFile(io.BytesIO(download.content))
for member in source["archive"]["files"]:
zip.extract(member, workingdir)
@@ -268,6 +275,7 @@ def main():
ogrcommand += [ogrpg,
os.path.join(workingdir, source["file"])]
+ logging.info(" Importing into database")
logging.debug("running {}".format(
subprocess.list2cmdline(ogrcommand)))
@@ -285,13 +293,18 @@ def main():
raise RuntimeError(
"ogr2ogr error when loading table {}".format(name))
+ logging.info(" Import complete")
+
this_table.index()
if renderuser is not None:
this_table.grant_access(renderuser)
this_table.replace(new_last_modified)
+ elif download.status_code == requests.codes.not_modified:
+ logging.info(" Table {} did not require updating".format(name))
else:
- logging.info(
- "Table {} did not require updating".format(name))
+ logging.critical(" Unexpected response code ({}".format(download.status_code))
+ logging.critical(" Table {} was not updated".format(name))
+
if conn:
conn.close()
diff --git a/scripts/indexes.py b/scripts/indexes.py
index ed27b01c58..02e721f01f 100755
--- a/scripts/indexes.py
+++ b/scripts/indexes.py
@@ -49,7 +49,7 @@ def reindex_cb(table, name, function, where):
if not args.concurrent:
print('REINDEX planet_osm_{table}_{name};'.format(table=table, name=name))
else:
- # Rebuilding indexes concurently requires making a new index, dropping the old one, and renaming.
+ # Rebuilding indexes concurrently requires making a new index, dropping the old one, and renaming.
print('ALTER INDEX planet_osm_{table}_{name} RENAME TO planet_osm_{table}_{name}_old;'.format(table=table, name=name))
cb(table, name, function, where)
print('DROP INDEX planet_osm_{table}_{name}_old;\n'.format(table=table, name=name))
diff --git a/style/amenity-points.mss b/style/amenity-points.mss
index abfd6e04b0..a985fc81c3 100644
--- a/style/amenity-points.mss
+++ b/style/amenity-points.mss
@@ -145,22 +145,23 @@
}
[feature = 'highway_bus_stop'] {
- [zoom >= 16] {
+ [zoom >= 16][zoom < 17] {
marker-file: url('symbols/square.svg');
marker-fill: @transportation-icon;
marker-width: 6;
marker-clip: false;
}
[zoom >= 17] {
- marker-file: url('symbols/highway/bus_stop.12.svg');
- marker-width: 12;
+ marker-file: url('symbols/highway/bus_stop.svg');
+ marker-fill: @transportation-icon;
+ marker-clip: false;
}
}
[feature = 'highway_elevator'][zoom >= 18] {
[access = null],
[access = 'yes'] {
- marker-file: url('symbols/highway/elevator.12.svg');
+ marker-file: url('symbols/highway/elevator.svg');
marker-fill: @transportation-icon;
}
}
@@ -192,7 +193,7 @@
}
[feature = 'highway_traffic_signals'][zoom >= 17] {
- marker-file: url('symbols/highway/traffic_light.13.svg');
+ marker-file: url('symbols/highway/traffic_light.svg');
marker-fill: #545454;
marker-clip: false;
}
@@ -1023,7 +1024,6 @@
[shop = 'car_repair'][zoom >= 18] {
marker-file: url('symbols/shop/car_repair.svg');
- marker-fill: @amenity-brown;
}
[shop = 'dairy'][zoom >= 18] {
@@ -1099,7 +1099,7 @@
}
[shop = 'motorcycle'][zoom >= 18] {
- marker-file: url('symbols/motorcycle.svg');
+ marker-file: url('symbols/shop/motorcycle.svg');
}
[shop = 'music'][zoom >= 18] {
@@ -1182,7 +1182,7 @@
}
[feature = 'advertising_column'][zoom >= 19]{
- marker-file: url('symbols/advertising_column.svg');
+ marker-file: url('symbols/amenity/advertising_column.svg');
marker-fill: @advertising-grey;
marker-clip: false;
}
@@ -1335,7 +1335,7 @@
}
[feature = 'aeroway_helipad'][zoom >= 16] {
- marker-file: url('symbols/helipad.16.svg');
+ marker-file: url('symbols/amenity/helipad.svg');
marker-clip: false;
marker-fill: @airtransport;
}
@@ -1346,7 +1346,7 @@
[feature = 'aeroway_aerodrome']['iata' = null][zoom >= 12][zoom < 18] {
[way_pixels <= 192000],
[way_pixels = null] {
- marker-file: url('symbols/aerodrome.12.svg');
+ marker-file: url('symbols/amenity/aerodrome.svg');
marker-clip: false;
marker-fill: @airtransport;
}
@@ -1382,8 +1382,15 @@
marker-clip: false;
}
+ [feature = 'mountain_pass'][zoom >= 15] {
+ marker-file: url('symbols/natural/saddle.svg');
+ marker-fill: @transportation-icon;
+ marker-clip: false;
+ }
+
[feature = 'natural_spring'][zoom >= 14] {
- marker-file: url('symbols/spring.svg');
+ marker-file: url('symbols/natural/spring.svg');
+ marker-fill: #7abcec;
marker-clip: false;
}
@@ -1397,14 +1404,14 @@
[zoom >= 14][height > 10],
[zoom >= 15][name != null],
[zoom >= 16] {
- marker-file: url('symbols/waterfall.svg');
+ marker-file: url('symbols/natural/waterfall.svg');
marker-clip: false;
marker-fill: @water-text;
}
}
[feature = 'military_bunker'][zoom >= 17] {
- marker-file: url('symbols/bunker.svg');
+ marker-file: url('symbols/man_made/bunker.svg');
marker-fill: @man-made-icon;
marker-clip: false;
}
@@ -1413,7 +1420,7 @@
[zoom >= 15][location != 'rooftop'][location != 'roof'],
[zoom >= 15][location = null],
[zoom >= 19] {
- marker-file: url('symbols/generator_wind.svg');
+ marker-file: url('symbols/man_made/generator_wind.svg');
marker-fill: @man-made-icon;
marker-clip: false;
}
@@ -1480,9 +1487,11 @@
[feature = 'railway_level_crossing'][zoom >= 14]::railway,
[feature = 'railway_crossing'][zoom >= 15]::railway{
- marker-file: url('symbols/level_crossing.svg');
+ marker-file: url('symbols/barrier/level_crossing.svg');
+ marker-fill: #4d4d4d;
+ marker-clip: false;
[zoom >= 16] {
- marker-file: url('symbols/level_crossing2.svg');
+ marker-file: url('symbols/barrier/level_crossing2.svg');
}
}
@@ -1830,6 +1839,7 @@
[feature = 'natural_peak'][zoom >= 13],
[feature = 'natural_volcano'][zoom >= 13],
[feature = 'natural_saddle'][zoom >= 15],
+ [feature = 'mountain_pass'][zoom >= 15],
[feature = 'tourism_viewpoint'][zoom >= 16] {
text-name: "[name]";
text-size: @standard-font-size;
@@ -1837,6 +1847,7 @@
text-line-spacing: @standard-line-spacing-size;
text-fill: darken(@landform-color, 30%);
[feature = 'natural_volcano'] { text-fill: #d40000; }
+ [feature = 'mountain_pass'] { text-fill: @transportation-text; }
text-dy: 7;
[feature = 'tourism_viewpoint'] { text-dy: 11; }
text-face-name: @standard-font;
@@ -2334,7 +2345,7 @@
text-face-name: @standard-font;
text-halo-radius: @standard-halo-radius;
text-halo-fill: @standard-halo-fill;
- text-dy: 6;
+ text-dy: 7;
}
[feature = 'amenity_atm'][zoom >= 19],
@@ -2600,9 +2611,6 @@
text-face-name: @standard-font;
text-halo-radius: @standard-halo-radius;
text-halo-fill: rgba(255, 255, 255, 0.6);
- [shop = 'car_repair'] {
- text-fill: @amenity-brown;
- }
[shop = 'massage'] {
text-fill: @leisure-green;
}
diff --git a/style/golf.mss b/style/golf.mss
index ac43ef69a1..7ead403b44 100644
--- a/style/golf.mss
+++ b/style/golf.mss
@@ -1,3 +1,5 @@
+@golf-color: #666;
+
#landcover[zoom >= 12] {
::high-zoom[zoom >= 12] {
[feature = 'golf_tee'],
@@ -18,14 +20,13 @@
::high-zoom[zoom >= 15] {
[feature = 'golf_rough'] {
polygon-pattern-file: url('symbols/golf_rough.svg');
- polygon-pattern-comp-op: soft-light;
}
}
}
#golf-line[zoom >= 16] {
[golf = 'hole'] {
- line-color: @address-color;
+ line-color: @golf-color;
line-width: 0.5;
}
}
@@ -35,7 +36,7 @@
[feature = 'golf_hole'][name != ''] {
text-placement: line;
text-size: 11;
- text-fill: @address-color;
+ text-fill: @golf-color;
text-face-name: @book-fonts;
text-halo-radius: @standard-halo-radius;
text-halo-fill: @standard-halo-fill;
@@ -51,7 +52,7 @@
[feature = 'golf_hole'],
[feature = 'golf_pin'] {
marker-file: url('symbols/leisure/golf_pin.svg');
- marker-fill: @address-color;
+ marker-fill: @golf-color;
marker-clip: false;
}
}
@@ -60,7 +61,7 @@
[feature = 'golf_pin'][ref != ''] {
text-name: "[ref]";
text-size: @standard-font-size;
- text-fill: @address-color;
+ text-fill: @golf-color;
text-face-name: @book-fonts;
text-halo-radius: @standard-halo-radius;
text-halo-fill: @standard-halo-fill;
diff --git a/style/stations.mss b/style/stations.mss
index 47d7fe9ab6..4f2f48b859 100644
--- a/style/stations.mss
+++ b/style/stations.mss
@@ -3,7 +3,7 @@
#stations {
[railway = 'subway_entrance'][zoom >= 18] {
- marker-file: url('symbols/entrance.10.svg');
+ marker-file: url('symbols/amenity/entrance.svg');
marker-fill: @transportation-icon;
marker-clip: false;
[zoom >= 19] {
diff --git a/symbols/advertising_column.svg b/symbols/advertising_column.svg
deleted file mode 100644
index 4c0c3e3267..0000000000
--- a/symbols/advertising_column.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/symbols/aerodrome.12.svg b/symbols/aerodrome.12.svg
deleted file mode 100644
index 3eb6309181..0000000000
--- a/symbols/aerodrome.12.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
diff --git a/symbols/amenity/advertising_column.svg b/symbols/amenity/advertising_column.svg
new file mode 100644
index 0000000000..85aa5f78e1
--- /dev/null
+++ b/symbols/amenity/advertising_column.svg
@@ -0,0 +1,5 @@
+
diff --git a/symbols/amenity/aerodrome.svg b/symbols/amenity/aerodrome.svg
new file mode 100644
index 0000000000..dd2f169665
--- /dev/null
+++ b/symbols/amenity/aerodrome.svg
@@ -0,0 +1,3 @@
+
diff --git a/symbols/amenity/arts_centre.svg b/symbols/amenity/arts_centre.svg
index 2058f54a23..ddff0d68af 100644
--- a/symbols/amenity/arts_centre.svg
+++ b/symbols/amenity/arts_centre.svg
@@ -1,41 +1,3 @@
-
-