osmandapp / OsmAnd

OsmAnd
https://osmand.net
Other
4.63k stars 1.01k forks source link

Destinations are announced even though there is no destination tag on the way being turned onto #18180

Open spaghetti22 opened 1 year ago

spaghetti22 commented 1 year ago

Describe the bug (required)

On some routes when navigating, OsmAnd announces destinations on turns that don't exist on the way being turned onto.

Describe how the bug can be reproduced (required)

  1. Download the Lower Austria map.
  2. Long-tap on 48.21769° N, 16.46040° E (corner of Strohblumengasse and Ehrenpreisgasse, near https://www.openstreetmap.org/node/31900859).
  3. Select (my UI is in German, I will translate back to English but do not know if that is what is shown in the UI in English): "Aktionen" (Actions), then "Navigiere von" (Navigate from)
  4. Tap "Nach" (To) to select a destination
  5. Tap a point next to https://www.openstreetmap.org/node/683906 on the map
  6. In "Einstellungen" (settings) select "Navigation simulieren" (Simulate navigation)
  7. Start navigation (my settings are: Car, offline mode, no roads set to avoid, not a fuel-saving route, do not allow private access, not delivery service, respect temporary restrictions, normal time to announce instructions; I can tell you further settings if needed)

Describe the actual result (required)

I get these instructions (leaving out ones unrelated to navigation):

  1. nach 250 Metern rechts abbiegen auf die Hardeggasse (after 250 meters turn right onto Hardeggasse)
  2. rechts abbiegen auf die Hardeggasse (turn right onto Hardeggasse)
  3. nach 250 Metern links abbiegen auf die Langobardenstraße (after 250 meters turn left onto Langobardenstraße)
  4. links abbiegen auf die Langobardenstraße (turn left onto Langobardenstraße)
  5. nach 250 Metern rechts abbiegen auf die Stadlauer Straße Richtung Graz, Linz, Budapest (after 250 meters turn right onto Stadlauer Straße towards Graz, Linz, Budapest)
  6. rechts abbiegen auf die Stadlauer Straße (turn right onto Stadlauer Straße)
  7. nach 250 Metern links abbiegen auf die B3 Richtung Graz, Linz, Budapest (after 250 meters turn left on the B3 toward Graz, Linz, Budapest)
  8. links abbiegen auf die B3 Erzherzog-Karl-Straße (turn left onto B3 Erzherzog-Karl-Straße)

then further instructions not relevant to the bug.

Describe the expected result (required)

I expect instructions 5 and 7 to not contain destinations because neither https://www.openstreetmap.org/way/1042430065 nor https://www.openstreetmap.org/way/208344985 has any destination tags on it (rightly, because there are no destination signs there in reality).

That is, I expect instruction 5 to be "nach 250 Metern rechts abbiegen auf die Stadlauer Straße" (after 250 meters turn right onto Stadlauer Straße). I expect instruction 7 to be "nach 250 Metern links abbiegen auf die B3 Erzherzog-Karl-Straße" (after 250 meters turn left onto B3 Erzherzog-Karl-Straße).

This happens for some other routes too; this is merely an example. I suspect that OsmAnd for some reason reads these destination tags from https://www.openstreetmap.org/way/11809610 which is a way that I will turn onto later during the example route, but not at the times that these instructions are announced.

Your Environment (required)

OsmAnd Version: OsmAnd~ 4.5.8 from F-Droid Android/iOS version: Android 13 Device model: Samsung Galaxy S22

yuriiurshuliak commented 1 year ago

To reproduce the bug, I followed these steps:

  1. Download the Lower Austria map.
  2. In the Navigation section, input the coordinates provided: starting from 48.2177584, 16.4602909 to 48.2253886, 16.4244955.
  3. Once the route is calculated, navigate to the Details section and scroll down to the Turn-by-turn tab.

By comparing the Turn-by-turn instructions displayed above with the ones I reviewed, I found some similarities. Specifically, the fourth instruction in the screenshot matches your fifth instruction, and the fifth instruction in the screenshot corresponds to your seventh instruction.

Also it has been noticed that there are incomprehensible destination tags with almost every route change.

However, it's worth noting that the current Turn-by-turn instructions differ from the ones you initially provided.

You can access the route through this link: Link to the route

OsmAnd~ 4.6.0#829m, released: 2023-10-02

spaghetti22 commented 1 year ago

Hi @yuriiurshuliak

Thank you for trying to reproduce this. From what I can tell, the link you provided doesn't calculate the route both you and I got, it seems to use OSRM which takes a different route via Neuhaufenstraße. But the route in your screenshot seems to be exactly the one I got too.

As you can see, the fourth and fifth instructions tell the user to head "towards Graz, Linz, Budapest etc.", which is wrong, there are no destination signs there either in OSM or in reality; those destination signs are only there where you enter the motorway.

If anyone needs more information, do not hesitate to ask me.

vshcherb commented 10 months ago

Destination tags are read ahead for several ways, otherwise there will be a problem for complex intersections and small connecting segments without all tags

vshcherb commented 3 months ago

@yuriiurshuliak please record video of the issue to analyze and provide the link to Osm route / ways

yuriiurshuliak commented 3 months ago

The bug has been confirmed. During navigation, non-existent destinations are announced at turns. This issue is visible in instructions 4 and 5 in the screenshot.

Here are the route segments without any destination tags: To the first video: link To the second video: link

OsmAnd~ 4.8.0#2568m, released: 2024-06-24

vshcherb commented 1 month ago

I guess destinations are taken from https://www.openstreetmap.org/way/11809610 which is 1 km away. So we need to be less agressive when propagating tags and we shouldn't take destinations if it's not current "intersection group" (so it could multiple turns) - here it's 2 intersections away