Skip to content

Mapillary Integration

Martijn van Exel edited this page Dec 20, 2022 · 8 revisions

Mapillary is a fantastic mapping resource with billions of street-level images and sign / feature detections that can be used for mapping in OSM. The screenshot shows where contributors have collected images while driving, riding a bike, or walking, and where Mapillary has automatically detected storefronts and related signage.

image

All this information is free to use for OSM contributors to improve the map. To aid with that, there are integrations with (Rap)iD and JOSM, the main editing tools for contributing to OSM. Those integrations are great for casual contributions. A deeper integration with MapRoulette would enable more directed use cases. For example, a local OSM chapter would like to start a mapping campaign to add all crosswalks in the city to OSM. They could start by acquiring fresh Mapillary imagery if needed. They would then create a MapRoulette Challenge by defining the area of interest and the feature type (crosswalks). MapRoulette would create the Challenge and mappers can "divide and conquer". Government agencies or companies who have an interest in OSM having a complete inventory of certain features could employ a similar workflow. Let's look at the steps in more detail.

MapRoulette - Mapillary

I'll start on the right.

Mapillary Image Collection

Mapillary offers a few built-in tools to work together on image collection. You can form an organization and add accounts to it. This lets you filter Mapillary contributions on the map so you can easily see the coverage your team has achieved.

mlyteam

Another feature that can help with targeted collection of imagery is the recently released Mapillary Missions. There is currently no option for end users to create missions, but this is something to keep an eye on nonetheless. It reminds me of the "map cake" tools of yore.

We're mostly concerned with the MapRoulette side of things here, but there are a few possible improvements to Mapillary that would help with this workflow:

  1. #TODO add

MapRoulette Challenge Creation

Here's where the bulk of the work would happen. At a minimum, we need a way for challenge makers to identify a) an area of interest (see here and here for existing tickets relevant to this) and b) what Mapillary detections they are interested in and c) how fresh they want the detections to be. The challenge would then be created by retrieving the data from Mapillary, optionally checking against existing OSM data (see below) and creating the challenge. Again optionally, the challenge would periodically refresh to retrieve the latest detections from Mapillary (see also below). UX needs to be designed and built around this.

Bonus: Integrated editor

Right now, MapRoulette users make a roundtrip to iD / Rapid / JOSM / Level0 to make the actual edits in OSM. Tasking Manager for example offers a built-in iD editor making that roundtrip un-neccerary. Having this in MapRoulette would make working on tasks a better experience overall, not just for Mapillary tasks.

//TODO open a ticket for this

Bonus: check for existing OSM features

Adding some complexity but making for more reliably meaningful tasks would be to build a step into the challenge creation process that would retrieve existing OSM data for the desired feature type and offer to discard any detection locations that are within a given distance from the Mapillary detection.

// TODO open a ticket for this

Bonus: continuous challenges

The current Challenge paradigm on MapRoulette is that you start out with a known set of tasks that define the Challenge, and when all tasks are complete, the Challenge is done. (You can "refresh" a Challenge under certain conditions, but this is not common practice.) You can see in the diagram above that we're after something more continuous: the real world is always changing, the map is never "done". This should be reflected more centrally in the MapRoulette Challenge paradigm.

There's an open discussion ticket for this: https://github.com/maproulette/maproulette3/issues/1910

Mapillary has a free vector tile API for retrieving the locations of images and detections, as well as API endpoints to retrieve metadata for all objects.

Postscript

I wrote this document with Mapillary integration in mind, but there are many other point-based map hints that could be integrated with MapRoulette in a similar way: Osmose, Keepright, Kartaview.

MapRoulette 4

General Discussion

Clone this wiki locally