Britain has a long history of map making. Ordnance Survey was set up in 1791 to create accurate maps of southern England in preparation for a French invasion. The information in these first maps was seen as vital to protecting Britain's interests. Now, over 200 years later, Ordnance Survey protects its extensive mapping data just as closely. It turns out they're not the only ones — most sources of geographic data and maps are proprietary, which can make including them on websites and in applications expensive and restrictive. The latest web-based collaborative project to hit the headlines aims to change this.
The OpenStreetMap project was started by programmer Steve Coast nearly three years ago as a way of overcoming the difficulties involved in using geographic data with open-source software. Today, the project is still in its infancy but is growing rapidly, and is probably the most active open-geographic-data project on the internet.
Its aim is simple: map the planet. Contributors to the project use GPS receivers to record the location of geographic features and eventually build a database of every physical feature on Earth, making it available under a free licence. While that goal may still be a long way off, it's clear that people are interested in creating the data and tools needed to achieve it. More than 3,000 contributors are submitting map data, and dozens of people are writing programs to gather, edit and display OpenStreetMap's information.
Coast's initial reasons for starting the project were more practical than idealistic. "I had bought a cheap USB GPS for my laptop and wanted to use it with some open-source software on Linux. The software all existed but the data didn't, so you had to download and save maps from Microsoft MapPoint — as it was then — which breaks copyright and the terms and conditions. If you wanted to drive somewhere, you would have to open the software and pretend to drive [the route] while downloading the map images. They could then be replayed to you as you actually did the route. You couldn't use the images for routing and, if you diverged off the images, then you had no map," he explains.
Coast found that there were no maps or geographic data available that could be used with open-source software, and, if he wanted some, he'd have to create them himself. "It seemed pretty silly. So I figured I could make a map using a GPS and then, if I could, then so could you. Then we could join our maps together into one big map and, with enough people, maybe all of London, or the world. It seemed like a fun thing to attempt to get it all working."
The philosophy of OpenStreetMap is identical to the web's biggest free-content project, Wikipedia: many contributors each add a small part to the whole, and successive contributions both expand and improve the information. Unlike Wikipedia, participation often requires more than just typing. "The difference is that Wikipedia doesn't care where you are if you can contribute to the article on cheese," says Coast. "OpenStreetMap needs you to go where you're mapping in order to collect the data — or have a very good memory. It's more active — if you want to contribute more than a small amount of data, you have to get out and about."
Data is gathered by contributors walking, driving, cycling or otherwise making their way along streets, paths or other features, with a GPS receiver recording their every move. The breadcrumb trails generated in this way are then used to trace the points and paths needed to create a map. The need to own a GPS receiver appears to have affected participation across different demographic groups so far — Surrey has far better coverage than Sunderland, for instance.
Despite OpenStreetMap being started in the UK, it's already attracted attention from other countries. Germany, the Netherlands, Spain and Sweden all have people providing data. Coast believes that people in other countries where data is difficult or expensive to obtain are also generating a lot of contributions. "It started in the UK, so here we have the most mappers. It's taking off in Spain, Germany, Denmark and the Netherlands without doubt. We're seeing huge growth in those places, and other countries here and there. Recently, the mappers in the Netherlands got funding to run mapping parties, which has meant a huge boost to the level of data there. Similar things are happening all over the place. It's happening a lot in countries with national mapping agencies which are monopolies, much like the OS [Ordnance Survey] in the UK."
All of OpenStreetMap's data is licensed under the Creative Commons Attribution-ShareAlike licence, which means that...
...anyone using the information in another system or product is obliged to share any modifications they make under the same licence. This is the same philosophy as is behind Wikipedia, although that project uses the GNU Free Documentation License.
Coast chose the Creative Commons (CC) licence to ensure that people making use of the data were obliged to contribute back to the project, but he also believes that: "There's a strong argument that all geodata is public domain in any case, as it's factual content. The reason really is that it's what I picked at the time and not a lot of thought went in to it. I wanted it to be a viral licence, and CC seemed to be doing good things, and viral because I figured that was the key to success — to force derivative works to give back to the project."
Ordnance Survey by contrast is all but forced to sell its data, since it no longer receives any funding from central government. It has to raise all its own money from selling its products, which includes the raw data. Scott Sinclair, Ordnance Survey's head of corporate communications, explains: "Government policy continues to be based around the trading fund model. We have delegated authority to administer the intellectual property rights in our data under Crown copyright. Be aware we receive no subsidy at all. All our income comes from licensing receipts and selling our products. That is the nature of the trading fund model."
OpenStreetMap uses a wiki-like system to allow contributors to upload mapping data to the system via a web API. A change history is kept and edits can be rolled back if necessary, thus lessening the impact of vandalism. Abuse of the system is less likely than with Wikipedia, since anonymous editing isn't allowed — a confirmed email address is needed to log into the web API.
The OpenStreetMap platform is built using open-source software, both existing programs and custom-written code. While early versions of the server-side code were written in Java, today it uses Ruby on Rails, backed by a MySQL database. Maps are drawn using either an existing open-source renderer called Mapnik, or a home-grown SVG-based renderer, Osmarender. Both of these are displayed on the OpenStreetMap website using an Ajax "slippy map" implementation called "OpenLayers".
OpenStreetMap's data model stores topology using a series of points and lines to describe how roads connect to each other or to mark points of interest. Points, called "nodes" in OpenStreetMap's own lexicon, define the geographic location of features. Nodes are linked with lines, termed "segments", which show physical routes between points, and segments are grouped together into "ways", which are used to define entire streets or areas of land by forming loops. By having this few data primitives in the data model, the database design itself can be kept very simple and flexible.
A free-form tagging system allows contributors to add attributes to parts of the map, with a standardised set of tags used to produce the maps on the OpenStreetMap website. The unrestricted tagging scheme fits in with many web-based collaborative projects, but also avoids having to create a definitive taxonomy of labels and feature types. It also means contributors can add information to the database without having to get a developer or administrator to change any configuration, the aim being to create as few barriers as possible to people contributing.
OpenStreetMap's data model isn't without its critics — many other geodata systems store the specific details of individual features, which produces nicer-looking maps but doesn't store the relationship between different features, other than geographic proximity. This doesn't allow routing, or any other computation of the data.
While members of the project have needed to write software to gather, store and display OpenStreetMap's data, it's not intended to be a software project. "It's all about the data," explains Coast. "Of course, that's only collectable and usable with the tools, but the tools are fairly basic compared to a professional surveyor's kit. Cheap GPS, free software which does the minimum required. It works very well, all things considered."
There are a number of editors available, both online and offline, but most contributors use the Java-based offline editor, JOSM. A Flash-based online editor called "Potlatch" is also being developed, and is aimed at less frequent users of OpenStreetMap, so that quick, simple edits can be made by non-technical users.
There are plans to make it even easier to contribute to the project, by using aerial photography to remove the need for a GPS receiver or to even leave your keyboard. While tracing a photograph is less accurate than GPS trails and doesn't give you street names or other features, it means people can get a basic map of an area without having to visit it.
This will bring OpenStreetMap that bit closer to its ultimate aim of recording the location of every geographic feature on Earth. Coast thinks that the project's current limitations will be overcome sooner rather than later: "Right now we're limited by the accuracy of GPS. This will get better with Galileo, fingers crossed. Then aerial imagery will be needed for building outlines and so on. Certainly, today, we're mapping many points of interest, like pubs, post boxes and the like. To move beyond that we first have to get all the streets, which will take a while. But it won't take that long."