mvexel's diary

Recent diary entries

Resurrecting Meet Your Mappers

Posted by mvexel on 29 August 2020 in English (English).

A couple of years ago, I released the Meet Your Mappers tool that helps you find active mappers in your area based on live and historic OpenStreetMap data. It is different from other tools that let you locate nearby mappers in that it analyzes actual OSM data instead of changeset metadata, giving a more accurate result. It also categorizes mappers so you can see only ‘power’ mappers, or filter out mappers who are no longer active. I wrote about this tool on my blog before.

I didn’t advertise the tool very much since, and few people were using it. In a server switch it even went offline for a while. Now it’s resurrected, and I also published a video explaining how to use it.

video screenshot

I hope it’s useful, let me know if you have questions! Here’s a direct link to the tool.

MapRoulette News for August 2020

Posted by mvexel on 10 August 2020 in English (English).

We’ve been keeping busy this summer! Here are the highlights for the July releases.

Easier Challenge Creation

We completely redesigned the Challenge Creation Wizard, with a focus on gathering the essentials first, and de-emphasizing less-used settings and options. If you have used the Challenge Creation wizard before, we hope you will appreciate the improvements! And if you have never tried to create a MapRoulette Challenge before, give it a try and see how easy it is to create Tasks for fellow mappers to solve!

Leaderboard Improvements

You can now select a custom date range for the Leaderboard. Existing options like ‘Past Year’, ‘Past 3 Months’, etcetera, will still be available. We also show some more detail about the Challenges most worked on by the top MapRoulette mappers.

Global Live Activity View

Have you ever wanted to see where mappers are solving Tasks in MapRoulette right now? You can now, with the new Global Activity view! You can see new Tasks being solved on a world Map, and a live stream of the activity as well. It’s still experimental and we would love to hear what you think about it!

New Translations

The MapRoulette community has been hard at work translating the MapRoulette UI into more languages. It is great to see MapRoulette become available in more mappers’ native languages! It’s easy to participate in the localization effort at Transifex.

See Nearby Next Tasks

When you confirm and finish a MapRoulette Task, you will now see a map showing more nearby Tasks to solve. You can select whether you would like to work on a Nearby Task next, or a Random Task. This new interactive map view can help you choose!

Set Preferred MapRoulette Tags

To capture additional information from mappers, we introduced MR Tags a while ago. As a Challenge Owner, you can ask mappers to use these tags to, for example, indicate blurry or cloudy imagery. We improved on this system by letting you set Preferred MR Tags, that will show up as pre-filled options when a Mapper completes a Task.

Showing Custom Base Map Layers in Editors

When you set a custom map base layer in your Challenge, mappers will now see this same layer when they’re editing.

MapRoulette 3.5: Task Search Re-imagined

Posted by mvexel on 6 December 2019 in English (English).

A little-known feature of MapRoulette is somewhat hidden away on the Find Challenge page: if you zoom the map in far enough, you see individual Tasks appear on the map.

screenshot of maproulette new find challenge page

You can click on the task markers and learn more about the Challenge, and start the Task. Moreover, you can create a Virtual Challenge that contains all the Tasks on the map—useful for a mapping event or to share with your local mapping group!

Thanks to a complete overhaul of the way we load Tasks on the map, we can now start showing them efficiently at much lower zoom levels. That means that you can get an overview of where Tasks are in your geographical area of interest.

animation showing zooming in to see task clusters

You can use the Filters to determine which Tasks you want to show up on the map, for example only Easy ones. And like before, you can create a Virtual Challenge to make the tasks you see on the map into a Challenge to share with your event or group. (You need to have less than 1,000 Tasks visible on the map to be able to create a Virtual Challenge.)

By default, the Tasks are shown as clusters on the map to make the map easier to read. If the number of Tasks shown on the map is reasonably small (currently under 1,000), you will see an option in the top left hand corner of the map to ‘uncluster’ them if you wish. (Unclustering may make the map harder to interact with, because it will now have a lot of markers to keep track of.)

When you play around with this, you will also notice that the Location Filter is gone from the Filters toolbar. Worry not—it’s not gone completely. We received a lot of feedback that the Location filter was confusing to work with, and with the new Task Map display, it made sense to re-think it. Now, when you first load the map, you can ask to show Tasks Near Me (requiring a one-time browser location request), or near a city, town or other named place by using the Search box.

screenshot of geocoding box

Once you are zoomed in far enough to see Tasks on the map, the Challenge list will automatically be limited to show only Challenges that have Tasks on the current map. If you want, you can change this to still see Challenges everywhere, regardless of what is shown on the map.

