Tracking was interfering heavily with hand selecting previous/next waypoints. The only way out I can see right now is to make knob press toggle the auto-tracking off completely. I can try to make the auto-tracking more stingy at the cost of more CPU usage, or perhaps I should switch to using a quadtree based index instead of linear search to find the nearest neighbour.

Basically I used to exhaustively search for the nearest waypoint, and then scan all 'shape' points between the previous and next waypoints. But that would always pull us back to the last point we considered closest. So hand-tweaking didn't really help at all. Right now the search is more limited where it searches only a few points based on the currently selected 'closest' point. And although this allows us to more easily select previous/next waypoints, it also forgets to track us in some cases.

As far as the directions are concerned. I'm using the angle between the 'current bearing' and the direction of the road after the turn. However at low speeds the measurements we get from the GPS are not reliable. I'm probably freezing the current bearing too late and it already started wandering. I've noticed that even when I'm not moving the bearing pointer sometimes jumps. So the GPS is for some reason assuming I'm moving faster than 2km/h while waiting at a traffic light
_________________________
40GB - serial #40104051 gpsapp