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!
I think maybe i get your question. I believe you’re asking:
“How does navigation software decide which task you should do at any point? Is the specific maneuver task hardcoded into the map, or does the device itself decide which task it should tell you to do?”
If that’s the question then the answer is almost entirely the device (or server the device is connected to) decides on the fly. There are generally no navigation instructions hardcoded into the map data (unless there’s a particularly tricky intersection). The navigation software will simply be programmed to use specific task words for each angle of an intersection. Like:
If route angle = -5 to 5 degrees, then say “turn right”
If route angle = 6 to 85 degrees, then say “bear right”