As usual, this release contains numerous bug fixes. You can find a full list on the Release page on GitHub.

Happy mapping and let me know your feedback!

Location: The Granary, Salt Lake City, Salt Lake County, Utah, 84101, United States

Introducing MapRoulette Quick Fixes

Posted by mvexel on 16 October 2019 in English (English).

MapRoulette serves you quick tasks that make it easy for you anyone to find something meaningful to map. The way that worked until now required loading the data related to the Task into JOSM or iD, fixing it there, and returning to MapRoulette to say you fixed it, and then move on.

Now, we’re introducing a new type of Task: the Quick Fix. In a Quick Fix Task, MapRoulette will present the suggested fix to you, and all you need to do is click Yes to agree with the fix, and the change will be applied to OSM directly.

Let’s look at an example. Consider this aerial image of a Wendy’s restaurant:

wendy's aerial

You can see from the aerial imagery that this restaurant has a drive_through: you can see cars snaking around the structure on a dedicated lane.

However, this restaurant does not have drive_through=yes in OSM. A simple fix that MapRoulette Quick Fixes are ideally suited for.

As an example, I created a Quick Fix Challenge to add the drive_through=yes tag to Wendy’s restaurants that have drive-through lanes but are not tagged as such in OSM yet. When you go to the Challenge and get your first Task, you will see a screen much like this one:

wendy task

I changed the layout for my MapRoulette Task screen to see the most relevant information. You can do this too.

At the top is the suggested change to OSM tags. By default you only see what will be changed. In this case there is a blue ➕ indicating that a new tag is proposed. You have the option to see all tags as well.

The Completion options are different. You can click YES to accept the tag change, which will then be applied to OSM. If you click NO, nothing happens and you will be given a new task.

I invite you to try it out and leave feedback here or email at Thanks and happy mapping!

For this to work, MapRoulette needs additional permissions from your OSM account, to modify the map on your behalf. You may need to log out and log back in if you have trouble.

MapRoulette 3.3.3 is out!

Posted by mvexel on 26 July 2019 in English (English).

tl;dr the release notes 📗

The latest version of MapRoulette, 3.3.3, was released today on There have been a few notable new features and updates since I last wrote about MapRoulette in the 3.3 release post, so here’s a new diary entry to talk about what has happened since in MapRoulette land!

Virtual Projects

Challenges are organized in Projects. A Project lets you, or your organization, organize Challenges that belong together. You can create as many projects as you like, and move Challenges between them if you want. Each Project’s page lets you review progress metrics and comments for all challenges in a project, combined. This is pretty handy, but also a bit limited. That’s why we added Virtual Projects. Virtual Projects are different in a few ways:

  • You can add any Challenge to a Virtual Project, not just your own.
  • Challenges can belong to more than one Virtual Project.

Just like regular Project pages, your Virtual Project’s page has progress metrics and comments related to all challenges that are currently in your Virtual Project. You create a Virtual Project just like you would a regular Project.

Improved Mapillary integration

We introduced a Mapillary overlay in version 3.1.1, but it was not so great to use yet. We have improved it a lot, it now shows Mapillary image locations that are more relevant to the task location, and we use the native Mapillary viewer widgets, so you can zoom in and easily skip to the next or previous images in a Mapillary sequence.

We hope to further improve Mapillary integration in the future, for example by letting Challenge creators define tasks based on available Mapillary imagery at the task location. Let us know if you have other ideas for integrating Mapillary into MapRoulette in meaningful ways, and what challenge ideas you have based on Mapillary images!

MapRoulette Tags

When you complete a task, you can now add a MapRoulette-specific tag to the task. Currently, you cannot search for these tags in MapRoulette, but they do appear in the CSV and GeoJSON task exports the Challenge owner can download. That makes them particularly interesting for Challenge owners. Say, for example, you have a challenge in an area where you know there may not be enough high-quality imagery available for mappers to complete all the tasks successfully. You can ask mappers to add a tag when they encounter that situation, for example bad-imagery. Later, when you download the tasks export, you can analyze the tags and find out which areas didn’t have good enough imagery (and start an OpenDroneMap + OpenAerialMap project there 🙂 )

We will add more support for MR Tags in the future. Let us know what you want to use MR Tags for! You can email us at or open a ticket on Github.

Other highlights

  • The Korean localization was updated in 3.3.1, thanks @depth221
  • More filtering and display options and general refinements on the Review page.
  • Export tasks as GeoJSON
  • Show Project metrics for selected challenges only

As always, find the complete release notes on Github! Happy mapping!

