currlat = oldlat + d * sin (angle)/ (radius);
currlon = oldlon + d * cos (angle)/ (radius * cos(oldlat));
где d - пройденное расстояние, а угол в радианах.Это предполагает, что окружность земли составляет 40000 км как на экваторе, так и через полюса.Вы можете конвертировать в радианы ...
Также предполагается, что угол (направление) относительно линии экватора.
Очевидно, что это требует коррекции сфероида.
если вы пойдете на юг, значения греха станут отрицательными, а на севере - положительными.Если вы идете на запад, потому что он станет отрицательным, а восток станет положительным.
d * sin (угол) и d * cos (угол) дают вам изменение.и вы просто рассчитываете новый широта / долгота на этой основе, увеличивая ее относительно окружности земли.