Как рассчитать долготу и широту на заданном расстоянии по большому кругу? - PullRequest
4 голосов
/ 20 ноября 2011

Я хочу наложить большие дуги окружности между аэропортами на карте, используя долготы и широты. Я уже могу получить расстояние и азимут от начальных и конечных координат, но теперь мне нужно создать точки на кривой, чтобы построить их.

То, что я хотел бы, это формула, которая берет начало, пункт назначения и расстояние и возвращает широту / долготу точки, которая находится на этом расстоянии на пути между началом и пунктом назначения.

В настоящее время я аппроксимирую Землю сферой и использую радианы - со временем добавлю поправки на сфероиды.

1 Ответ

2 голосов
/ 20 ноября 2011
currlat = oldlat + d * sin (angle)/ (radius); 
currlon = oldlon + d * cos (angle)/ (radius * cos(oldlat));

где d - пройденное расстояние, а угол в радианах.Это предполагает, что окружность земли составляет 40000 км как на экваторе, так и через полюса.Вы можете конвертировать в радианы ...

Также предполагается, что угол (направление) относительно линии экватора.

Очевидно, что это требует коррекции сфероида.

если вы пойдете на юг, значения греха станут отрицательными, а на севере - положительными.Если вы идете на запад, потому что он станет отрицательным, а восток станет положительным.

d * sin (угол) и d * cos (угол) дают вам изменение.и вы просто рассчитываете новый широта / долгота на этой основе, увеличивая ее относительно окружности земли.

...