How far ahead should a guide look?
A fixed trigger radius is tuned for one speed and wrong at every other. U-tour measures the lookahead in seconds instead, so the story finishes as the landmark arrives whether you are walking or sprinting.
The obvious way to trigger narration is a circle. When the listener is within, say, one hundred metres of a landmark, start talking. Every location app has a number like this somewhere, and it works fine as long as everyone moves at the speed the number was tuned for.
Runners don't. At a walking pace of 1.4 metres per second, a hundred metres is over a minute of warning, and the story about the abbey ends long before you reach it. At three metres per second it is thirty seconds, which for a two-paragraph story means you are past the building before the second paragraph starts. Tune the number for runners and walkers get talked at about things they can't see yet.
Measure in seconds, not metres
U-tour's trigger doesn't hold a distance. It holds a lead time: twenty seconds of travel. The radius is derived from that and your current speed, so a walker gets about thirty metres of reach and a runner gets sixty, and in both cases the narration starts roughly twenty seconds before the landmark. The same rule stretches to a bike or a boat without a per-activity table of magic numbers.
Two clamps keep it sane. A floor of eighty metres means the app still works when you are barely moving, browsing a square on foot. A ceiling of twelve hundred metres stops a fast vehicle from pulling in the whole coastline at once.
The cone
Reach is only half the trigger. The other half is angle. U-tour looks in a cone sixty degrees either side of your direction of travel. Inside twenty-five degrees a landmark is "coming up ahead"; outside that it is on your left or right. Anything outside the cone is not a candidate, however close.
That last rule is the one that matters most. Being told about a building you passed a minute ago is the failure that makes an app feel broken, and it is easy to produce with a plain radius, because a circle has no front. The cone gives it one.
Not a firehose
In a dense city centre the trigger would fire constantly if it could. A minimum gap of ninety seconds between cues keeps a block of five listed buildings from becoming a wall of speech. The queue holds the rest, ordered nearest first, and takes the next one when the cooldown clears. Some landmarks go unheard in a dense area. That is the intended trade: the alternative is hearing all of them badly.
What we didn't do
An earlier version had the trigger reach further for "important" landmarks, scaling the radius by a significance rating. It felt sensible and produced a complaint we came to know well: being told about something further away than the thing you were standing next to. The ranking side of that story is its own post. On the trigger side, the lesson was that distance and time are facts about the listener, and significance is an opinion about the place. The trigger runs on facts.