Mapnik

From OpenStreetMap Wiki
Jump to: navigation, search
Available languages
Deutsch English français italiano magyar Nederlands 日本語 polski русский Tiếng Việt
Mapnik
Screenshot of Mapnik
Website: http://mapnik.org
Version: 2.2.0 (2013-06-03)
License: LGPL
Platform: win ; macos ; linux

Mapnik is an open source toolkit for rendering maps. Among other things, it is used to render the five main Slippy Map layers on the OpenStreetMap website. It supports a variety of geospatial data formats and provides flexible styling options for designing many different kinds of maps.

Mapnik is written in C++ and can be scripted using binding languages such as Javascript (Node.js), Python, Ruby, and Java. It uses the AGG rendering library and offers anti-aliasing rendering with subpixel accuracy. It can read ESRI shapefiles, PostGIS, TIFF rasters, .osm files, any GDAL or OGR supported formats, CSV files, and more. Pre-built packages are available for OS X and Windows and can be found at Mapnik.org/download. Many Linux distributions provide packages - learn about them at the Mapnik Installation Wiki.

You can learn more about using Mapnik at the The Mapnik Wiki and by joining the #mapnik channel on freenode

Note that Mapnik is a software project and should not be confused with any of the common map stylesheets that might be named after Mapnik. To report bugs or graphical suggestions for the main map on the OSM website, do so at the Github issues page for the "openstreetmap-carto" style (tileservers use CartoCSS since August 2013; needs a login with a github.com account). Report problems, ideas, enhancements about the Mapnik software in general on GitHub. Please check that someone else hasn't reported the same issue first.

Overview

Example of the Standard OpenStreetMap Mapnik style

Mapnik can output map images to a variety of graphics formats - PNG, JPEG, SVG, and PDF. OpenStreetMap's primary use of Mapnik involves rendering many thousands of 256 × 256 pixel tiles which are displayed in a JavaScript Slippy Map interface.

Mapnik Styles

Mapnik allows for customization of all the cartographic aspect of a map - data features, icons, fonts, colors, patterns, and even certain effects such as pseudo-3d buildings and drop shadows. This is all controlled by defining datasources and style rules, most commonly in an XML language specific to Mapnik.

The Mapnik style rules used for the Standard OpenStreetMap are open-source and can be used as the basis for custom renderings of OSM data (see OSM Standard Mapnik Style below). Other styles are available as well, such as those used to render MapQuest Open.

There are a number of external tools that can assist in the creation of Mapnik styles. Cascadenik, Spreadnik, and TileMill offer styling languages that are more compact and easier to read and write than Mapnik's built-in XML language. QGIS also has a plugin called Quantumnik for creating Mapnik styles using a more graphical interface.

Data Sources

Mapnik can use data from different sources: it can directly process OSM data, PostGIS databases, shapefiles and more.

PostGIS

PostGIS is the most common approach for rendering OSM data with Mapnik. OSM can be loaded by a tool such as osm2pgsql or Imposm and accessed via SQL queries and GIS functions defined in a Mapnik style. This approach can be used for more advanced renderings, and is the main datasource used by the Standard OpenStreetMap layer.

Shapefile

Shapefiles are a common storage and exchange format for geographic data. In addition to PostGIS, the Standard OpenStreetMap style uses several shapefiles to render the map. For example, land masses are drawn using shapefiles generated from the natural=coastline ways by the Coastline Error Checker. See Coastline#Rendering.

GeoTIFF

Mapnik can render GeoTIFF files as raster images. This is commonly used for relief maps. See Hillshading with Mapnik for a step-by-step tutorial.

Raster images

In a similar way to GeoTIFF, Mapnik can also render bitmap images which contain no geocoding information. The bounding box for these images has to be specified through separate parameters.

OSM XML

Mapnik has some limited capability for rendering directly from an OSM XML file, but this is not generally recommended. Still, it may be useful for testing Mapnik installations or for ad-hoc rendering of a map. For more information, see Mapnik: Rendering OSM XML data directly.

Installation

Detailed installation instructions for many platforms are maintained on the Mapnik Github wiki.

OSM Standard Mapnik Style

You can set up a copy of the Standard OpenStreetMap Mapnik style for your own rendering, or customize it for your own project. For more information, including setup instructions, see https://github.com/gravitystorm/openstreetmap-carto.

See also