💨💨On to MapRoulette💨💨

Mapping Project for next week's OSM Utah Map Night: Photo Mapping

Posted by mvexel on 18 July 2019 in English (English).

At OSM Utah, we hold an OSM mapping night every month. If you are in the Salt Lake City area, you should stop by. The details are on our Meetup group.

This month we will do a photo mapping night. Photo mapping is a great way to collect information to map later. Every smart-phone has a built in GPS these days, and let you attach location data to any photo you take. JOSM lets you open photo image files, or even an entire directory with ‘geotagged’ images, and will display them as markers on the map.

It works like this. As you walk around, you just take photos of things you think may not be on OSM yet and you want to map later. That could be anything from a general photo of a building (to map things like roof type, levels), a sign with opening hours of a business, a fire hydrant, a hiking trail (to map width, surface type). Anything that you wouldn’t be able to map from aerial imagery, either because it’s too small, likely obstructed by tree cover, or it can only be observed at street level.

Here’s a few photos I took recently

some photos

In JOSM, you can go into your photos directory and select one or more images to load them onto the map. They will appear as little grey camera symbols which you can click to reveal the photo so you can map the information.

JOSM showing a photo on the map

I think this is a convenient and fun way to map. Before you start, just make sure that your phone is set up to attach location to every photo you take.

For next week, if you’re coming to the mapping night, please take a few photos of things to map in advance so we can make sure it works. We may go out to take some more pictures before we start mapping. See you next week!

Need help with your SOTM US talk submission? Tune in next Monday!

Posted by mvexel on 8 May 2019 in English (English).

One of the cool things about SOTM US is that there’s always a lot of first time speakers. They keep the conference fresh with new stories, topics, ideas. I am part of the SOTM US organization this year, and our goal is to again welcome a lot of first time speakers in Minneapolis, September 5-8.

I remember the first time I presented at a SOTM. It was in Girona in 2010. I was extremely nervous and I had many doubts about my topic and the way I had planned to present it.

But it turned out great. People were interested in what I had to say, had great questions and the experience encouraged me to get more involved with OSM.

So if you have an OSM story, and you have never done a talk at SOTM US, I would really like for you to submit it. To help with that, I am hosting a Zoom session next Monday. In this session I will walk you through the CFP process and I can give you feedback on your talk idea if you want. You can also ask any question about speaking at SOTM US or anything related to it you are curious about.

So mark your calendar: Monday May 13, 8pm ET, SOTM US CFP info session. Join via zoom. (Phone dial-in available also.)

If you are planning on joining the session, I’d appreciate it if you sign up.

If you’re all good to go and just want to submit your talk, please just do so here!

Field Survey Party instructions

Posted by mvexel on 3 May 2019 in English (English).

It’s been a while since I have organized a field survey mapping party. I wanted to write up some instructions for the participants, and realized that there may very well be techniques and methods I am not aware of. So I thought I’d share what I wrote to the group and see if you have any ideas on how to improve on it. Thanks! Oh and if you’re in the Salt Lake City area, please join us tomorrow at 10am!

Message to field mapping party

Here’s a quick run down of common ways to do on the ground surveying for OSM. I recommend any (combination) of the first three, but if you feel adventurous, feel free to give any of the other methods a try.

  • Photo Mapping This is the simplest technique. Just take photos of things of interest. Be sure your phone is set so that it stores location information with the photo. You can then later load the photos in JOSM or otherwise visualize them on a map to remind yourself where it was taken. See here for details on this technique.
  • Mobile Mapping Download a mobile OSM editing app for your phone. For Android, there’s OSMAnd and Vespucci. For iOS there’s GoMap! Please familiarize yourself with these apps, there is a bit of a learning curve, especially if you’re an inexperienced OSM mapper.
  • GPS Tracing If you have a phone with GPS or, even better, a dedicated GPS receiver, you can record a GPS trace as you walk around. Most devices / apps also let you record ‘waypoints’ to remind you of points of specific interest. You can upload the recorded trace to OSM and load it into any OSM editor. This method can be used side-by-side with any of the other methods described here. More info.
  • Field Papers This is the low-tech (but fun and equally usable!) method. You take with you a printed map of the area you want to survey and make notes on it. You can later scan or take a picture of the paper map with your notes, and load it as a background layer in the OSM Editor. I don’t have any recent experience with this method, but if you feel adventurous, you’re welcome to give it a try!
  • Audio Mapping Some people prefer to record quick audio notes to later remind them what they wanted to map. This can be done with a smartphone or a dedicated digital recording device. I have used OSMTracker in the past and found it worked well. You can even have the locations of your recordings show up in the JOSM editor. See here for more info on this method.

