OpenStreetMap german style (a fork of openstreetmap-carto)
CartoCSS Python Lua Shell Makefile PLpgSQL
Pull request Compare This branch is 185 commits ahead, 12 commits behind gravitystorm:master.
Sven Geggus
Sven Geggus Merge tag 'v4.12.1'
Tag v4.12.1
Latest commit b4095d9 Jun 29, 2018
Failed to load latest commit information.
.github Adding GitHub issue and PR template (#3147) Mar 29, 2018
contrib/use-upstream-database we now need an additional column in the view, "water" Jan 29, 2018
scripts Option -R for curl download Jun 5, 2018
symbols-de Merge branch 'master' of git:// May 17, 2018
symbols Merge tag 'v4.12.1' Jun 29, 2018
views_osmde GERMAN STYLE: Add script to apply views to the database in a language May 11, 2018
.dockerignore Bullet-proof Docker variable turning with PostGIS. Aug 1, 2017
.editorconfig Remove treatment of trailing whitespace May 19, 2018
.gitattributes Merge tag 'v4.1.0' Aug 2, 2017
.gitignore Merge tag 'v4.1.0' Aug 2, 2017
.travis.yml Check all YAML files are valid YAML Jun 2, 2018 Fix tyop Feb 8, 2017 Merge tag 'v4.12.1' Jun 29, 2018 remove nebulon42 from list of maintainers May 22, 2018 Merge tag 'v3.0.0' Dec 22, 2016 More detailed documentation of text rendering May 13, 2018 Move links to https where possible and fix tilemill link Mar 7, 2018
Dockerfile Fixing line wrapping bug in Docker Sep 10, 2017
Dockerfile.db Bullet-proof Docker variable turning with PostGIS. Aug 1, 2017
Dockerfile.import Fixing line wrapping bug in Docker Sep 10, 2017 Add information about how to enable another target language. May 24, 2018 docs: Update PostGIS website link Mar 28, 2018
LICENSE.txt Merge tag 'v3.1.0' Jan 29, 2017
Makefile GERMAN STYLE: Add default Makefile target for both xml output files May 11, 2018 Merge tag 'v4.12.1' Jun 29, 2018 Update Apr 1, 2018 Adding natural and semi natural areas to use cases (#2946) May 16, 2018
addressing.mss Render entrances. Jan 20, 2018
admin.mss Merge tag 'v4.9.0' Mar 31, 2018
aerialways.mss add rendering of zip line (#3172) Apr 16, 2018
amenity-points.mss Merge tag 'v4.12.1' Jun 29, 2018
buildings.mss GERMAN STYLE: Set opacity to 0 for greenhouse "buildings" May 18, 2018
docker-compose.yml enable access to the postgresql database from the host and restrict p… May 11, 2018
ferry-routes.mss Move ferries to zoomlevel 8 Nov 20, 2017
fonts.mss Correct a typo in font documentation (#3251) May 29, 2018
golf.mss Add rendering of golf courts from french mapnik style Aug 15, 2017 This is the first try to merge v4.0.0 from upstream. May 24, 2017
indexes-hstore.sql try to adjust index generation script for hstore-only database Sep 21, 2016
indexes-hstore.yml try to adjust index generation script for hstore-only database Sep 21, 2016
indexes.sql Dropping subpixel accuracy for areas (#2874) May 17, 2018
indexes.yml Dropping subpixel accuracy for areas (#2874) May 17, 2018
landcover.mss Merge tag 'v4.11.0' May 11, 2018
openstreetmap-carto.lua Fix a whitespace error in the Lua code Apr 27, 2018 Add usage notes to Jan 19, 2017
osm_tag2num.sql * Small change of database layout to make it 100% compatible with ups… Jun 11, 2016
placenames.mss Merge tag 'v4.12.1' Jun 29, 2018
power.mss Adding different types of towers and masts (#2671) Mar 13, 2018
preview-de.png * Add Makefile target for generation of example-rendering (preview-de… Dec 12, 2016
preview.png Update preview image Mar 23, 2018
project.mml Merge tag 'v4.12.1' Jun 29, 2018
road-colors-generated.mss Split up roads.mss, refactor road colour script Jul 11, 2016
road-colors-german.mss GERMAN STYLE: Bring back different rendering of tertiary roads. May 21, 2018
road-colors.yaml Let generate_shields use road-colors.yaml Jul 11, 2016
roads.mss Merge tag 'v4.12.1' Jun 29, 2018
shapefiles.mss Adding reduced low zoom waterbodies based on shapefiles from Jan 26, 2018
sport.mss GERMAN STYLE: less intense colors for pitches Oct 28, 2017
stations.mss station typography Nov 2, 2017
style.mss CHERRY pick from Jan 26, 2018
water-features.mss Finer man_made=pier width (#3267) Jun 21, 2018
water.mss Merge tag 'v4.12.1' Jun 29, 2018

OpenStreetMap Carto German

An adaptation of the "German" Mapnik style to the CartoCSS structure used by the international style. The rest of this README is the original text from the international style.

The style is designed to use with a HSTORE-only DATABASE in mind. In our production setup we are using the provided views to osm2pgsql tables with hstore to simulate columns.

This way, the database Layout is also capable of rendering the upstream style without any changes.

We are doing our best to keep this fork in sync with upstream.

As a result we will always require at least the same software versions of carto, mapnik, postgis, etc. as upstream.

This repository does also contain a localized version branch of CartoCSS without other style changes. To use this you will also need the German style HSTORE-only DATABASE layout.

OpenStreetMap Carto


These are the CartoCSS map stylesheets for the Standard map layer on

These stylesheets can be used in your own cartography projects, and are designed to be easily customised. They work with Kosmtik and also with the command-line CartoCSS processor.

Since August 2013 these stylesheets have been used on the OSMF tileservers (, and are updated from each point release. They supersede the previous XML-based stylesheets.


You need a PostGIS database populated with OpenStreetMap along with auxillary shapefiles. See Please read first for differences of openstreetmap-carto-de.


Contributions to this project are welcome, see for full details.


This project follows a MAJOR.MINOR.PATCH versioning system. In the context of a cartographic project you can expect the following:

  • 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 2-5 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.


Initial Release (v1.0.0, December 2012)

This was a full re-implementation of the original OSM style, with only a few bugs discovered later. There's been no interest in creating further point releases in the v1.x series.

Mapnik 2 work (v2.x)

The v2.x series initially focused 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, as well as removing 'old-skool' tagging methods that are now rarely used. It then started adding new features.

Mapnik and CartoCSS update (v3.x)

The v3.x series was triggered by an update to the required Mapnik and CartoCSS 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) can discourage contributions.

Database schema change (v4.x)

The v4.x series includes osm2pgsql lua transforms 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.

There are over 300 open requests, some that have been open for years. These need reviewing and dividing into obvious fixes, or additional new features 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: