From OpenStreetMap Wiki
(Redirected from Renderers)
Jump to: navigation, search
Available languages — Rendering
· Deutsch · English · français · italiano · русский · 日本語
Rendering a map from raw geodata, gives us the flexibility to style it in many different ways. OpenStreetMap's free and open geodata offers tremendous power, and a range of tools are available for rendering with OpenStreetMap

The process of rendering a map generally means taking raw geospatial data and making a visual map from it. Often the word applies more specifically to the production of a raster image, or a set of raster tiles, but it can refer to the production of map outputs in vector-based formats. "3D rendering" is also possible taking map data as an input. The ability to render maps in new and interesting styles, or highlighting features of special interest, is one of the most exciting aspects having open access to geodata. Developers in and around the OpenStreetMap community have created a wide variety of software for rendering OpenStreetMap data. The data can also be converted to other data formats for use with existing rendering software.

Rendering on OpenStreetMap servers

The most obvious examples of rendering OpenStreetMap data, are those found on the homepage. Click the layer picker button on the right to switch between layers showing different rendering styles. There are several layers created using Mapnik software including the default 'Standard' layer. To understand more about the infrastructure involved in rendering and serving these tiles' map styles, see Component overview and Mapnik Rendering.

There are limitless dimensions of flexibility involved in rendering. Most rendering software supports some kind of stylesheet for controlling things like colour, line widths, text orientation, icons for points of interest, and many very subtle visual factors.

Rendering Software


The main options for conventional 2D raster rendering:

  • Mapnik - Requires PostgreSQL and various C++ libraries. It is designed to be fast and is suitable for tile generation on high-end servers but it isn't particularly easy to set up.
    • TileMill is a frontend solution to handle a user defined rendering of Mapnik. Uses simpler style format.
  • Osmarender - XSLTs which does OSM XML to SVG transformation. tiles@home was a project which uses Osmarender to create a tile set for serving a map layer alongside Mapnik's, but Osmarender can also be a good option for doing one-off renderings. SVG format allows you to do post-processing tidy up tweaks (see other options below). It was withdrawn from the main map at on 1th March 2012.


Other renderers, including vector rendering:


  • Custom python script for mapnik.
  • Maperitive is local file (.osm, .osm.bz2 and GPX) desktop rendering application, with rendering rules defined in a text file. Generates BMP, PNG and SVG output. Not designed for high performance rendering or huge volumes of data, but easy to set up and flexible, and a good option for one-off rendering (e.g. a map of your city). It also has a tile generator, hillshading, elevation colouring and lots of other features. Runs on Windows, Linux, Mac. Written in C#
  • - simple maps easily drawn with a Perl program. Uses *.osm as input.
  • Mapweaver - Successor of Perl rendering, OSM to SVG and with Inkscape to PNG or PDF, automatic map key. Supports street and POI lists, grids and coordinate overlays. Automatic extraction of desired place out of OSM file. Not running under Windows.
  • MapSurfer.NET is a framework for map styling and publishing (rendering, caching) geospatial data to the web.
  • TopoMapCreator is a Windows Desktop Application based on Mapnik. It creates automatically topographic maps from OSM, NASA and ESA data. Select a map extent (by dragging over a world map), click on the start button and wait for the GeoTIFF, ECW, GALILEO, ORUXMAPS or NAVIMAP output.
  • osmCache – a JEE application to control rendering and rerendiring of tiles with mapnik


Name Programming Language License Notes
CartoType C++ proprietary license A multi-OS rendering and routing library. Runs on Windows, iOS, Android, Mac OS, Unix.
Halcyon ActionScript AS3  ? Rendering library developed by Richard Fairhurst and used within Potlatch2
Kosmos ActionScript AS3 GDI/.NET (Windows) Kosmos is local file (.osm) rendering engine based on GDI/.NET (Windows), with rendering rules defined on a wiki page. Not designed for high performance rendering or huge volumes of data, but very flexible, and good option for one-off rendering. Superseded by Maperitive
Mapnik C++/Python Open Source
Mapsforge Java Open Source (?) free and open toolbox that enables the community to easily create new OpenStreetMap-based applications. Provided tools and APIs include solutions for map rendering, route planning and navigation, POI indexing and search, map overlays and more. Written in java, target platform seems to be Android devices.
PHP rendering PHP  ? Renderer written in PHP. Not maintained!
Pyrender Python  ? a collection of ideas, and some code in Python for various rendering server steps
Cartagen JavaScript Closed Source HTML5 Canvas/JavaScript-based renderer
Kogutowicz Java Closed Source An extensible, multi-purpose Java based rendering engine. The project is under development. Currently not usable by end users.
Cobra .Net  ? abandoned .Net/mono rendering engine with SVG and raster output.
Ceyx MapCSS GPL .osm parser and MapCSS renderer under active development. MapCSS is the stylesheet language used by Halcyon to describe the look of a map and if you ever worked with HTML, you will quickly feel at home there. Ceyx needs python, python-cairo and pygtk (for pango/pangocairo).
Maposmatic Python AGPLv3 can render maps with a grid and street index. Written in Python/Django + mapnik :)
osmbrowser C++ GNU can load large areas of OSM data and render them in vector graphics.
MapDiff D Closed Source generates Animation, written in D
Memphis (Renderer) C GNU [1] is a map-rendering application and a library for OpenStreetMap written in C using eXpat, Cairo and GLib. It's licensed under the terms of the GNU Lesser General Public License.
Hardware_accelerated_real-time_rendering .Net Closed Source using graphics card to render images in real-time, instead of displaying prerendered tiles
Libosmscout C++ LGPL offers simple, high-level interfaces to offline rendering and routing functionalities based on OpenStreetMap data.
Kothic Python GNU a MapCSS/0.2 python rendering engine.
Kothic_JS JavaScript GNU Full-featured JavaScript map rendering engine using HTML5 Canvas. It was initially developed as a JavaScript port of Kothic.
Smrender C GNU a rules-based rendering engine written in C
Kartograph Python GPL provides a python framework to create SVG maps and also a javascript framework to display vector generated maps in any browsers.
Tangram ES OpenGL MIT 2D and 3D map renderer using OpenGL ES

3D Rendering (see also 3D Development)

  • OpenStreetMap 3D - OSM in 3D as a web service
  • OSM2World - Java tool that creates 3D models from OSM data files
  • ShugenDoMap - Multi-platform OSM realtime 3D renderer. Especially designed for mobile platforms like smart phones and tablets.
  • Osm2pov - Tool for creating isometric maps from OSM data
  • Kendzi3d - Plugin for JOSM, allows viewing of edited data in 3D
  • osm2x3d - OSM 3D converter using native webgl rendering (x3dom js library)

See also