A Local Mappers API

Posted by mvexel on 2 May 2019 in English (English).

There’s been countless times where I was mapping someplace far away, and I’ve wanted to ask a local mapper for advice or help.

There’s not many ways to do that effectively, or easily.

An obvious thing to do is to leave a note either on the feature I have a question about or as a map note. Then hope that someone local reads notes. Or you can find local mappers through the Neis ‘Who’s around me?’ tool, but I find that it turns up a lot of stale mappers (who are not active anymore.) Also the tool is not open source, and you can’t integrate it with other things.

I don’t find either of those options very satisfying.

So perhaps we could have an API that queries for local mappers in a radius.

That begs the question what a local mapper is, in technical, queryable terms. A simple approach would be to look at changesets that have a fairly small bounding box, are close to the point you are interested in, and not too old. Group those by mapper, and that will give you a reasonable proxy for ‘local mappers near a point’.

I whipped up a proof of concept API that does just that.

Here’s a request that fetches local mappers near the center of Münster, Germany:


This returns, after some waiting, a list of mappers as JSON:


Each record has the number of local changesets, the OSM user ID and username. The list is ordered by that last number so that the most active local mappers should appear at the top.

Here are the mappers at the top of the Münster local mappers list:

Looking at these mappers’ edits, they all seem to be mappers who may be able to answer a question about a local mapping issue. A promising result!

I’m sure there’s much to be improved on this idea, so please leave your comments or help make it into something practically usable.

Hat tip to ToeBee for ChangesetMD and mojodna for the SQL / PostgreSQL help!

GNIS Hamlets

Posted by mvexel on 30 April 2019 in English (English).

A hamlet in OpenStreetMap is, according to the wiki, “A smaller rural community, typically with fewer than 100-200 inhabitants, and little infrastructure.”. It is smaller than a village but larger than an isolated_dwelling. So, basically, it’s a very small rural town.

Oasis, Nevada. A hamlet in OSM.

According to OpenStreetMap, there are around 750 hamlets in Utah. I know we have a lot of small rural towns but I am not buying that it’s that many. Let’s have a look.

It turns out that all but 20 of the Utah ‘hamlets’ are the result of a poorly documented 2008 import of GNIS points. (There may be more changesets related to this import.) 500 of them have not been touched at all by human mappers since then.

The GNIS import failed to recognize some significant limitations in the GNIS source data:

  1. Many of the GNIS ‘Populated Places’ are not in fact populated. They should be a place=locality in OSM.
  2. There are many urban and suburban ‘Populated Place’ points in GNIS that don’t seem to point to anything locally know by that name.

Any ideas about how to clean this up? Are these patterns present in all states? Do different patterns exist in other places?

MapRoulette 3.3 is out!

Posted by mvexel on 18 April 2019 in English (English).

tl;dr the release notes 🙂

The biggest new feature in version 3.3 is the introduction of reviewing other mappers’ tasks. If you would like to have someone else review the tasks you complete, you can let MapRoulette know. If you’re an experienced mapper, you can volunteer to review other people’s work. In this post we explain how this works, and review some of the other goodies that made it into this version.

Reviewing Tasks

As you fix things via MapRoulette, you can indicate that you would like someone else to review your work. Here’s how you do that. When you mark a task as fixed, you will see a new confirmation dialog:

If you check the box ‘Need an extra set of eyes?’, the task will be added to the review queue. You can also set a global preference in your User Settings to have all your work reviewed by default (you can override it for individual tasks if desired).

If you are a more experienced mapper, you may volunteer to review the tasks that your fellow mappers have requested to be reviewed. To enable this feature, go into your User Settings and check the box to volunteer as a reviewer.

Once you’re in, you will see a new item in your user drop down menu.

Clicking this will take you to the review queue, which you can sort and filter in various ways.

You can now go in and review single tasks, or add the currently visible list to your review queue.

When you review a task, your job is to determine if the mapper solved the task the way they said they would. If it is fixed, you should check if the problem that was described in the task was indeed fixed. If the mapper marked it as Not an Issue or Already Fixed, you should verify that there was in fact not an issue in OSM.

If the original mapper’s work looks fine, you can Approve the task. You can also make some additional edits to complete or fix the original mapper’s work, and mark the task as Approved (with fixes). Finally, if you want to give the task back to the original mapper, you can Reject the task. Whatever you choose, you can leave a comment that will be visible to the original mapper.

