OpenStreetMap vs Google Maps

Google Maps is currently one of the most popular online mapping services. Their European maps typically use data from TeleAtlas, who collect it with a fleet of high-tech vans.

OpenStreetMap is a collaborative project for creating free and open geo-data. This data is typically collected by individuals, using consumer-level GPS units, on foot/bike/car (I normally use my bike, and an Edge 305).

I was curious how accurate this amateur approach was compared to the techniques used by professionals.

Haywards Heath

Haywards Heath is a small town in West Sussex, in the south east of England. It has a population of 23,000 and covers approximately 10 km².

At the time of this survey, it was largely absent from OpenStreetMap - only the main road through the town was present. This seemed a good opportunity to perform a "from scratch" comparison between commercial and crowd-sourced data.

My survey identified around 500 distinct roads, represented by about 900 ways in OSM (a "way" is the basic road element in OSM; a road that contains a fork is represented as two ways).

Surveying took approximately 2 months, with 2-3 trips per week. This produced 9Mb of GPS data, containing 50,000 samples. Around 700 photos were taken to record street signs or road layout. You can see the final map here.

Google Maps

Some OSM mappers, including myself, place their contributions in the public domain. The remaining data in OSM is licenced under CC-by-SA, and as such any data added to OSM must come with a public domain or CC-by-SA compatible licence (e.g., by deriving from an out-of-copyright source, or obtained by a direct survey).

However once data has been added to OSM, it can safely be compared to other maps. A comparison between the OSM map of Haywards Heath and Google Maps is available here.

Although a like-for-like comparison can be misleading (e.g., Google Maps does not capture bridleways, and house numbers are relatively rare in OpenStreetMap), examining the road network shows 89 "errors" in Google Maps:

View larger map or raw KML
Incorrect Junction (10)
Does Not Exist (14)
Missing Road (37)
Wrong Name (6)
Wrong Type (6)
Wrong Shape (16)

Affected areas were re-surveyed, to confirm that the OSM data is the correct representation (as of October 2007).

Incorrect Junction

These include roads which claim to connect on the map but don't (or vice versa), or which do connect but in a significantly different way to that recorded on the map (e.g., in a different location). You can see an example here.

Does Not Exist

These roads are rendered on Google Maps, but do not exist. Typically these are short stubs off an existing road, or roads that have been destroyed since the data was acquired (often several years ago). You can see an example here.

Missing Road

These roads exist, but are not rendered on Google Maps. Approximately 20% of these were due to a new (circa 2004) housing estate in the south west, however the remainder are probably at least 10 years old.

These roads are almost all residential streets or service roads, rather than connecting roads, and as such these errors are unlikely to be noticed unless they form the start/end of your journey. You can see an example here.

Wrong Name

These roads have an incorrect name. Street names for OSM data were obtained by direct inspection. You can see an example here.

Wrong Type

These roads have the "wrong type". Although this is not always easy to determine, routes that are inaccessible to motor vehicles (foot paths, cyclepaths, bridleways, etc) are typically not rendered on Google Maps.

If such a road was rendered, a test route was created to see if Google would allow you to take that path with a car. If the road is inaccessible to cars, but was included in such a route, it has the wrong type. You can see an example here.

Wrong Shape

These roads have the "wrong shape". This is sometimes difficult to determine, as several of these are probably deliberate inaccuracies introduced to detect copyright violation.

However the accuracy of consumer-level GPS units (5-10m) seems to be perfectly adequate for mapping road networks, and so roads that were sufficiently different in shape (straight when they should be curved, curving the wrong way, etc) were marked as errors. You can see an example here.

All of the Above

A particularly good example is here, which displays an incorrect junction - between a road with the wrong name, and a road with the wrong name and shape which is missing two end streets.