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 apmon |
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.
permanent link
This answer is marked "community wiki".
answered 14 Jul '10, 19:48 spaetz I wish I had discovered Ceyx earlier! It's exactly what I needed, easy to use, no need for database, reliable, easy to customise (thanks to mapcss), open source... thank you for your work on it!
(20 Jun '11, 06:15)
otto
1
Glad you like Ceyx, it is a small and nice piece, I think. Do note however, that I don't render maps for myself anymore, and basically stopped putting effort into Ceyx at the moment. I would be glad if someone else wants to pick up the torch.
(20 Jun '11, 08:03)
spaetz
I can't program stuff like this, I'm afraid. But I'll post more about what I did with Ceyx, it's related to http://help.openstreetmap.org/questions/4496/how-to-create-fantasyimaginary-maps-with-openstreetmap Maybe it could interest some fantasy cartographers to work further on Ceyx...
(21 Jun '11, 00:14)
otto
1
Motivated by someone liking it, I just implemented limited support for street names on curved paths. I think it is an improvement, let me know if you have CSS tweaks that you would like to see in mainline.
(21 Jun '11, 21:38)
spaetz
|
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 petschge |
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). answered 14 Jul '10, 19:25 Breki I´ve used the Maperitive to convert my .OSM to .SVG file and it worked fine. I edited some colors on the map (colors of highways and lands) and I placed icons and imagens to attend my need. Now, what can I do with the edited .SVG file? I want to host my map like you did in your example. I´ve seen that exists MapBox but it ask for MBTiles and I just have the .SVG file that I already mencioned. What is my next step?
(25 Jul '12, 17:17)
Gilliard Lopes
|
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 SomeoneElse ♦ |
The simplest way to do this would be to use Cloudmade's Style Editor. This provides a fair amount of flexability with the styling -- certainly enough to theme it to your website. Check out some examples at the gallery. answered 12 Jul '10, 17:59 Matt Williams 2
When using the services offered by Cloudmade on their website, you are subject to their Terms of Use, which are more restrictive than the legal requirements of other, usually open-source licensed, OSM rendering solutions.
(14 Jul '10, 20:41)
Tordanik
2
Cloudmade's style editor allows only for some changes (colours of elements that are rendered according to the cloudmade stylesheet, zoom levels when they appear (but limited to high zooms), limited selection of evaluated tags), but doesn't allow for complete unlimited control (WHAT is displayed, WHEN is it displayed, HOW (icons, line style, layer order) it is displayed).
(11 Mar '11, 13:51)
dieterdreist
|
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 dieterdreist |
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. There's also a Quickstart Guide for creating an OSM based map available as well as an Intro course. Disclosure: I work for MapBox answered 14 Aug '12, 10:20 kkaefer |
After selecting the right map tiles (Raster tiles are served as images for example, so they require less processing power and memory to render) , I'd start by making sure I'd have the following Maps SDK components - glyphs - fonts used for rendering vector maps - images - images used by widgets, POI icons, etc. - sprites - images used for rendering vector maps TomTom offers Maps SDK for Web,Android and iOS that should help you with this: https://developer.tomtom.com/products/maps-sdk answered 16 Jun '19, 21:30 Tiago |
Use TopoMapCreator: 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 kaki007 |