Especially when you Reject a task, a comment telling the original mapper what they need to improve is very important. If they didn’t fix the Task in the first place, chances are that they won’t be able to fix it a second time without some help!

As part of the review screen, there are some tools available to you that may come in handy: a link to the change in OSMCha, the option to visualize diffs between changes in Achavi, and the option to pull in the Attic data from Overpass.

Notifications and Email

You can now get notified of events in MapRoulette that may be important to you. The notifications will show up in the new Inbox that you can find in the user dropdown menu. If you have new notifications, there will be a red dot:

Currently, MapRoulette will notify you about the following things:

  • System messages — important MapRoulette system events, like planned downtime. These will be very infrequent.
  • Mentions — Be notified when someone mentions you in a comment.
  • Accepted — Be notified when one of your tasks was reviewed and accepted.
  • Rejected — Be notified when one of your tasks was reviewed and the reviewer asked you to revise the work.
  • Revised — Be notified when one of your tasks was reviewed and accepted, but the reviewer made some OSM edits.

You can set individual notification preferences for each of these in your User Settings. There are four notification levels:

  1. Ignore — no notification whatsoever
  2. Receive but do not email — you will see the notification in your MapRoulette Inbox, but no emails are sent
  3. Receive and email immediately — you will see the notification in your MapRoulette Inbox, and an email will be sent to the address in your User Profile as the event happens
  4. Receive and email daily — you will see the notification in your MapRoulette Inbox, and the notification will be added to a daily email digest that will be sent to the address in your User Profile

Right now, MapRoulette does not require email validation, so please make sure that the email address you enter is valid and yours.

Special thanks!

Special thanks to raphaelpe, depth221, and LoicUV for their awesome contributions! 💯 🎉

Don’t forget to check out the release notes for the full list of improvements and fixes.

OpenStreetMap “mappedness” based on POI density

Posted by mvexel on 10 April 2019 in English (English).

How well mapped is a town in OSM? There are many ways to answer that question depending on how you define “well mapped-ness” (or just mappedness). One simple approach is to look at the number of points of interest (POI) mapped. My assumption is that POI are a higher order feature: mappers establish a base layer of roads first, then move on to enriching the map with POI. So having more POI in an area could be a proxy for mappedness. A benefit is that it’s easy to measure. All you need is the POI data from OSM, and town / city boundaries. I took a stab at it. Here’s a preview:

Prepare the data

Getting POI

We need POI from OSM as the quality indicator. As a proxy for POI, I use nodes that have a name tag. This lets me sidestep the curious OSM attribute hierarchy that would require selecting subsets of tourism, shop, amenity and a few other attribute keys from the data. There’s two ways to go about this. For smaller areas you could use Overpass, using a query like this one:

area[name="Salt Lake City"]->.a; node[name](area.a); out meta;

For larger areas, it’s better to work from an OSM PBF data file, which is the route I took. Download one from your favorite source, like BBBike or Geofabrik. Then use osmium to filter:

osmium tags-filter utah-latest.osm.pbf n/name -o utah-namednodes.osm.pbf

Regardless whether you took the Overpass or PBF route, you now have an OSM file with named nodes.

Place boundaries

How you can get place / city boundaries will depend on where you are. In some areas, OSM itself may be a great source, check Wambacher’s boundaries site. In the U.S., official place boundaries are easily available from Census, which is where I got them.

Loading the data

To do the needed spatial operations, you could use QGIS, but I like PostGIS. So I load the OSM and place data into a spatial datbase.


First I prepare an OSM ‘snapshot’ database:

createdb osm && psql -d osm -c create extension hstore && psql -d osm -c create extension postgis && psql -d osm -f pgsnapshot_schema_0.6.sql

The pgsnapshot_schema_0.6.sql file is part of the osmosis distribution and contains the database schema. Use osmosis to load the data:

osmosis --rb utah-namednodes.osm.pbf --wp database=osm


The TIGER place boundaries come in shapefile format so I use shp2pgsql to load those into a separate table:

shp2pgsql -s 4326 -D -I tl_2018_49_place.shp > places.sql && psql -d osm -f places.sql

Okay, data ready. Now for the processing.

Querying the data

What we want is a measure of POI density. We need two things for each place boundary:

  • The number of POI contained in the place boundary
  • The area size

Let’s add two columns to the place boundary table to hold that information, and a third column to hold the density result:

alter table tl_2018_49_place add column poicount integer; alter table tl_2018_49_place add column areakm2 float; alter table tl_2018_49_place add column poidensity float;

With a smarter query, you could skip the two intermediary tables.. Now let’s fill the columns with the data we need:

