How does my navigation system determine the specific wording it uses about each turn when giving directions? - eviltoast

For example, if it says “bear left” versus “turn left”, what process is it using to make that nuanced judgment?

I see two possible ways:

a) It analyzes the map visually and has an algorithm to decide, based on the angle/curve/etc, which way to describe the turn.

b) Every place where two roads meet has metadata keyed in, indicating what type of turn it is in each direction.

I think option (a) is too expensive to be done in real-time by the end-user’s GPS, so most likely if option (a) is used, it’s done periodically on the server side to generate metadata as in option (b). And then perhaps this metadata is hand-checked by a person, and things the analysis gets wrong are overridden by a person, but all of this is just speculation on my part.

This question came up when some turn-by-turn directions incorrectly said to “bear left” at a standard, right angle intersection. I wondered if someone keyed something in wrong or if there is some little blip in the way the map was drawn at the intersection that we wouldn’t visually detect, but threw off the turn-by-turn.

I expected to easily find an article spelling it out, but I haven’t been able to and it’s driving me crazy not knowing for certain!

  • cmac@lemmy.world
    link
    fedilink
    arrow-up
    19
    ·
    edit-2
    9 months ago

    This depends on what navigation software you’re using, but I have some experience editing the Waze map. The way it works on Waze is that your phone sends the server your desired start and end points, and the server responds with a list of all the intersections you need to traverse in order. (This is actually a series of road segment junctions, wherever the map editors joined two road pieces together). These intersections can contain metadata on how to announce specific turns, but generally don’t because there’s an algorithm that looks at the angle the segments meet at and automatically decides how to describe the turn. The places I’ve seen it manually overridden include intersections where two divided highways meet at an angle far enough from 90° that it gets confused about how to announce a left vs a u-turn. I’ve also seen forks in the road where the side road requires less of a turn than continuing on the main road and the algorithm gives ambiguous instructions, like “continue straight” meaning turn onto the side road.

    Edit: On your point about non-visually noticeable “blips”. This is also pretty common when roads change width right at an intersection (e.g. adding turn lanes). The Waze map doesn’t include road width in its data, so editors usually draw it down the centerline of the road. If the road changes width suddenly, you have to choose between keeping the line straight-ish, or faithfully following the centerline, which can mean that if you were to zoom way in there can be weird jumps and sharp angles that get smoothed out by the visual renderer