OsmAnd+ | Routing issue on Leach Highway eastbound (Western Australia)

Hi, could someone help figure out why my OsmAnd always tells me to go right approaching the intersection of Leach Highway and North Lake Road, but actually needs me to continue straight on Leach Highway?

https://www.openstreetmap.org/#map=17/-32.046251/115.814896

I can’t see any obviously wrong things on the map there.

https://test.osmand.net/map/navigate/?start=-32.046858,115.809661&end=-32.046015,115.820194&profile=car#17/-32.04616/115.81253

The right turn lane markings at the connection with the link road branching off to the left/north could be confusing it.

Is it telling you to turn right into NL Rd, or right onto Leach Hwy (despite it being straight!)?

Interestingly, OSRM & Graphhopper both go through fine, but Valhalla just refuses, as it apparently reckons you can’t get there from here! :thinking:

Garmin MapSource & BaseCamp with Open Street Maps route correctly straight-through

Yes, this seems to be where OsmAnd adds the following instruction: Turn right (C|C|C|+TR) onto Leach Highway 7;1 and go.

Is this a bug in the application, or is there something different about how this link road is implemented?

Does it make any difference which lane you’re in as you approach that spot?

It doesn’t.

Routing apps have no information about which lane you’re in. GPS (and OSM in most cases) simply doesn’t have the required accuracy.

OsmAnd sees two ways branching off from the point and sees that there are turn markings on the road. It probably evaluates each branch point separately and doesn’t consider that the following way also has the same turn markings and that they are all supposed to apply to the next junction. That leads it to consider the right of the two branches as the ‘right turn’, even if the geometry actually continues straight on.

That the section of way it tells you to ‘turn right’ onto actually continues straight on is easy to tell for a human, but in the raw data, such a situation is fairly common for actual legit turns.
Turn markings usually end at the stop line, so the OSM way is often split there and the way inside the junction is mapped without any turn markings. The actual turn happens later, after the turn lane ends.

That means the routing engine cannot ‘simply’ check if the geometry of the way immediately after the turn lane goes in the indicated direction to decide whether it should give instructions for a ‘turn’ or ‘straight on’. Routers usually use some smarter heuristics to generate the turn instructions, but those can fail in some corner cases.


It’s unexpected output for OSM data that looks correct, so it could probably be considered a ‘bug’. You could open an issue in the OsmAnd bug tracker: Issues · osmandapp/OsmAnd · GitHub

Thanks for the evaluation and interpretation!

but in this case, the turn right lane was tagged past the junction of the “incoming way” to the right, across to the “outgoing way” going to the right