update tl_2018_49_place set poicount = (select count(o.*) from nodes o, tl_2018_49_place p where st_within(o.geom, p.geom) and =; update tl_2018_49_place t set areakm2 = st_area(st_transform(t.geom, 2850))/1000000; update tl_2018_49_place t set poidensity = poicount / areakm2;

I use a meter-based projection appropriate for the area so I can get the area size in km^2, but strictly that is not necessary because we’re looking for relative results.


For good measure, I loaded both tables into QGIS, split the density values into quantiles, and used those buckets for visualization of the results, see above. As expected, the cities and towns on the Wasatch Front, where we have a fair number of active mappers, score well in mappedness, whereas smaller towns in rural areas generally score poorly. My QGIS project file is here.

In a follow up post, I will go into how the result could be improved. I would appreciate your feedback as input for that post.

Vote For Me

Posted by mvexel on 1 April 2019 in English (English). Last updated on 11 April 2019.

Update I didn’t get elected, but we have an excellent new board member in Minh. Good luck to the new board!

Hi. Thanks for reading!

tl;dr: I would use my next term to jump-start two permanent OSM US working groups: Growth and Communication. Specifically, I will work with the ED and the rest of the board to recruit 2-4 people for each group and get them started with what they need.


A new Growth working group will focus on developing and executing new ways to find new mappers, especially from groups not well represented. The OSM US census was a good idea that needs follow up. I feel especially strongly about involving more young people through TeachOSM. And how about an OSM GeoBus? We have a lot of resources ($, ED) and we should put them to use for big ideas that reach new groups of people.


A new Communication working group will create a deliberate communications strategy. That sounds fluffy but I think it does not need to be. We need to find out who our audiences are and how to bring them a consistent, positive message from OSM US. I don’t want to get ahead of myself, but I suspect that we need hired help with this soon.

About Martijn

I am a geo professional who has been involved in OSM since 2007. Originally from the Netherlands, I now live and work in Salt Lake City, Utah. I work for Telenav, where I help make car GPS navigation products. Some of those products use OSM, which may pose a conflict of interest from time to time, something I am acutely aware of. I run a local OSM group and help organize State of the Map U.S. I served on the board of the OpenStreetMap Foundation from 2015 to 2018.

Using the new OpenStreetCam upload scripts (and a detour to geotagging with JOSM)

Posted by mvexel on 8 March 2019 in English (English).

The upload scripts are a part of the open source OpenStreetCam platform that are probably not as widely known. You can use them to upload images to OSC that you capture using something other than the Android / iPhone app or a OSC Waylens camera. My colleague Bogdan will publish a blog post going into more technical detail on the ImproveOSM blog soon, but I wanted to share my initial experiences using just the basic uploading functionality.

I don’t want to go into the script setup steps here, but if you are having trouble with that part, I am happy to help out.

Detour: Collecting and preparing my images

If you are just interested in the upload scripts, you can skip this part…

This is the setup I use to collect OSC images when I don’t use the app or the Waylens camera:

It consists of:

  • A GoPro Hero3+ with underwater case
  • A Ram mount with GoPro attachment
  • Spare GoPro batteries and charger (similar to this one)
  • A GPS unit (I use a Garmin Dakota 20 but any old GPS recording device will do)
  • My car

Note that I mention a separate GPS unit. The GoPro Hero3+ doesn’t have its own GPS, so you need a separate GPS recording so you can geotag each image later.

When I am ready to start driving, I set the GoPro to take 1 picture a second, make sure it has a full battery, fire up the GPS and go. The battery lasts around 2 hours, so that coincides nicely with rest stops. Every time I get out of the car to stretch my legs, I change out the charged battery, drop the empty one in the charger and continue.

When I get home, I still need to geotag the images before they can be uploaded to OSC. There are many open source and commercial tools to help you with this, and I have tried many, but I find that good old JOSM does it the best. All you need is the Photo Geotagging plugin. This is how it works. I load the GPX track into JOSM first. Next, I load a set of images without location metadata into JOSM. The plugin will detect this and pop up its window that lets you match the GPX with the images.

Unless the time on your GPS device and the time on your camera are exactly the same, you will need to define the offset in this dialog. This is best done using an image at a known location, so you can visually check in JOSM if your offset is correct. In my case, I stupidly forgot to check the GoPro time setting, and for whatever reason it was reset to the default factory time of January 2013, so I had to calculate a huge offset, as you can see above.

When you’re satisfied with the location matching, you can right click on the ‘Geotagged Images’ layer and select ‘Write coordinates to image header’.

Matching an image at a known location with GPX visually

Okay, now we’re ready to use the upload scripts!

Uploading images

Now that we have a sequence of geotagged images, the process of uploading them to OSC is actually quite simple. In the terminal, call the upload script like this:

cd /path/to/upload-scripts 
source venv/bin/activate # activate the python virtual environment, see setup steps
python upload -p /path/to/image_dir

The script will scan the directory for image files and respond with something like

Searching for sequences...
    Found sequence at path /path/to/image_dir. Sequence type Exif-Photo.
Search completed.

Starting to upload 1 sequences...

For login go to this URL in your browser:
Login and grant access then press ENTER

Next you will need to get an OSM access token, so the script can associate the images with your OSC account. This step assumes that you already created an OSC account using OSM OAuth, but if you’re reading this, you probably already have done that. Copy the OSM url into a browser and hit enter. OSM will respond asking if you want to grant OSC (minimal) access to your OSM account. Authorize this and you can go back to the terminal and hit enter there. the script will then initiate the upload. When it’s done, you will get a link to the OSC trip that has been generated. Congrats!

Fortunately you can manually delete images from OSC….

Here’s one of the trips I uploaded this way.

MapRoulette 3.2 is out!

Posted by mvexel on 6 March 2019 in English (English).

tl;dr the release notes 🙂

✨This is a big one✨ We redesigned MapRoulette to make some things easier to find, improve the workflow, and hopefully make it look prettier 💎 as well. We hope you like it!

First of all you will be greeted by a new homepage. This landing page introduces new users to MapRoulette and suggests some challenges to start working on.

New Homepage


An entirely new section of MapRoulette is the Dashboard. This is your personal window into MapRoulette activity. You can see things like your own recent activity, popular challenges and your tracked tasks here. As with almost everyting in MapRoulette, the Dashboard consists of widgets that you can move around, resize, add and delete to create the layout and information display you desire. You can even switch between multiple layouts.

The new MapRoulette dashboard

The main navigation has changed a little bit. We moved Create & Manage to the user dropdown, because creating and maintaining challenges is a lesser used, advanced feature. We added the Dashboard to the top level navigation, and renamed Challenges to a more inviting Find Challenges.

Oh, and you can now also see how many points you collected right in the top bar!

Improvements in Task Completion

Like the Dashboard, the Task Completion pages are now fully Widget-based 🗂. This means that you can move everything (including the map!) around to organize the page to your liking. You can even save multiple layout preferences. We added an Other… dropdown to the task completion buttons, giving you access to all completion options right away. Before, you had to click Edit before you had access to some of the options, like Too hard / Couldn't see. Finally, you can now quickly override your preferred OSM editor. Previously, you could only access this setting in your user profile.

More Ways To Sort Challenges

You can now 🔢 sort challenges by when they were created, so you can quickly see what’s new, and by popularity.

Happy Mapping!

These are just some highlights of what’s new. The full release notes contain more detail. If you’re interested in helping with development, note that the MapRoulette API repository has moved to the Github osmlab organization and is now called maproulette-api. The Docker configuration to deploy MapRoulette was also updated.

Let us know what you think! Drop us a line at, we always look forward to hearing from you.

More 🆕 coming soon –> Portuguese translation 🇧🇷🇵🇹, Review mode 🤓. Stay tuned!

MapRoulette 3.1.3 is out. Here’s what’s new!

Posted by mvexel on 7 February 2019 in English (English).

tl;dr the release notes 🙂

If you go to now, you will be greeted with the latest point release: 3.1.3. This is likely the final public release before 3.2, which will be a bigger one featuring a design refresh among other things! For now though, let me summarize the highlights of the 3.1.3 release.


MapRoulette is now available in Korean, thanks Dongha Hwang!

MapRoulette in Korean

The Japanese translation was updated to fix minor typos. MapRoulette is now available in 7 languages. If you want to contribute a translation file, have a look at the pull request for the Korean translation to get started. Don’t hesitate to ask if you get stuck!

Task Styling

Thanks to a pull request by Ilya Zverev, MapRoulette now lets you style the appearance of your tasks on the map using the simplestyle standard devised by Mapbox. They have a simple example in their documentation to give you an idea of how to apply styling using simplestyle.

Leaderboard Updates

Have you been fixing tasks in say, the United Kingdom and feel like you deserve some credit for it? Now you can point your friends to the new country Leaderboard and show off your hard work. We use bounding boxes for the countries, so it’s not an exact science, but pretty close in many cases. Another new thing you can do in the Leaderboards is load more results after you scroll down to the bottom. And you may like that we will now always show your place in the leaderboard even if you’re way down.

24th place but at least I show up now!

Other Updates

As usual, there’s more: new keyboard shortcuts, a new search shortcut, display tweaks. Read the full release notes for that. Happy mapping!

MapRoulette 3.1.2 released

Posted by mvexel on 12 January 2019 in English (English).

MapRoulette 3.1.2 is now available on Here’s what’s new!

MapRoulette is now available in Japanese

We added a Japanese translation, thanks!

Share your Challenge list

New filters you apply filters to the challenge list to narrow down your results now become part of the URL so you can share that particular list with others. For example, this URL will show you all Challenges that have to do with roads in South Korea: (there are two, and they’re both very useful and fun to work on).

Edit only current object in JOSM

Some tasks happen to be in areas where a lot of unrelated OSM data exists. This can lead to long loading times in JOSM or even API errors. There is now a setting in your MapRoulette user profile that has JOSM just load the current task feature, if the task is an OSM object.

These are just some highlights. A complete list of improvements and fixes is here.

Sneak Peek at New OpenStreetCam JOSM Plugin

Posted by mvexel on 30 November 2018 in English (English).

You probably already know that OpenStreetCam detects signs in the U.S. (other regions in development, you can help, we’re open source).

Until now, you would see something like this in JOSM if you enabled the signs layer in OSC

The upcoming new version introduces intelligent aggregation, so you’ll see this instead:

The updated plugin will be released very soon, and our JOSM developer Beata will write a blog post going into much more detail on Telenav’s ImproveOSM blog. We look forward to your feedback!

In the mean time, in this video from SOTM US 2018 you can learn the technical background on how we do the aggregation.

Background imagery source: Digital Globe Premium

MapRoulette 3.1.1 Release Notes

Posted by mvexel on 19 November 2018 in English (English).

MapRoulette 3.1.1 is now available on Here’s what’s new!

Mapillary layer

Mapillary images are now available as an overlay on the map. If you’re zoomed in far enough you can select the Mapillary overlay from the Layer dialog.

This is a work in progress. Let us know if you have any suggestions to make it better! And yes, we plan to support OpenStreetCam images soon as well.

Rebuilding Tasks

MapRoulette now supports rebuilding tasks from Overpass based challenges as well as local and remote GeoJSON challenges. You can use the ‘Rebuild’ link at the top of you Challenge maintenance screen to start the process. For Overpass based Challenges, it will simply re-run the Overpass query. For remote GeoJSON files hosted someplace else, it will reload the GeoJSON from there. For local GeoJSON challenges, you will be prompted to select a new GeoJSON file to upload from your computer.

For a rebuild to work, you need to have assigned unique identifiers to Tasks in your Challenge. MapRoulette uses these identifiers to match the new Tasks with existing ones. We created a wiki page to explain this in more detail.

Public Leaderboards

Each Challenge now has a public Leaderboard page! You can access it on the Challenge Browse page.

The Challenge leaderboards work the same as the overall Leaderboard. You can select one month, three months, six months or a year for the period. You get 5 points for fixing a Task, 3 for marking it as Not an Issue or Already Fixed, and 1 point for marking a Task as Too Hard.

See also the Release Notes on Github for a complete summary with links to the relevant tickets.

MapRoulette 3.10 Release Notes

Posted by mvexel on 12 November 2018 in English (English).

MapRoulette 3.10 is now available on Here’s what’s new!

For Mappers

We made changes to the map layer selection. You can select more and more relevant background map layers in MapRoulette. The available layers are retrieved from the OSM Editor Layer Index. For aerial imagery layers, you can also select the Mapbox road overlay.

When browsing for Challenges, you can now sort the results different ways: by age, by popularity and ‘smart’ which also takes into account Featured Challenges and Challenges you saved. The old sorting by name is also still available.

Smaller improvements include support for Level0 as a preferred editor, more keyboard shortcuts and seeing the age of tasks when browsing Challenges.

For Challenge Owners

You can now use mustache tags in your Challenge description. These are placeholders for values that are unique for each task. For example, if you have a value lanes in your source task GeoJSON, you can add something like “We think this road has {{lanes}} lanes. Can you verify this using imagery and update OSM as needed?”. When a task is shown to the mapper, the tag will be replaced with the appropriate value.

You can now organize the Challenge and Project administration screens the way you like them. All components are widgets you can drag, remove, and add. You can even create different views to see different sets of information at a glance.

We also support a new streamable GeoJSON format and give the option to ignore GeoJSON errors.

For the full list of features, bug fixes and changes see the release notes on Github.

Happy mapping!