Once routes exist (#55), the app should navigate along it.
- Activate a route and show bearing, distance, and ETA to the active waypoint, with previous, next, and stop controls.
- Compute ETA from leg-aligned VMG, meaning speed projected onto the leg axis rather than onto the instantaneous bearing to the mark. The naive version swings wildly on a layline and is not readable.
- Cross track error against the active leg.
- Automatic waypoint advance from three triggers: the arrival circle, crossing the angle bisector of the incoming and outgoing legs at an interior waypoint, and crossing the perpendicular at a terminal waypoint. Cap the effective arrival radius at a fraction of the leg length so a short leg does not fire instantly. Fall back to the circle alone on the first leg and on a near U-turn.
- A sailing mode setting that suppresses the bisector and perpendicular triggers, so a boat tacking upwind does not advance before it reaches the mark.
- Resuming mid-route snaps to the nearest leg.
- Navigation state survives a restart, so an in-progress passage is still active after a crash.
- Draw completed legs dimmed, the active leg solid, and the rest dashed.
There are some formulas for calculating arrival logic, waypoint progress, and destination progress here

Once routes exist (#55), the app should navigate along it.
There are some formulas for calculating arrival logic, waypoint progress, and destination progress here