cyclestreets / android

The Android app brings CycleStreets routing and turn-by-turn live navigation to your phone.
https://www.cyclestreets.net/mobile/android/
GNU General Public License v3.0
214 stars 217 forks source link

Meld multiple very short straight-on segments #333

Open oliverlockwood opened 6 years ago

oliverlockwood commented 6 years ago

Relates to #301 and #291.

This has been annoying me on my new commute 😄

mvl22 commented 6 years ago

Could you give specific cases of this? We try to get rid of these at server-side already so I'd welcome some test cases.

oliverlockwood commented 6 years ago

Sure thing.

There's a number of issues on https://cycle.st/j63243005

  1. Weird turn left, walk, etc at the end of Ivor Place where simply "turn right" would do.

  2. Turning right onto Yardley Street / continuation / street is so excessive that it's still talking about that by the time you're supposed to be bearing left onto Wilmington Square... so you miss that turning and have to double back.

oliverlockwood commented 6 years ago

On https://cycle.st/j63246770 there are other problems:

  1. Bear left on Calthorpe Street (twice) makes no sense

  2. Bear left into Herbrand Street (twice) is also nonsense

  3. Turn right then two straight ons into Gordon Square

  4. Straight on into Park Square East (past a traffic bollard!) is really unhelpful, and makes you miss the right turn.

mvl22 commented 6 years ago

Weird turn left, walk, etc at the end of Ivor Place where simply "turn right" would do.

That's really a case of dodgy data, which I don't think any routing engine would be able to handle any better. The two roads weren't connected. Fixed in:

https://www.openstreetmap.org/changeset/62705676

Turning right onto Yardley Street / continuation / street is so excessive

Again, dodgy data - there was a small section of cycle track between two "Yardley Street" bits. Now sure how any routing engine would be able to make assumptions here. Fixed in:

https://www.openstreetmap.org/changeset/62705774

mvl22 commented 6 years ago

Bear left on Calthorpe Street (twice) makes no sense

It's because of the choker that's there. This is probably a case we need to improve somehow. https://www.openstreetmap.org/#map=21/51.52536/-0.11442&layers=C

Bear left into Herbrand Street (twice) is also nonsense

Ditto: https://www.openstreetmap.org/#map=20/51.52420/-0.12591&layers=C

Turn right then two straight ons into Gordon Square

Missing name; fixed in: https://www.openstreetmap.org/changeset/62706086

Maybe we need some algorithm to deal with these kinds of small segments.

Straight on into Park Square East (past a traffic bollard!) is really unhelpful, and makes you miss the right turn.

This is a very difficult one, and comes down to the problem that OSM represents spaces as lines. Basically there was a spur and the point at which the road name changes was not in my view correct. Fixed in:

https://www.openstreetmap.org/changeset/62706272

I'm afraid that in most of all these cases I think the problem is ultimately shortcomings in the OSM data and I'm not sure how much we can really do to fix these up at routing level. Ultimately this points to the need at OSM level for better QA tools.

oliverlockwood commented 6 years ago

@mvl22 thank you for submitting the various OSM fixes you describe.

One in particular is worth focusing discussions on for the purpose of this Github issue

Turning right onto Yardley Street / continuation / street is so excessive

Again, dodgy data - there was a small section of cycle track between two "Yardley Street" bits. Now sure how any routing engine would be able to make assumptions here. Fixed in: https://www.openstreetmap.org/changeset/62705774

This one is probably the best example of the kind of fix I could envisage doing client-side, in a similar manner to what we've already done in https://github.com/cyclestreets/android/blob/master/libraries/cyclestreets-view/src/main/java/net/cyclestreets/routing/Segments.kt#L43-L57:

Incidentally, separate question - how long does it take for OSM changes (such as those you've made on this issue) to be reflected in what the routing engine returns? I tried this again just now and got the same results as before.

mvl22 commented 6 years ago

how long does it take for OSM changes to be reflected in what the routing engine returns?

The import date is given at: https://www.cyclestreets.net/help/journey/osmconversion/#import

It takes many days to build 7 routing graphs (3 strategies in each direction plus shortest), each with the geographical size we are now doing.