Martijn van Exel hosted a MapRoulette workshop at the annual OpenStreetMap Sate of the Map conference, held online in 2021. The workshop focused on new types of Challenges: Tag-Fix and Cooperative Challenge Types.
2. MapRoulette
● Micro-Tasking for
OpenStreetMap
● Connecting Volunteer
Mappers with Map Fixing
Tasks
● Global Reach
● More than 2 million tasks
● 4300 different Challenges
○ Road alignment
○ POI improvements
○ Waterways / Coastlines
3. MapRoulette in numbers
2million+
Tasks fixed in total
100000+
Monthly tasks solved
3300
Monthly unique visitors
40+
minutes average
time spent
on maproulette.org
110+
Countries
4. MapRoulette Challenges
● Anyone can create challenges
● Simple “Wizard” Steps
● Use your own GeoJSON or an
Overpass query as Task data
● Add custom base maps,
instructions, etc
● Challenge Dashboard with lots
of stats and management
functionality
5. Challenge Types
1. Regular “Classic” Challenges → You supply the task locations / geometry,
but mappers go into iD / JOSM and perform the actual fixes
2. Tag Fix Challenges → You supply existing OSM features with tag updates,
mappers choose to accept or reject, no editor involved
3. Cooperative Challenges → You supply a complete edit (new / changed /
deleted features, changed / new tags, etc etc), mapper opens in JOSM,
tweaks / confirms / uploads.
Today, we will be looking at types 2 and 3.
7. Tag Fix Challenges
● Suitable for mapping tasks that require updating only the tags on OSM
features
● Example: updating deprecated tagging such as entrance=gate
8. Perform the Tag Change you want mappers to do
● Select all loaded features
● Use the tags / memberships
panel to make the tag
change(s)
● Do NOT upload :)
● Save as .osm file
9. Convert the JOSM change file to MR tasks
● Open a terminal window
● Use the `mr` command to
convert the JOSM change file
to MapRoulette task JSON
● The tool is slow so be patient..
$ mr coop tag --out barriergate.json barriergate.osm
10. Create the MapRoulette Challenge
● Use “I want to upload a
GeoJSON file” and select your
just created tasks file
● MapRoulette will detect that it
is a Tag Fix challenge
● As always: make sure mappers
have clear and unambiguous
instructions!
● Mappers will still be able to edit
the features the normal way
11. Result!
● Use “I want to upload a
GeoJSON file” and select your
just created tasks file
● MapRoulette will detect that it
is a Tag Fix challenge
● As always: make sure mappers
have clear and unambiguous
instructions!
● Mappers will still be able to edit
the features the normal way
12. Cooperative Challenges
● Same steps as Tag Fix
● Instead of tag changes, update or
add features
● Example: Community “Import” of
External Data
13. Prepare your data
Assuming you’re working with external
data, for example government
● Check the license first!
● Deduplicate
● Convert tags
● Save as GeoJSON
This step involves careful data
analysis and knowledge of OSM
tagging
14. Load in JOSM and Check
● Load the GeoJSON file in JOSM
● Sample the data, confirm tagging
● Do not upload
● Save the layer as a .osm file
15. Convert the JOSM change file to MR tasks
● Open a terminal window
● Use the `mr` command to
convert the JOSM change file
to MapRoulette task JSON
● The tool is slow so be patient..
$ mr coop change --out tasks.json schools_not_in_osm.osm
16. Create the MapRoulette Challenge
● Use “I want to upload a
GeoJSON file” and select your
just created tasks file
● MapRoulette will detect that it
is a Coop challenge
● Mappers will still be able to edit
the features the normal way
17. Precautions!
The Golden Rules of MapRoulette Challenges
● Provide Clear, Unambiguous Instructions to
Mappers
● Test your Challenges
● Be Responsive to Feedback
● Discuss with the Community if you’re not sure
● Check license for external data
● Don’t “Hit and Run” -- stay involved with your
MapRoulette users
https://tenor.com/view/kermit-the-frog-looking-for-directions-navigate-is-lost-gif-11835765
19. Load Data In JOSM
● Use the Download from Overpass
API download tab
● We want all nodes with the
deprecated “entrance=gate” tag
that don’t have a barrier tag yet.
node[entrance=gate][!barrier];out;