Mapnik is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
mapping toolkit for desktop and server based map
rendering, written in
C++. Artem Pavlenko, the original developer of Mapnik, set out with the explicit goal of creating beautiful maps
[Beautiful Maps as an explicit goal in the Mapnik FAQ]
/ref> by employing the sub-pixel anti-aliasing of the Anti-Grain Geometry
Anti-Grain Geometry (AGG) is a 2D rendering graphics library written in C++. It features anti-aliasing and sub-pixel resolution. It is not a graphics library, per se, but rather a framework to build a graphics library upon.
The library is o ...
(AGG) library. Mapnik now also has a Cairo
Cairo ( ; ar, القاهرة, al-Qāhirah, ) is the capital of Egypt and its largest city, home to 10 million people. It is also part of the largest urban agglomeration in Africa, the Arab world and the Middle East: The Greater Cairo met ...
rendering backend. For handling common software tasks such as memory management, file system
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one lar ...
access, regular expressions, and XML parsing, Mapnik utilizes the Boost C++ libraries
Boost is a set of libraries for the C++ programming language that provides support for tasks and structures such as linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions, and unit testing. It conta ...
. An XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
file can be used to define a collection of mapping objects that determine the appearance of a map, or objects can be constructed programmatically in C++, Python, and Node.js.
Data format
A number of data formats are supported in Mapnik using a plugin framework. Current plugins exist that utilize OGR and GDAL
The Geospatial Data Abstraction Library (GDAL) is a computer software library for reading and writing raster and vector geospatial data formats (e.g. shapefile), and is released under the permissive X/MIT style free software license by the O ...
to read a range of vector and raster datasets. Mapnik also has custom Shapefile
The shapefile format is a geospatial vector data format for geographic information system (GIS) software. It is developed and regulated by Esri as a mostly open specification for data interoperability among Esri and other GIS software products ...
, PostGIS
PostGIS ( ) is an open source software program that adds support for geographic objects to the PostgreSQL object-relational database. PostGIS follows the Simple Features for SQL specification from the Open Geospatial Consortium (OGC).
Technica ...
and GeoTIFF GeoTIFF is a public domain metadata standard which allows georeferencing information to be embedded within a TIFF file. The potential additional information includes map projection, coordinate systems, ellipsoids, datums, and everything else nece ...
readers. There is also an osm2pgsql utility, that converts OpenStreetMap
OpenStreetMap (OSM) is a free, open geographic database updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveys, trace from aerial imagery and also import from other freely licensed ...
data into a format that can be loaded into PostgreSQL
PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
. Mapnik can then be used to render the OSM data into maps with the appearance the user wants.
Platforms
Mapnik is a cross platform toolkit that runs on Windows, Mac, Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
systems like Linux and Solaris (since release 0.4).
Usage
One of its many users is the OpenStreetMap
OpenStreetMap (OSM) is a free, open geographic database updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveys, trace from aerial imagery and also import from other freely licensed ...
project (OSM), which uses it in combination with an Apache Web Server module (mod_tile) and openstreetmap-carto style to render tiles that make up the OSM default layer.[OpenStreetMap's main Slippy Map layer]
/ref> Mapnik is also used by CloudMade, MapQuest
MapQuest (stylized as mapquest) is an American free online web mapping service. It was launched in 1996 as the first commercial web mapping service. MapQuest vies for market share with competitors such as Google Maps and Here.
History
MapQuest ...
, and MapBox.
License
Mapnik is free software and is released under LGPL (GNU Lesser General Public Licence).
References
External links
*
{{OpenStreetMap
Distributed computing projects
Free GIS software
Free software programmed in C++
Free-content websites
Geographic information systems
OpenStreetMap
Web Map Services
Web mapping