Как рассчитать долготу и широту на заданном расстоянии по большому кругу?

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

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

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

1 ответ

Решение
currlat = oldlat + d * sin (angle)/ (radius); 
currlon = oldlon + d * cos (angle)/ (radius * cos(oldlat));

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

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

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

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

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

Другие вопросы по тегам