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

  • criitz@reddthat.com
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    9 months ago

    I think it’s analyzing the angles between the curves dynamically, with manual overrides in some places where they have been added. I don’t think this would be very computationally expensive to do on the client side, but it could be cached as metadata.

  • TheAlbatross@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    2
    ·
    9 months ago

    I imagine it’s done by hand and your experience with the mistake was just that.

    I remember the early days of this tech where the program controlling the voice output didn’t know how to distinguish between “Dr.”, the abbreviation for doctor, and “dr”, the abbreviation for drive. So it would tell you to turn onto Doctor Martin Luther King Doctor and other wacky things.