mvexel's diary

Recent diary entries

Trunk in a funk

Posted by mvexel on 6 October 2017 in English (English)

Here is how Wikipedia defines "Trunk road":

A trunk road, trunk highway, or strategic road is a major road, usually connecting two or more cities, ports, airports and other places, which is the recommended route for long-distance and freight traffic. Many trunk roads have segregated lanes in a dual carriageway, or are of motorway standard.

'usually'.. 'many'.. Adverbs that serve to muddle the definition: I still don't know whether a specific road can be classified as a trunk or not.

The OSM wiki has this to say:

Use highway=trunk for high performance or high importance roads that don't meet the requirement for motorway. In different countries, either performance or importance is used as the defining criterion for trunk – see #International equivalence and Highway:International equivalence for guidance on road classification in different countries.

Hmm. Equally noncommittal. But there are reference to places where more specific references are to be found. I am interested in the United States. So let's look there. The 'International Equivalence' section on the highway=trunk page says:

Surface expressway: A relatively high-speed divided road (at least 40 MPH with a barrier or median separating each direction of traffic), with a limited amount of intersections and driveways; or a major intercity highway. This includes many U.S. Highways (that do not parallel an Interstate) and some state highways. Wikipedia reference

..whereas the separate 'International Equivalence' page says for trunks in the United States:

Limited access highway with occasional grade level intersections, or major intercity highway where no motorway exists.

Not precisely the same, but I am starting to see a pattern. The definition of trunk, according to the people who wrote the wiki pages, seems to be a mix of technical and functional road classification:

  • Technical: Designed for speeds > 40 MPH, limited at-grade intersections.
  • Functional: Major inter-city highway where no motorway exists.

Let's try and apply this to some major roads in Utah that I know well and are currently at least partly marked as trunk. (This Overpass query shows all trunk ways in Utah.)

US Highway 6 between Spanish Fork and I-70, currently marked as trunk in OSM. This is a two lane road with a speed limit of 65 MPH, with some exceptions in places. It is the main connection between the Wasatch Front and southeast Utah and southwest Colorado. There is no freeway alternative. **Conclusion: proper trunk.

State Route 154 or Bangerter Highway as it is known locally. Currently marked as trunk but some stretches are marked motorway as well. It is a 4-6 lane divided highway. Some sections have at-grade intersections (Continuous Flow Interchanges among them) but they are spaced pretty far apart. SR 154 is not a major inter-city highway, and there is a reasonable freeway alternative available. However, SR 154 does serve an important connector function between cities and towns west of Salt Lake City and the SLC International Airport. Conclusion: trunk is OK, but motorway sections should be downgraded.

US Highway 89. Currently only marked trunk between Farmington and I-84, where it meets the technical (if not the functional) definition of trunk. Most of the rest of US-89 is two-lane road with a speed limit of 65 or 70 MPH, with local exceptions. If you look at it purely from a functional perspective, only the stretch between Brigham City and the WY border in the North, and the (long) stretch from Provo south to the AZ border can be considered trunk. The section actually marked trunk currently is not part of either of these two. To my mind, the sections that serve important long distance connecting functions should be trunk as well. Conclusion: more sections should be trunk.

Looking at a few of the roads I know and their current tagging in the context of the current wiki definitions, my overall conclusion is:

A road should be tagged trunk in the United States if either of the following conditions are met:

  1. The road is designed for speeds > 50 MPH and has limited at-grade intersections.
  2. The road is a serves an important inter-city connector function, and there is no freeway alternative.

Small stretches where condition 1) is not met, for example a reduced speed limit in a built up area, should be tagged trunk to maintain a continuous classification.

Pretty? No. Works for me? I think so. What do YOU think?

Mapping Center Turn Lanes in the United States

Posted by mvexel on 3 October 2017 in English (English)

When I moved to the United States six years ago, center turn lanes were a new thing to me. Two Way Left Turn Lanes (TWLTL) , as they are officially called, make traffic safer on busy roads where left turns are made frequently, by offering a dedicated lane for left turns:

design Source: MUTCD

When I first started to map these lanes, there was no documentation on the OpenStreetMap wiki on them, so I just started to map ways that have them with center_turn_lane=yes, thinking that I'd revisit them later if the community came up with more sensible tagging scheme.

