OpenStreetMap has some wonderful data, but I don't think the map style is appropriate for my website / application. Can I render my own maps and change the style to adapt it more for my purpose?
asked 12 Jul '10, 17:46
First of all, I would really consider using some pre-made map tiles as there are many offered for free and it saves you sigificant effort. There are for example the:
and probably many more (some of them commercial), offering you different styles that you can relatively easy integrate into your website.
You can do a lot of customization even with those pre-made maps (see below). Rendering your own maps is always quite some effort. You need to set up a renderer, retrieve the relevant data, render the tiles, put them on a webhost (the number of files quickly adds up to the thousands and millions) and repeat all that every few weeks to keep your maps updated.
Just, make sure you honor the respective terms of service for the tile service you use. Cloudmade offers a custom style editor which you might want to try out if you want to customize things.
The next level of customization is running your own openlayers (OL) slippymap installation which let's you offer cool things like POI overlays, colored paths and areas (OL example), added markers (OL example) and/or images on a map based on an input files or an RSS feed and many more things. Here is a real world example, showing all smoking and non-smoking restaurants in Germany, all without installing your own renderer and mucking with cartographic stylesheets... Have a look at the openlayers and slippymap pages in the osm wiki, and also make sure to explore the openlayers example page to get a glimpse of what is possible and snatch the code you want from there (you'll find the code for the above examples there too). Openlayers is the most common and in my view the most convenient solution, but the wiki page "Deploying your own Slippymap" lists a couple of alternative solutions.
That having said there are many renderers that you can use in order to create your own maps. Which one is the right one for you depends on many things. Do you need vector graphics (.svg) or .png files? Do you need one big map or 256x256 pixel tiles? Do you need to render them on-demand or do you want pre-made images? Do you need to render it once, or do you want to rerender with updated map-data frequently? Here are the commonly used ones:
Less commonly used, but being designed for easy setup and usage are:
If that selection is not enough for you, you can see even more rendering software at the OSM 'Renderer' wiki page.
This answer is marked "community wiki".
Of course you can. Actually there are many different option to do it. You can either render a static map image with one of the renderers listed below, your you can use a map where you can zoom and pan around. This option is called a slippy map. The most option to realize a slippy is map is openlayers. You can find documentation on the use of openlayers to display maps derived from OpenStreetMap data at wiki.openstreetmap.org/wiki/Openlayers.
However openlayers needs rendered map images (called tiles) so lets come back to the topic of renderers. There are many different renderers available for OSM data. A (probably incomplete) list can be found at wiki.openstreetmap.org/wiki/Rendering.
The most common renderer if you want to generate tiles is mapnik. Documentation can be found at wiki.openstreetmap.org/wiki/Mapnik. It is quite fast and produces a nice looking map. This renderer is used to feed the main slippy map at www.openstreetmap.org. Setting up a server running mapnik and feeding the tiles to openlayers can be quite a bit or work though.
Another popular renderer is osmarender. Unlike mapnik it does not directly generate PNG images but generates SVG images which need to be rasterized using inkscape or batik. This is the renderer used by the tiles@home project. It is not as fast as mapnik (and some say not as good looking) but it is somewhat easier to set up and run, especially if you want to implement a custom style or only need a single image.
There are many other different renderers and I would probably be good if you ask this question again with a bit more details on what you exactly want in you map.
answered 12 Jul '10, 18:01
Maperitive can render tiles. It works on OSM files though, so if you need a world-wide map, then you need a DB-based solution like Mapnik. On the other hand, setting up Maperitive is much easier. So it's more a question of what exactly your needs are.
I've made a sample hiking Web map made with Maperitive (warning: the server is slow).
Since this question was asked, this site has been created which is intended to summarise the "setting up a tile server" options, if that's the road that you want to go down. It doesn't (yet) describe style editing in detail, though.
answered 05 Mar '12, 11:13
Dependent on what you intend by "maps for my website" besides the already mentioned renderers like Mapnik and Maperitive you might also have a look at mapservers. There is the
Both are free and open and there are tools available to convert community stylesheets from OSM into the SLD-format to begin.
answered 01 Mar '11, 12:34
You can also use TileMill to create custom maps using OpenStreetMap data. TileMill uses the Mapnik renderer (the same one the OpenStreetMap website uses), and you can export the XML stylesheets it generates.
Disclosure: I work for MapBox
answered 14 Aug '12, 10:20
ExtendedMapCreator is a Desktop-Program, that creates "Topographic Maps" from OSM, NASA and ESA. You simply define a map extent by dragging over a browsable word map, click on start and wait till the GeoTIFF, ECW, GALILEO, ORUXMAPS or NAVIMAP files got created. ExtendedMapCreator is based on the Mapnik-Renderer, nevertheless all data downloading and processing is fully automatic. Click on ExtendedMapCreator to read more about the Program!
answered 01 Nov '14, 10:11