What is OpenStreetMap?

With people more and more complaining that Google Maps gets it wrong, I often reply that the complainers have a look at OpenStreetMap instead. But there are a few misunderstandings on what OpenStreetMap actually is.

87188.png

OpenStreetMap has its main site at http://openstreetmap.org. This shows a rendering of the map that we like to call a "slippy map". This is an online map, that can interactively be zoomed and paned. The slippy map on the site is nothing more than a display of map tiles, static images rendered from OpenStreetMap data as an example of what you can do with it. The real power of OpenStreetMap is not this default rendering, but the possibility to actually access the data behind this map rendering. And this is where it differs from Google maps, Bing Maps and Yahoo! Maps and various others. OpenStreetMap is the only mapping service that allows you to do something more than just look at pretty map tiles. OpenStreetMap is a database project, with as its main purpose to have an exhaustive database of every street, city, road, building etc on the planet, and not a map display project.

Now what does that actually mean? For one thing, it means that the sample map tiles (that are displayed in the slippy map) are not meant to be used heavily from applications. It's all right to show a map tile of your neighbourhood on your web site, but it's not okay to write a mobile application that allows you to scrape map tiles of large areas. Have a look at the general tile usage policy for some background. The only reason why there is a sample rendering is to aid mappers with improving the data that is the core of OpenStreetMap.

Obviously, the OpenStreetMap project wants its data to be used. But if you're not allowed to use the map tiles en-masse, then how can you use the data?

First of all, you can query the OpenStreetMap database in various ways. In most cases, you're going to get an XML file with descriptions of nodes (points of interest, facilities such as toilets, benches, addresses), ways (roads, water ways, transport routes) and areas (buildings, lakes). There is some more info on the (very simple schema) here. This data you can parse and import (as I've shown in a previous article) and do all kinds of cool tricks with, such as finding out the closest pub. This functionality is not available on the main OpenStreetMap site, because "OpenStreetMap does not aim to create and host every webservice possible, but to provide the data so that others can" make awesome map-related applications.

Secondly there is a growing number of web sites that uses the OpenStreetMap data to render specialized maps. There is OpenCycleMap that renders information related to using your bicycle and Öpvnkarte for public transport. There is even a tool that uses the postcode data in OpenStreetMap. It's quite possible to render your own maps as well, but that I will get back to in a later article.

getmap?size=320,260&zoom=12&center=51.51,-0.15

MapQuest is a good example of a company that uses OpenStreetMap data. They have made their own rendering with its own styles for a visually different map. Their site implements searching for pubs/bars and restaurants for example and MapQuest are also happy with you using their map tiles for your applications. Recently, they have also announced a simple API to generate a static map based on OpenStreetMap with their rendering style.

The map above is generated by just requesting http://open.mapquestapi.com/staticmap/v3/getmap?size=320,260&zoom=12&center=51.51,-0.15

Another major difference with established mapping providers is the ability to edit the map yourself. You can add your own business, houses, addresses, postcodes, your favourite restaurants with either on-line or off-line editors. My list of recent edits is here.

There is also a whole plethora of special renderings of the map data to assist with debugging issues with the map. There is the "no name" rendering which shows roads without name, ITO World's osm analysis that shows deviations of road names from another source in the UK, keepright and OSM Inspector that have some automated checks and a tool to overlay postcodes for checking.

Obviously, there are a few things missing that would make OpenStreetMap an even better resource for mapping related applications and web-applications. Feel free to suggest things that you find missing or lacking in the comments of this article. I'd be happy to hear why you would think that OpenStreetMap is not a good fit for your applications and usage.

Shortlink

This article has a short URL available: http://drck.me/what-is-osm-8my

Comments

I like the OpenStreetMap philosophy, but I think the only problem i find is about documentation which is not well built, I had more time to understand the concept and the integration of slippy map than i had with Google maps.

If Google Maps gets it wrong, why not just correct it using Google Map Maker? http://google.com/mapmaker

If the philosophy of OpenStreetMap is so different from Google Maps, why do you recommend it to people as an alternative? If its purpose is NOT to be an exhaustive database of steets, why would one bother searching for a street there? It is important to save OpenStreetMap for the purpose for which it was originally created, which is to be a database that people can query to render their own maps, and contribute to.

@Joe: Why not just use Google MapMaker?

That is an excellent question to which I can provide multiple answers. First of all, I've mentioned that OpenStreetMap is more about the database containing all the street information, and not about the visual rendering only. You can not access the road information from Google Maps at all so I don't find it very useful that Google Maps has the correct data.

Secondly, why would I provide data to Google that I have zero rights to to use myself? Sure, it shows things in the correct spot once they bother to upgrade there map rendering from the new data, but what else do I gain?

Google has lately been copying much of what OpenStreetMap is doing, have a look at this blog entry for some good analysis. There is one main difference between contributing to OpenStreetmap and contributing through MapMaker though: you can't do anything with the data you contribute to Google. Heck, you can't even embed it without having the threat of getting adverts plastered over the map. I don't believe in giving people data that I can then no longer use.

And lastly, Google MapMaker is not available for the UK.

Derick, really nice article. Maybe you could improve this one sentence, which is a little ambiguous and I guess that's why Anna got it wrong: "OpenStreetMap is mostly a database project, and not a map display project with as main purpose to have an exhaustive database of every street, city, road, building etc on the planet."

I think it would be clearer if you changed the order: "OpenStreetMap is mostly a database project with as main purpose to have an exhaustive database of every street, city, road, building etc. on the planet, and not just a map display project."

@dieterdreist: Thanks! I've updated the article accordingly.

Great overview Derick. I heard about the MapQuest static map service first from reading this. That's a welcome addition to the tools available to web developers. I hope we'll see things like this worked into plugins for various CMS's.

I gave talk at OpenTech this weekend which was targeted at developers, and also trying to explain some similar points: http://www.harrywood.co.uk/blog/2011/05/22/openstreetmap-at-opentech-2011/

Add Comment

Name:
Email:

Will not be posted. Please leave empty instead of filling in garbage though!
Comment:

Please follow the reStructured Text format. Do not use the comment form to report issues in software, use the relevant issue tracker. I will not answer them here.


All comments are moderated

Life Line