osmlab / osmlint

An open source suite of js validators for OpenStreetMap data, to identify common geometry and metadata problems at scale.
ISC License
84 stars 10 forks source link

Finding missing turn links at intersections #231

Closed planemad closed 7 years ago

planemad commented 7 years ago

How can we find missing turn links between major roads like these? Such missing links can increase the route distance at the turn by upto 50% compared to the actual driving distance.

A good algorithm to quickly find such missing links based on road classes and intersection angles can help create to-fix tasks for data improvement.

screen shot 2017-06-05 at 11 33 52 am screen shot 2017-06-06 at 3 37 28 pm screen shot 2017-06-06 at 3 37 46 pm

cc @Rub21 @dannykath @srividyacb @jothirnadh @maning

planemad commented 7 years ago
daniel-j-h commented 7 years ago

For context: OSRM recognizes these turn links as sliproads and issues better guidance instructions here. Having these turn links mapped therefore will not only lead to better routing but also to better guidance instructions.

Rub21 commented 7 years ago

@planemad @daniel-j-h I spent few hours doing this, but the detector is getting many false positives. https://github.com/osmlab/osmlint/tree/turnlinks/validators/missingTurnLinks , @daniel-j-h maybe do you have some ideas to improve it, I am still thinking to do it better.

daniel-j-h commented 7 years ago

Not sure you can detect these on the planet in general without many false positives. In germany you'd for example expect there to be a traffic signal at the main intersection, a sign or a traffic signal before the sliproad, in right-sided driving countries the turn to go right onto a street, etc. - using angles alone is too ambiguous.

planemad commented 7 years ago

Since these links are more important on wide roads, maybe we could get better results if we limit the input set?

@Rub21 also would be great to review the output for ideas, could you load it into to-fix?

Rub21 commented 7 years ago

@planemad @daniel-j-h : I fixed according:

Intersection of only roads of class: trunk, primary, secondary, tertiary Roads more than 4 lanes wide total (lanes>=4, lanes:forward+lanes:backward>=4)

There are still too many false positive, check here 👇

https://gist.github.com/anonymous/bf581bbc1b07c0e706a6d65e8be4ed70

I will close this ticket until to get another way to detect that issue.