Thunderforest uses OpenStreetMap for almost all of our map data. We take the raw OSM data, and process it into our spatial databases, which we then use for creating our maps.
The processing involves selecting features we are interested in (many of them!) and also converting some OpenStreetMap concepts like route relations into geometries that we can then show.
We also continuously process all the updates to OpenStreetMap. Our maps show all the new updates within a few hours of the mappers adding them to OSM.
We use OpenStreetMap because it has global coverage, it has incredible amounts of detail, and because it’s being constantly updated by tens of thousands of volunteers.
Any other data source would be either outdated, or only for one region, or contain only a subset of the data of OpenStreetMap.
Company founder Andy Allan was also a volunteer mapper for OpenStreetMap before he started creating maps, so it’s also important to him to create maps for contributors that show all of their efforts in the best light.
OpenStreetMap provides an incredible amount of detail to users. However, we started to create our own maps based on OpenStreetMap data for two reasons:
We wanted to create specific activity maps, which showed only relevant information. If you try and use a ‘general’ map for specific activities it is confusing and frustrating.
We wanted to create more coherent, curated maps. OpenStreetMap’s focus on mapping everything is admirable: but it can lead to an overwhelming and unfocused amount of detail for many use cases.
Here at Thunderforest, we provide careful curation of the data, to highlight the useful information added by mappers that might otherwise be overlooked.
We have the experience to know how to take the raw data, pick out what is important, and make sure our maps are thoughtful, helpful and approachable for end users.
We curate information rather than simply log it.
We also have the experience and software to create our own maps from the data.
To take one small example: we know how to navigate the ‘highways’ tag. The convention in OpenStreetMap is to use this tag for all roads - but also all paths and tracks, including hiking trails, bridleways, racing circuits, and so on. If you just use the highway tag to try to render all the roads, then all the footpaths will look like roads too.
Instead, you need to write code to select just the road values, which is long and varied list in OpenStreetMap. It’s easy to forget one of them, particularly if you don’t see that type of road on the map sample you’re focusing on. However, if you miss a road value out, then the end user will find certain roads missing or others displayed incorrectly.
Now, imagine how many other small examples we navigate on a daily basis. Creating a ‘style’ for OpenStreetMap data is really challenging. We’ve always enjoyed a challenge though.
Upgrade to a paid account when you have tested them out.