In 2012, infamous US mapper NE2 created a page dedicated to TWCTL, adopting the British spelling centre_turn_lane=yes. There are around 6000 uses of this tag, most of them in the United States. The page was created without much if any discussion in the US community: there is only one reference to it on the talk-us mailing list[1].

Since 2012, more elaborate tools and tagging schemes have emerged to map lane configurations. I particularly like the Turn Lanes Editor JOSM plugin which, together with the Lane and Road Information paint style, offers an intuitive and visual way to add lane details to ways.


As you can see, when a two-lane road with a TWLTL is tagged using the plugin, the map paint style offers the correct interpretation. The tags on this way would be as follows:

lanes=3; lanes:forward=1; lanes:backward=1; lanes:both_ways=1; turn:lanes:both_ways=left

Even though this looks much more complicated than just centre_turn_lane=yes, the plugin makes it straightforward to map (it even remembers recently used configurations so you can easily apply to other ways) and it uses the generic lanes tagging schema that is already in wide use, and allows for tagging even the most complex lane configurations.

TWLTL have been a topic of discussion in the Telenav mapping team. We have been adding a lot of lane configuration details in Detroit and Phoenix. For now, I gave the team the following guidance:

  • For ways that don't have TWLTL tagging yet, use the plugin and the generic lanes / turn:lanes schema.
  • Where (local) mappers have already added centre_turn_lane tagging, leave it alone.

I would rather have one consistent tagging style for the United States (and other countries where TWLTLs are common. I would prefer to use the lanes / turn:lanes tagging for that. What do you think?

[1] The OSM mailing lists are notoriously hard to search. I used wget -r -np -l 1 -q -A gz && find . -name \*.gz -exec gunzip {} + && find . -name \*.txt -exec cat {} + | grep centre_turn_lane

Many Mappy Minutes

Posted by mvexel on 28 September 2017 in English (English)

In my last diary, I announced that I would be restarting the virtual Mappy Hour for US / North America mappers. We had our first edition tonight and I enjoyed it very much.

Around 10 people participated. Kate Chapman from OpenStreetMap US joined us to talk about the upcoming State of the Map US conference, which is only four weeks away. We chatted about a variety of interesting topics: welcoming new members, how people become interested in OSM, membership of the OSM Foundation, hack weekends, how to best announce OSM events, and many more things.

The plan was to have this be a mappy 'hour' but we ended up spending two hours talking. We came up with a new name: Many Mappy Minutes. We decided to organize it about once a month. The next Many Mappy Minutes will be on November 15, at 5:30pm Pacific Time. Zoom worked well, so we will continue to meet on there: . You can also dial in from a normal phone. I hope to talk to you then!

OpenStreetMap US Mappy Hours Reboot

Posted by mvexel on 18 September 2017 in English (English)

A few years ago I started a bi-weekly video chat for US mappers, called Mappy Hours. They were fun and varied, with topics ranging from tagging discussions to a presentation about OpenHistoricalMap and many things in between.

Then we all got busy and the Mappy Hours stopped. I was recently reminded about them on the OSM Slack channel, and I thought it would be nice to restart them. So here are the details of the first Mappy Hour:

Wednesday September 27 at 5:30pm Pacific Time

We used to use Google Hangouts, but there were problems with that: a limited number of video participants, you couldn't call in, plugins.. There is no perfect solution but I have had success with Zoom so we will try that. You can either download the Zoom client or call in using your phone.

Zoom link

There are local dial in phone numbers for many countries.

The topic for the first Mappy Hour will be State of the Map US. What are you looking forward to? Do you have a presentation you want to promote? Do you have ideas to make the conference even better than previous years? Let's talk! Even if you are not planning to attend SOTM US, I invite you to attend: there will be plenty of time to talk about other things as well.

MapRoulette newsletter

Posted by mvexel on 13 June 2017 in English (English)

I am still sending out (almost) monthly MapRoulette newsletters. The latest one just went out! If you are interested in receiving them you can see the latest newsletter and subscribe here.

How would you map this?

Posted by mvexel on 11 May 2017 in English (English)

I am trying to figure out mapping complex intersections and I am a little stumped :) To completely represent all possible lanes and turns in an intersection, you would need to define:

  1. The lane layout (turn lanes, through lanes)
  2. The lane connectivity (which lane connects to which at the far end of the intersection)

If I asked you to map this intersection completely, how would you do it? Which (combination of) turn / lane tagging schemes would you use?


