In reply to TimB:
> Viewranger uses OSM maps, can import gpx files and I believe that it will beep at you if you go off route (or if you approach a pre-set waypoint), but I've not tried following pre-planned routes this way.
I use VR - it works well, up to a point.
The problem is that if you want to use the 'off-route' alarm, then the GPX route better follow the curves of the road which means you have to have waypoints on bends. But that means that if you enable the waypoint alarm you get it going off on each bend as well as at junctions. I've figured out a way round this (process GPX with script to turn off proximity alarm on non-junction waypoints) but it's a bit of a hassle to set up, so I only use it if I really need it.