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?
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