One of the big features in the beta1 release of iD is drag-and-drop GPX support. Let’s talk GPS!


GPS tracks were one of the fundamental elements that made OpenStreetMap possible in 2005 and 2006. Here’s a totally sweet video made in 2005 by Tom Carden of a courier service’s neat collaboration with OpenStreetMap - they donated hundreds of GPS tracks to provide a great ‘starter’ for a map of London.

Since then, the Rails port (the OpenStreetMap website) has grown support for GPX tracks - you can upload a track, and it’ll provide it through an API. osm-gpx-tile was a first shot at using that API for mapping.

But it gets much better: now you can drag & drop a GPX file onto iD, and using the FileReader API, toGeoJSON, and magic, it’ll show that track in the UI.

This is about to get a lot better, thanks to some work with Ian Dees. OpenStreetMap previously released a massive store of GPX points, but we want more - if you map the current data, you can’t zoom in fully because it lacks decimal accuracy and connectivity - it’s just points.


What we’re interested in just got its first run - 25,000 GPX files exported in 2.5 hours. It’s around 6GB uncompressed / untarred.

What this will eventually make possible is a worldwide GPX tile layer - everyone’s public GPX traces available as a reference layer. I’ve made some early attempts at the other path - a vector-based layer - but it’s a performance pitfall and doesn’t work super well. A global dump means that integrating a GPX-based reference into existing maps will be as easy as adding any other tile layer, and just as performant.


openstreetmap=# select visibility, count(*) as traces, sum(size) as points from gpx_files group by visibility;
  visibility  | traces |   points
 public       | 548314 | 1473675305
 private      | 287087 |  662131168
 identifiable | 235111 |  978767993
 trackable    |  66099 |  224186581
(4 rows)

GPX data is really interesting. It’s a massive data store - OpenStreetMap has 1,851,585,759 nodes but 3,339,574,107 uploaded GPX nodes. Obviously it’s less semantic data with lots of garbage, but it’s tremendously interesting for analysis and smart integration into recommendation systems, help, and more.

This is just a first shot at mapping the test data. This is 3% of OpenStreetMap’s GPX dataset, and has its fair share of glitches. But it’s promising, and has a few extremely detailed tracks.

A complete dump is on its way - Grant Slater and Ian Dees are hard at work on developing the script that does this. In the meantime, imagine what the world will be like when we integrate heavily against the GPX API and can quickly validate road segments based on GPS data.