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.
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 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.
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 A-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.
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
Truncated by Planet PHP, read more at the original (another 2060 bytes)