It all started with a bad edit. We in Juno rely on routing over OpenStreetMap roads, and notice every change that breaks the map matching. One day, we encountered a pretty big breakage caused by reversing some one-way roads. Turns out, all sources available to mappers, and even proprietary alternatives, like Google Street View, were obsolete enough to validate the edit. I told the story in my FOSDEM talk, but the main point is that it gave me an idea.

How fresh a source can be? We’ve got plenty of these, but they all are very old. GPS traces come very slowly, and people still trace lines from ten years ago. Satellite imagery is updated once every few years. Street View photos (that is, Mapillary) is always older than you’d like. If something, like a street direction, has been changed in past two months, you’ve got no way to know it and reflect it on the map, save for surveying it yourself. It’s okay for a small village, but not for New York.

We need NYC data to be as fresh as possible, so few weeks ago we have published all our GPS tracks for you to trace over. Not as raw data, of course, but as a raster tile layer, looking exactly the same as our standard GPS layer. But with more traces. Tens of thousands tracks — just for one day, never older than two days from now. It is updated daily, so remember to clear your cache when confused.

All the data comes from our drivers, so if you see a line on the layer, you can be sure somebody drove there yesterday or a day before. A line over highway=construction? Time to mark the road open. A line in a wrong direction over a one-way street? That’s an error in the map. A segment of highway=secondary with no lines over it? Check the news: it might have been closed recently. If you zoom close enough (tiles are rendered up to z19), you can spot turning lines, allowing for validating turn restrictions.

I believe this is the freshest geodata source available to OSM mappers. No other source consistently gives you data for updating a map as it was few days ago on this scale. The layer is local, but it can demonstrate a possible future for OSM sources.

Obviously, we take privacy seriously. All traces are trimmed from both ends by a random amount, and everything is cut by a bounding box, so you won’t find a lone track going to a specific neighbourhood of Trenton and back again. Time range is offset slightly, so there is no telling on which day specifically a ride occured. Finally, there is no metadata that could link any pixel from these tiles to our internal data or link to real people in some other way.

The technical part was completed in just a day thanks to the open source ecosystem of OpenStreetMap. A special thank you goes to Eric Fischer, who wrote GPX importing and visualizing scripts for OSM. If you are interested in how it works, it is quite simple: a script downloads all our GPX traces for a day, uses Eric’s scripts to make raster tiles, packages them all in a Docker container and uploads it to Amazon EC2.

The layer is already included in imagery suggestions in JOSM, when you edit inside New York City, and will be available in iD 2.15 when it’s released. For now you can use https://gps-tile.junolab.net/{zoom}/{x}/{y}.png for a custom layer (disable “Locator Overlay” to see the lines). The data is published under CC-BY-SA 4.0 with an explicit permission for tracing in OpenStreetMap. We are expecting to expand into New Jersey soon, but there are no fixed dates.

With this data, we aim not only to help mappers in the US to better map the NYC, but also to inspire employees of other companies to share their ride data. Publishing GPS tiles is safe, does not expose any secrets and helps people. If you work in Lyft, Uber, Yandex, Grab or other ride-sharing or car/scooter sharing service, please consider talking to your employer and publishing some open data. Contact me if you have questions or need help convincing.