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