(If you're interested, this type of intersection is a CFI or continuous flow intersection.)

Latest MapRoulette newsletter

Posted by mvexel on 28 April 2017 in English (English)

I am going to stop posting the full monthly MapRoulette newsletter here from now on, but the April newsletter has just been sent to the subscribers! You can view it here.

Subscribe to the newsletter on this page.

Maproulette Newsletter - March 2017

Posted by mvexel on 27 March 2017 in English (English)

Here is the latest from the MapRoulette world! If you want to get this newsletter in your mailbox, you can sign up here!

featured MapRoulette was featured in the JOSM message of the day!

MapRoulette has seen a lot of activity in the past month! A total of 407 mappers have logged on and fixed more than 32000 tasks. That is really cool.

New and notable challenges

Also, lots of new challenges! 539 to be precise created in the last month. I know that challenges can still be hard to discover (working on that, I would welcome ideas and help there!) so I want to just manually highlight some challenges that look interesting. If you want your challenge highlighted in this newsletter, please write to!


The latest from Github

How to: Task Instructions

Perhaps you have seen that the task instructions do not always fit in the panel.


That is annoying because it can be unclear what you should do. Usually this is caused by hyperlinks that are too long and can't be broken up. If you are a Challenge creator, you can avoid this by using markdown to wrap the hyperlink. Instead of using the raw link in your instruction (, use this: [description]( it will be displayed like this: description.

Help Wanted: Challenge Administrators

With so many new challenges coming in, it would be great if a few of you would volunteer to help with Challenge maintenance. That means looking at new Challenges that users create to see if they make sense, and helping the Challenge creators to improve them if needed. If you are interested in helping with this, email!

That's it for this month. Please write in if you have suggestions for this newsletter. Happy mapping!

MapRoulette newsletter

Posted by mvexel on 9 March 2017 in English (English)

Here's the latest from the MapRoulette world!

New version released

If you head to, you will see that we have a new release out, 2.0.3. This release addresses some annoyances with the keyboard shortcuts, adds a German translation (das freut mich! Thanks nebulon42!) and cleans up the interface in a few places.


A new section displaying keyboard hints

Mapping Activity

In the past 30 days, we fixed almost 18000 tasks in MapRoulette.


Metrics for the last 30 days. You can see these for yourself on

The most popular challenges were:

  1. Self-Intersecting building outlines - all done!
  2. Crossing Ways: Highway-Railway, US - 55% done, still more than 17000 tasks available
  3. CHN_BuildingRoadIntersectionCheck, 34% done, still 2800 tasks available
  4. Self-Intersecting landuse outlines (World-wide), all done!
  5. Open Rings, all done!

Looking for something to do?

Some interesting Challenges that still need help:

By the way: I created the abbreviated road name challenges using an Overpass query. Did you know that you can turn any Overpass query into a MapRoulette challenge? Read this to learn more.

And also...

  • Do you want to see your own challenge featured in this newsletter? Need help creating your challenge? Contact us at!
  • Do you want to receive this newsletter in your inbox in the future? Sign up here!
  • The MapRoulette Questionnaire is still open if you want to share your opinions on MapRoulette! One lucky participant will receive a mappy prize at SOTM or SOTM US.

MapRoulette newsletter

Posted by mvexel on 9 March 2017 in English (English)

Here's the latest from the MapRoulette world!

New version released

If you head to, you will see that we have a new release out, 2.0.3. This release addresses some annoyances with the keyboard shortcuts, adds a German translation (das freut mich! Thanks nebulon42!) and cleans up the interface in a few places.


A new section displaying keyboard hints

Mapping Activity

In the past 30 days, we fixed almost 18000 tasks in MapRoulette.


Metrics for the last 30 days. You can see these for yourself on

The most popular challenges were:

  1. Self-Intersecting building outlines - all done!
  2. Crossing Ways: Highway-Railway, US - 55% done, still more than 17000 tasks available
  3. CHN_BuildingRoadIntersectionCheck, 34% done, still 2800 tasks available
  4. Self-Intersecting landuse outlines (World-wide), all done!
  5. Open Rings, all done!

Looking for something to do?

Some interesting Challenges that still need help:

By the way: I created the abbreviated road name challenges using an Overpass query. Did you know that you can turn any Overpass query into a MapRoulette challenge? Read this to learn more.

Do you want to see your own challenge featured in this list? Need help creating your challenge? Contact us at!

Adding unknown roads using ImproveOSM

Posted by mvexel on 24 February 2017 in English (English)

When using ImproveOSM, the Telenav tool to find and add missing roads (and other missing things) in OSM, sometimes there is just no detailed aerial imagery to see exactly what road type it is.


While you could say, 'Well without being able to see, I won't add anything'. But because ImproveOSM uses actual GPS traces from drivers, you know that people have been driving there. From the image in the example you can see that a fair number of people must have taken this route, so there must be some sort of road there.

So what I suggest is to add the road as simply highway=road (generic road tag). Then you or someone else can improve it later, based on better imagery or local knowledge.

The example in the image is this new way.

Remember that you can select multiple tiles on ImproveOSM by holding Shift while selecting. That way you can more quickly mark multiple tiles as Solved.


Creating MapRoulette Challenges from GeoJSON

Posted by mvexel on 8 December 2016 in English (English)

This post also appears on the MapRoulette wiki

Creating MapRoulette challenges has never been easier. You can use the API or the brand new Challenge Wizard. I will cover the API in a future post. I have already covered the Wizard in general in a previous post, but right now I want to focus on creating a Challenge with a GeoJSON file.

In my example case, I have a GeoJSON file containing all the bus stop locations in Utah. I downloaded these as a Shapefile from the Utah GIS portal and converted them to GeoJSON using QGIS (there are other methods too, like ogr2ogr but I am too old for that). The result looks like this:

    "type": "FeatureCollection",
    "crs": {
        "type": "name",
        "properties": {
            "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
    "features": [
            "type": "Feature",
            "properties": {
                "StopId": 13840.0,
                "StopName": "HILL FIELD RD @ 1891 N",
                "StreetNum": 1891.0,
                "OnStreet": "N HILL FIELD RD",
                "AtStreet": "ANTELOPE DR",
                "City": "LAYTON",
                "InService": 1,
                "Bench": 0,
                "Shelter": 0,
                "Lighting": 0,
                "Garbage": 0,
                "Bicycle": 0,
                "Transfer": 1,
                "LocationUs": "Bus Stop",
                "UTAStopID": "101001"
            "geometry": {
                "type": "Point",
                "coordinates": [

With this GeoJSON, I go to MapRoulette. After logging in, I go to my Project and create a new Challenge. (For more details on this, see my original post on creating challenges.) I enter the basic information for the Challenge:


Then I go to the next screen to choose my GeoJSON file:


I choose sensible numbers for the default zoom levels and base map:


And then I can complete my Challenge.


After a while I hit refresh in the browser and see that my Challenge is complete, with a little over 6000 tasks. This is the same as the Feature count in the original Shapefile, so I am happy. I can now go to a random task:


And see what the challenge looks like:


Looks pretty good! I can also click on the marker to see the GeoJSON properties:


Now everyone can help add bus stops near me!

But wait...

A word on the quality of this Challenge. It is really hard to verify that a bus stop actually exists using just Bing imagery. So this Challenge may not be suitable for anyone who does not already know the area very well. Another good source for people who don't know the local area is OpenStreetCam or Mapillary imagery. Without knowing if there is coverage for these sources, the Challenge can be hit or miss.


Finally, MapRoulette does not (yet) add the location of the new node to JOSM or iD when you click 'Edit', so you end up switching back and forth between MapRoulette and editor to figure out where to add the bus stop.

In the future, we want to extend MapRoulette to support better handling of GeoJSON source data:

  • Automatic adding of the feature to JOSM or iD (if possible) when clicking 'Edit'
  • parsing of GeoJSON properties and adding them as tags for the new feature

So with a properly formatted GeoJSON you could take most of the hard work out of mapper's hands and they would just need to verify and upload. That would be great progress for community-driven human imports. Please help make this happen, contribute to MapRoulette!

Happy Mapping!

`exit_to` --> `destination` in Canada

Posted by mvexel on 24 October 2016 in English (English)

We had a discussion about retiring the use of exit_to in favor of destination for motorway / trunk exit tagging in the US a while ago. Since then, a shift has happened and a majority of exits is now mapped with destination instead of exit_to. This is great for navigation applications that rely on detailed signpost information, such as OsmAnd, and Scout.

With the situation in the U.S. so much improved, a next obvious target for mapping is Canada :) The situation there has been improved already by the community, but also by organized mapping by Mapbox and Telenav. Still, about 1200 exits remain that are tagged with the 'old' scheme. With the help of my colleagues at Telenav we put these in a MapRoulette challenge.


Because both OpenStreetView and Mapillary have good coverage in Canada, I think we should be able to update most of these exits to use the new scheme. Let's give this a go!

Cemeteries in Texas MapRoulette Challenge now powered by Texas Imagery Service

Posted by mvexel on 20 October 2016 in English (English)

Important note: The imagery I use as an example below is different in source from the imagery used for the MapRoulette imagery. The example below shows imagery that was commissioned by Texas itself, and is available in the public domain. The imagery in the MapRoulette challenge is licensed from Google by Texas and made available to MapRoulette specifically. So I can't say positively that it's OK to add this imagery to JOSM or iD, and removed specific instructions to do so.

Have you tried the Texas Cemetery challenge in MapRoulette? If you have not heard about it yet, I posted about it on my diary a few weeks ago. The short version: the friendly folks at TxDOT supplied me with a database of their known cemetery locations, we matched them with existing OSM, and if there was no match, we ask you to map it :)

If you tried it, you may have found though that it can be a bit frustrating :( Bing and Mapbox aerial imagery is often just not detailed enough to see if there is a cemetery or not in the location indicated. I discussed this problem with the friendly folks over at TxDOT, who are very excited about getting more data into OSM. They told me about some of the high resolution imagery that is available to the public through TNRIS, the Texas Natural Resources Information System. Here is an example of some of the amazing data they have:


If you compare that with Bing, it means the difference between seeing a vague blur or seeing the presence of a cemetery very clearly! Super exciting stuff. So we set out to create a TMS endpoint that we plugged into MapRoulette. See the difference!


Go give it another try! Thank you and thanks TxDOT!

Spotting Cemeteries in Texas

Posted by mvexel on 23 August 2016 in English (English)

I am collaborating with agencies in Texas to update both OSM and Texas data. The pilot project deals with cemeteries. I received a file with almost 7000 cemetery locations. (Even if the idea that there are more people living today than have died thus far in human history turns out to be a myth, I think that is quite a lot!).

The first phase of this collaboration is to see which cemeteries in the Texas data actually exist. We will use MapRoulette for that. Simply go to the Cemetery challenge at and start looking at tasks.

If you see a cemetery in the aerial image, click 'skip' to go to the next one. If you don't see a cemetery, click 'False Positive'. If you are in doubt, click 'skip'.

How can you tell if there is a cemetery? Sometimes it is hard. Look for fine patterns defining the plots, and usually there will be a service road connecting the cemetery to the road network. Sometimes, in larger cemeteries, you may also see paths inside the cemetery. Finally, the marker may not be right on the cemetery, so look around a bit as well. Below are some examples of cemeteries and non-cemeteries.

Once we complete stage 1, we will turn to mapping all the cemeteries that are not yet in OSM yet!


There is a cemetery here: fine regular pattern indicating plots, some paths.


There is a cemetery here also.


No cemetery here, just some grass.

Introducing OpenStreetView

Posted by mvexel on 15 August 2016 in English (English)

After almost a year of thinking, development and testing, the OSM team at Telenav is ready to present OpenStreetView to all OSM mappers! OpenStreetview (OSV) is the free and open street level imagery platform designed 100% with OSM and mappers in mind.

We officially presented OSV to the OSM community at State of the Map US where we had a 20 minute talk and a booth where we gave away crazy little remote controlled cars to everyone who signed up :). The cars were gone quickly – almost half of the people at SOTM US signed up! - but you can still see the talk thanks to the great SOTM US organizers who had all the sessions professionally recorded. If you have 20 minutes and don't like reading, watching that video is going to be the best way to be introduced to what OSV is and how you can use it to improve OSM. Or if you are coming to SOTM in Brussels, you can come meet our team there (more remote controlled cars? Who knows!) and attend the workshop.


The OpenStreetView booth at SOTM US

If you do prefer reading, read on! I wanted to quickly introduce OSV, what the components are, why we believe it is the #1 choice of street level imagery for OSM, and of course how to contribute and use it.

OpenStreetView components

OSV is a web site,, free and open source mobile apps for Android and iOS, a specialized Map Editor, a plugin for JOSM, and of course a back end server. Support for iD is also planned.

The web site is where you go to explore imagery from all over the world, see leaderboards and your own profile and trips. To see your personal stuff, of course you will need to sign in. Your OpenStreetView account is linked to your OSM account, so you don't need to create a separate account. All we store when you sign in for the first time is whatever is public on OSM. (If you want to check what that is, go to, changing 8909 to whatever your OSM ID is -- unless you want to see my details.)


The apps are free to download from the play / app store. For Android, you can also download the APK directly. With the apps you can capture trips. They are optimized for driving but also work well for biking and walking scenarios. Apart from recording trips, you can also upload your trips to OSV. This will happen automatically when you enter WiFi, if you want. Finally you can review your local and server trips and see your profile. Even if you have not logged in on the web site, you can log in to OSV with the apps, also through OSM OAuth. Either way, this will create an account for you on OSV.


One thing that is really specific to OSV is that you can link the app to an OBD2 dongle in your car. Those are little devices that read from the OBD2 port in your car. Almost every car has one. (Challenge: find yours!). The dongle reads all kinds of diagnostic info from the car and broadcast it over Bluetooth or WiFi. They cost around 20 Euros. A list of OSV compatible ones is on the OSM wiki. (Ehm, a very small list so far. If you have a different model, please add your experience!)

obd2 dongle

OSV will read the speed and curve to improve the accuracy of the GPS signal that is recorded for your trip. It comes in extrememly handy when GPS reception is poor or lost altogether, for example in dense tree cover or in tunnels. The dead reckoning provided by the OBD2 unit will maintain proper alignment to the road. Here you see what that means when you are driving through a tunnel (blue = GPS only, signal lost, red = with OBD2 connection).


The OSV apps also have sign detection built in. So this is not done on the server but at 60FPS on the client! This means that it will detect speed limit signs, and more to come, in real time and can warn you if you are speeding. This warning feature is almost ready and will be in one of the next builds. (We update the apps very frequently.)


The JOSM plugin is in an early beta stage. Right now it will simply display the locations of images on the OSV server, and you can click on them to show the image in the OSV panel. Basic functionality, but it works :) and we hope that you have ideas (or even code) to improve it.


Speaking of ideas, we already have an active community reporting issues and suggestions on Github. This is the best place to let us know of any bugs and ideas you have about any part of OSV. Github is also where all the source code for all the components mentioned here is located. Almost everything in OSV is open source, and if it is not we are looking at how we can make it open source.

If you do not like Github or do not want to create an account there, you can also write to with your ideas or bug reports. We are also on Twitter as @openstreetview and we are getting on Facebook and Instagram if you're into that kind of thing.

If you check Github, you will see that we also have upload tools for your existing Virb / GoPro and other action camera images. These are Python scripts, but we also have a GUI tool that you can just drag and drop directories onto to upload. This is in early beta but if you want a copy, let me know.


There are two components that I have not mentioned yet: the Map Editor and the back end. I want to save those for a separate post that I will write soon. Here is a screenshot of the map editor:


Why OpenStreetView?

We think that OpenStreetView is the #1 choice for street level imagery for OSM. Not only because it is almost completely open source. You also remain in full control of the data you upload to OSV. You can always delete individual photos, trips or even delete everything and remove your account if at any moment you don't want to be a part of OSV any longer. This option is on the web site, no need to email anyone or submit a request.

Another reason is because we are building a platform that is very tightly integrated with OSM. This is obvious from the way we handle user accounts: log in with OSM, no separate account. But also deeper down the integration with OSM is tight: we map all trips to OSM ways, so we can link back and forth between trips / images and OSM way objects. This opens up all kinds of interesting possibilities, and I want to spend a separate post on that as well.

For now, it would be cool if you would give OpenStreetView a try. Download the app for your phone, sign in and start capturing. Tell us about your experiences. Explore what is already there. And most important please use it to improve OSM!

Note that OpenStreetView is not a project run by OpenStreetMap or the OpenStreetMap Foundation. It is maintained by Telenav, where I work, for the sole benefit of improving OpenStreetMap.

Mapping pedestrian crossings

Posted by mvexel on 10 August 2016 in English (English)

I am on a roll mapping pedestrian crossings (or 'crosswalks' as Americans tend to call them.

First I download a sliver of the map that covers a major road in JOSM:


I think you could also use 'download along way' in JOSM if the road is not nice and straight, but around here they usually are.

Then I pan along the way and add crossing nodes using Shift-R to quickly copy pedestrian crossing tags from the previous node.


This way I can add about 15 pedestrian crossings a minute.

A MapRoulette Update: V2, Pedestrian Safety, GeoJSON, and Floating Ways in China

Posted by mvexel on 15 March 2016 in English (English)

I have been on a bit of a MapRoulette binge lately. MapRoulette 2 is coming along nicely and we are at the point where we can start working on the front end. This is where a lot of your suggestions come in. If you have more ideas about how MapRoulette should (not) work, please take a moment to go to that PiratePad and add them. Thanks!

MapRoulette 1 is still very much alive however! Let's look at what has been happening.

Pedestrian Safety challenges

Last week, I posted new Sidewalk Mapping challenges (Tampa, Salt Lake City, your city?) to help OSM become a better map for getting around as a pedestrian safely in cities in the United States. Given that someone on foot on U.S. streets was hit by a car about every 8 minutes in the past decade, we could use better maps to help prevent accidents.

Speaking of pedestrian safety! Dr. Stefan Keller, a long time OSM enthusiast and founder of the Geometalab at the Hochschule für Technik, Rapperswil launched a really cool initiative to detect missing crosswalks based on analysis of both OSM data and aerial imagery. The results are making their way to MapRoulette, too.


A missing sidewalk example identified by Stefan Keller's work


While I was researching the sidewalks issue, I figured I needed an easier way to create challenges from an Overpass query. I decided to use existing components as much as possible and came up with geojson2maproulette, a Python script that leverages the MapRoulette Python API wrapper and the GeoJSON export functionality from Overpass Turbo to make this a pretty easy process. I think it is useful, and I hope you do too. Definitely get in touch if you need help with it or have ideas for improvements.


Floating Ways in China

The latest addition to MapRoulette is a bunch of 'floating ways' I happened upon when looking at OSM data in China. To see what I mean by 'floating ways', here is a simple example:


What appears to happen a lot when folks are mapping in China is that they trace a bit of road roughly from aerial imagery available, but they do not connect the road to the rest of the network. Although I believe that some (correct) data is better than no data at all, I thought it was worth highlighting these ways. I found more than 9000 in my analysis. If you want to do some mapping in China, this is a great way to get started!

Stay tuned to my diary and follow @maproulette on Twitter if you want to stay informed about what is happening in MapRoulette land! We also have a mailing list and a Slack channel, by the way.

ImproveOSM with your own GPS data - a Field Report

Posted by mvexel on 14 March 2016 in English (English)

This diary also appears on the ImproveOSM blog. Follow ImproveOSM there or on Twitter to stay informed of everything we do with ImproveOSM.

See also Wille's post about this (in Portuguese)

We launched ImproveOSM about 6 months ago as a way to turn the vast amounts of GPS data that Scout users give us into useful and actionable hints mappers can use to add turn restrictions, missing roads as well as wrong or missing one-way streets. The response has been incredible -- since we launched, more than 26 thousand hints have been processed, leading to more than 16 thousand improvements to the map worldwide. I think that is a fantastic result, and we will keep working to make ImproveOSM better based on your feedback.

Initially, we just used our own GPS data to generate the hints. But there is no reason why we couldn't process any GPS data we can get from other sources. So I was really excited when long time Brazil mapper Wille Marcel got in touch with a cool idea. He worked with the Brazilian Environment Ministry, which collects GPS data of the vehicles that work in environmental monitoring. Most of the data are in rural areas where OSM is much less complete. So this was a perfect fit for ImproveOSM's missing roads tool.

After getting the proper permissions from the agency, Wille sent us the GPS data and we started analyzing it.


We quickly realized that the GPS data is much less dense than what we are used to working with. Some missing roads were only driven once. Our algorithm, tuned to higher density data, initially only detected a few tiles. We decided to loosen the detection threshold significantly for this particular dataset. After a few iterations of tweaking and testing, we ended up with more than 5000 tiles containing missing roads based on Wille's GPS data.


The missing roads in Brazil are on ImproveOSM now, so why not go to the web site or fire up the ImproveOSM JOSM plugin and help the Brazilian community out by adding some missing roads?

If you are in a similar position as Wille and know of a source of free and open GPS data for your country, please get in touch with me so we can look at the data and see if we can include it in ImproveOSM.

We are already working with a number of other folks who have lots of GPS data. Soon, the number of missing roads, one-ways, and turn restrictions in ImproveOSM will be much, much bigger. We are also working on a host of new features, so I hope you will stay tuned to the ImproveOSM blog to be among the first to hear about what we have up our sleeves for ImproveOSM and other OSM related projects we are working on. And follow us on Twitter at @ImproveOSM!

Help map some sidewalks for cities in the U.S.

Posted by mvexel on 10 March 2016 in English (English)

This post also appears on the ImproveOSM blog

United States cities are built for cars, with very few exceptions. From where I am sitting right now, I see this:


Cars zooming by incessantly at 70kph.

Finding your way in an urban space that is designed this way is tricky - and often dangerous - if you are walking or bicycling. Sidewalks are often not present, crossing streets can be very dangerous or even impossible. OSM has great tagging for bike lanes and sidewalks, but I find that these crucial tags are often missing on ways that need them most: the four or six lane urban arterials that you see in the picture above.

As I was sitting here asking myself how on earth I would get back to my hotel (which is 10 minutes away) safely, I thought to myself: 'we can fix this problem and make the world a bit safer for those who can't or won't drive.'

MapRoulette to the rescue!

I created this challenge highlighting all primary and secondary ways that have no sidewalk tag in Tampa, Florida. (I am actually in Sarasota now, south of Tampa, but I already fixed all the ways there so that would be a boring challenge.) The idea is to look at the aerial image in JOSM or iD, see if there is a sidewalk, and add the appropriate tag. Adding sidewalk=no is actually just as important as adding both, right or left. Here is an example way from this challenge:


Even zooming further in there is no sight of a sidewalk:


So let's add that information:


And upload!

Create a Challenge for your city

The fun part is that you can easily replicate this challenge for your own city. Here's what to do.

Overpass Turbo

First you head over to Overpass Turbo and run the query that highlights all highway=primary and highway=secondary that have no sidewalk tag:


You can use my query as a template, replacing the GeocodeArea with the name of your city.

Once you have the results, export them to GeoJSON. Let's use a gist:



You can now click on the gist link and see the result on GitHub as well:


We will need the 'raw' GeoJSON content, so click on the 'Raw' button and copy the link it leads you to.


Next we'll use a little tool I created to easily turn the contents of a GeoJSON file into a MapRoulette challenge. To get it, head over to the Github repository and follow the instructions to install the tool.

The tool takes its configuration from a YAML file. The samples directory contains an example for this sidewalks challenge you can use as a template:

# the base URL for the MapRoulette server API to call
#server: "http://localhost:5000/api"

# server API admin credentials
user: devuser
password: mylittlesony

# source file or URL. You can give a list of URLs too, all data will be gathered and added to the same challenge.
# source_file: ....

# source geojson property key to use as your task identifier (optional, will use random UUID if not given)
# identifier_property = ...

# Challenge metadata, see for background
slug: sidewalks-sarasota
title: Add sidewalks to major roads in Sarasota
instruction: This way has no `sidewalk` tag. Usually you can see from the aerial imagery if there is a sidewalk or not. Please add the appropriate `sidewalk` tagging.
help: "Help make OSM be a better resource for safe, walkable streets! Many primary and secondary roads in the US are not safe for pedestrians if there is no sidewalk. This challenge highlights all `primary` and `secondary` ways that have no [`sidewalk`]( tagging whatsoever. You can help by looking at aerial imagery and adding the appropriate `sidewalk` tagging. `sidewalk=no` is just as important to have as the 'positive' values. Thanks for helping make OSM better!"

The only items you would need to change are the source_url (use the raw GeoJSON github link you just copied), the slug (use sidewalks-YOURSTATE-YOURCITY or something similar - this will be the challenge URL component in MapRoulette) and the title (change the city name).

By default this configuration will post to If you want to post to you would need to get in touch with me to get the credentials.

Once you have the YAML config file in order posting to MapRoulette is as simple as:

$ ./ samples/sidewalks-sarasota.yaml --post --activate
Posting 364 tasks...
server alive: True
Updating challenge...
Reconciling tasks...

Let me know if you need any help with this or if you want me to create a challenge for you!