In working through challenge 77 it became apparent that here are a few useful formulae that would help with work like this:
OffsetFromPosition
Input: Point; Bearing; Distance; Units
Output: New point
Degrees to DMS:
Input: Degrees as floating point
Output: string with Degrees; minutes & Seconds
DMS to Degrees:
Inverse of the above