New Telenav tool: Fix missing and wrong one-way streets

Posted by mvexel on 30 October 2015 in English (English)

Last month, we released the Missing Roads plugin and web tool. This quickly became a popular pastime for quite a few mappers - one month later, more than 20% of all the Missing Road tiles have already been resolved :)

For the darker and colder November days -- well, if you are on the Northern hemisphere at least -- we thought we would cook up something new to keep us all busy. We ran another analysis on our GPS data to uncover ways that probably do not have the right directionality. Either they should be oneway=yes and they are not, or they are oneway=yes but in the wrong direction.

Here is an example from Karlsruhe, Germany:


The orange arrow points in the direction we think traffic on that street flows based on what we know from our Scout GPS data.

The way we do this is by looking at the directionality of the GPS tracks. If more than, say, 90% of all tracks matched to an OSM way go in a single direction, it is pretty safe to assume that it is a one-way street. We then compare that to how the way is mapped in OSM. If there is no correct oneway tag on the way, you will see the way in this tool.

Let's open the earlier example up in JOSM:


This looks a bit cluttered because there is so much OSM data, but if we zoom in a bit and make the OSM data layer invisible for a moment, we can see from the direction the cars are parked and the arrows on the road that this is indeed a one-way street:


Aerial imagery in JOSM from Bing

We found more than 140.000 (!) of these cases all over the world waiting for us to fix them. This works almost exactly the same as in our Missing Roads plugin and web tool we released last month. You can look at the Missing Roads manual. (I will write a proper manual for the One-way plugin and tool soon.)

Here is the address for the web tool: You can find the JOSM plugin in the JOSM plugin preferences. The source code for the plugin is on Github as always. We started a wiki page for the plugin as well.

Happy mapping and please, as always, let me know what you think :)

Location: 34.098, -118.330

Comment from Sanderd17 on 30 October 2015 at 16:22

Nice tool, though I'm seeing certain issues.

First of all, in my area, most of the issues found seem to be very short road pieces, only a few meters long, part of a big road. They're split up because of route relations, or changes to tags like speed limits. Is there something that makes detecting these small segments easier? See most issues in this area:

Secondly, do you take dates into account? Traffic layouts change often, and streets might change their oneway direction. Perhaps it can be detected by seeing that from a certain date on, 90% of traffic rides in one direction (if the sample is big enough).

Comment from naoliv on 30 October 2015 at 17:14

Suggestion: make it possible to mark invalid/false positives using the web interface. Idea: also use OSM's GPX tracks, if possible (in another layer, like suggest for the Missing Roads)

Comment from flohoff on 30 October 2015 at 17:27

Very cool - I am talking about something like this for years. Critics always said that the 100% accuracy would not be possible and it would be to complicated to maintain the data. I was always advocating that one day we'll have millions of users giving feedback about correctness and completeness of map data.

There we are ...

Thanks a lot for proving this valuable feedback from your telemetry data.

Comment from StephaneP on 31 October 2015 at 09:42

Nice tool ! But in my area, about 90% of the detected oneway, are invalid.

About the Josm plugin : I'm note sure if different button are useful. Perhaps only one with a checkbox solved/invalid. And I don't understand why I must write a comment when I close a segment. If it's invalid, there is nothing to explain, it's ...invalid.

Comment from k1wi on 31 October 2015 at 09:50

I am seeing a lot of false positives. It seems that you are not considering that junction=roundabouts are always oneway, they don't need a oneway=yes tag. Example:

Comment from bielebog on 31 October 2015 at 10:00

That's a neat tool. It's good to see collected GPS data flow back into OSM improvements. It seems that one intrinsic flaw is that traffic that flows into underground parking lots gets properly tracked, but traffic flowing out might not due to GPS receivers getting a proper fix just later on the road. So flow of traffic might indicate a oneway flowing in where in reality traffic flows in both directions. Detecting underground parking entrances in the vicinity of end nodes of marked ways might be a plausibility indicator here.

Comment from _sev on 31 October 2015 at 11:19

Also, it would be cool to take into account oneway=reversible tag:

Comment from sabas88 on 31 October 2015 at 21:40

Nice, I fixed some streets already!

Comment from Hjart on 31 October 2015 at 22:01

Very nice tool. Found a few gems already. The vast majority of what I've seen so far has been false positives though (long stretches of primarily secondary and primary roads, which actually are bidirectional, but not dual carriageway)

Comment from mvexel on 1 November 2015 at 23:08

Hi everyone - thanks a lot for trying out the tool and sharing your experiences. We will be working on improvements to reduce the false positive cases and your responses will be very helpful in doing that. Here's what I see so far:

Very short segments

There seem to be more false positives among these. We will look into filtering these out or otherwise dealing with them.


Using OSM GPS tracks

We will be looking into that. I will check in with Grant to see if we can get a fresh dump of GPS traces. (The most recent one is from 2013.)

Changes over time

Local traffic rules / patterns may change over time, we can see if we can detect changes in traffic flow. We currently do not do that yet.

Roundabout and other less common oneway tagging


Roundabouts are implicitly oneway, we will look into filtering these. Also look at oneway=reversible.

Other improvements

  • Marking tiles as invalid / solved in web interface - we're working on that already (also for Missing Roads.)
  • Change 'Edit in ID' to 'Edit using preferred editor'.

Please try and send a location with any problem you find, so we can reproduce it. That makes it much easier to act on any reported issue. Thanks!

Comment from literan on 2 November 2015 at 09:20

Please do not touch Moscow (Russia) with this instrument. Many streets here have got one-directional this summer and autumn, so there may be two-directional gps-tracks there.

Comment from mvexel on 2 November 2015 at 15:04

literan -- I only found one case in Moscow: - should this be marked as an invalid case?

Comment from RobJN on 2 November 2015 at 23:59

How frequently do you update the heat map on the website? I'll recheck my area when it's next updated.

Comment from Glassman on 3 November 2015 at 00:42

Nice fixes. I really like the statistics for the way. Still false positives, but not sure software could be improved anymore. I'm finding two types of false positives, ferry terminals and apartment service roads. At the Clinton Ferry in WA State, people don't drive in the correct lane as they drive onto the ferry. If they did you'd see two way traffic. The apartment service roads just have small amount of traffic. Might be just one person going out/in the same way each time.

One suggestions - please have the orange circle updated as well when the way is either marked as fixed or invalid, similar to Missing Roads.

Comment from matrioszka on 3 November 2015 at 11:34

thanks for this info :) its very helpful and useful for me

Comment from andrewpmk on 8 November 2015 at 03:30

There are a lot of false positives caused by highway offramps leading to and from a two way road (most often, a service road parallel to the highway). Most of the traffic is going one way, but it is possible to go the other way.

Comment from mvexel on 8 November 2015 at 04:56

andrewpmk -- acknowledged. those are hard to filter out purely based on trips, because like you said, the majority of folks will be driving in one direction. Is there distinctive tagging that we could use to give those cases lower importance?

Login to leave a comment