A general-purpose OpenStreetMap mapnik style, in CartoCSS
CartoCSS Python Lua Shell
Failed to load latest commit information.
.github Adding GitHub issue and PR template (#3147) Mar 29, 2018
scripts Revert "Render “surface” tag on roads with a pattern (#2640)" Jun 27, 2018
symbols Add icon for shop=interior_decoration (#3293) Jul 19, 2018
.dockerignore Bullet-proof Docker variable turning with PostGIS. Aug 1, 2017
.editorconfig Remove treatment of trailing whitespace May 19, 2018
.gitattributes Adding .gitattributes to Docker configuration Jul 8, 2017
.gitignore Fixing .env file creation for Docker Jul 20, 2017
.travis.yml Travis test for unsupported hstore operation Jun 30, 2018
CARTOGRAPHY.md Fix tyop Feb 8, 2017
CHANGELOG.md Update CHANGELOG.md Jul 18, 2018
CODE_OF_CONDUCT.md remove nebulon42 from list of maintainers May 22, 2018
CONTRIBUTING.md More detailed documentation of text rendering May 13, 2018
DOCKER.md 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 Add OSMF PPA repository and signing key for Xenial packages (#3268) Jul 19, 2018
INSTALL.md docs: Update PostGIS website link Mar 28, 2018
LICENSE.txt Explain that the cartography is covered by the license (#2474) Jan 19, 2017
README.md remove nebulon42 from list of maintainers May 22, 2018
RELEASES.md Update RELEASES.md Apr 1, 2018
USECASES.md Adding natural and semi natural areas to use cases (#2946) May 16, 2018
addressing.mss Render entrances. Jan 20, 2018
admin.mss Revert "Fix repetition of high-zoom admin/nature reserve labels" (#3182) Apr 20, 2018
aerialways.mss add rendering of zip line (#3172) Apr 16, 2018
amenity-points.mss Add icon for shop=interior_decoration (#3293) Jul 19, 2018
buildings.mss Fix rendering bug (#3043) with access=yes|permissive tags. (#3048) Jan 31, 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
indexes.sql Dropping subpixel accuracy for areas (#2874) May 17, 2018
indexes.yml Dropping subpixel accuracy for areas (#2874) May 17, 2018
landcover.mss Brighten built-up areas on z12 (#3225) May 11, 2018
openstreetmap-carto.lua Fix a whitespace error in the Lua code Apr 27, 2018
openstreetmap-carto.style Add usage notes to openstreetmap-carto.style Jan 19, 2017
placenames.mss Adding rendering for place=quarter (#3223) May 14, 2018
power.mss Adding different types of towers and masts (#2671) Mar 13, 2018
preview.png Update preview image Mar 23, 2018
project.mml Add icon for shop=interior_decoration (#3293) Jul 19, 2018
road-colors-generated.mss Split up roads.mss, refactor road colour script Jul 11, 2016
road-colors.yaml Let generate_shields use road-colors.yaml Jul 11, 2016
roads.mss Revert "Render “surface” tag on roads with a pattern (#2640)" Jun 27, 2018
shapefiles.mss Reduce coastline simplification to prevent artifact at antimeridian Mar 4, 2018
stations.mss station typography Nov 2, 2017
style.mss Improve mid-zoom levels and water color Jun 3, 2017
water-features.mss Finer man_made=pier width (#3267) Jun 21, 2018
water.mss render lock_name (#3236) May 19, 2018


OpenStreetMap Carto


These are the CartoCSS map stylesheets for the Standard map layer on OpenStreetMap.org.

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 (tile.openstreetmap.org), and are updated from each point release. They supersede the previous XML-based stylesheets.


You need a PostGIS database populated with OpenStreetMap data along with auxillary shapefiles. See INSTALL.md.


Contributions to this project are welcome, see CONTRIBUTING.md 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: