Мне нужна помощь в написании следующего метода:
def get_new_location(current_location, target_location, distance_travelled):
...
...
return new_location
где все местоположения (широта, длинна)
Я понимаю, что существуют разные модели Земли (WGS-84, GRS-80, ...), которые учитывают тот факт, что Земля является эллипсоидом. Для моих целей этот уровень точности не нужен, если предположить, что идеальная сфера достаточно хороша.
UPDATE
Я хорошо настраиваю свой вопрос, принимая во внимание некоторые ответы.
benjismith
утверждает, что на мой вопрос невозможно ответить, потому что между точками на планете существует более одного кратчайшего пути. У него много поддержки в виде голосов, поэтому я думаю, что есть кое-что, чего я не понимаю, потому что я не согласен.
Средняя точка между любыми двумя точками
на сфере есть дуга окружности.
Я допускаю, что это правда, когда две точки находятся в полной противоположности. Под этим я подразумеваю, что обе точки, оставаясь на поверхности сферы, не могли быть дальше друг от друга. В этом случае существует бесконечное число эквидистантных путей, соединяющих обе точки. Это, однако, крайний случай, а не правило. Во всех остальных случаях, в подавляющем большинстве случаев, существует один кратчайший путь.
Чтобы проиллюстрировать: если бы вы держали строку, которая прошла через две точки, и тянули ее крепко, разве не было бы только одного возможного пути, по которому бы цепочка обосновалась (кроме уже описанного случая края)?
Теперь, прежде чем задавать вопрос, получить расстояние между двумя точками и курсом не было проблемой.
Полагаю, мне следовало спросить, действительно ли следующее:
def get_new_location(current_location, target_location, percent_traveled):
new_location.lon = (1-percent_traveled)*current_location.lon+percent_traveled*target_location.lon
new_location.lat = (1-percent_traveled)*current_location.lat+percent_traveled*target_location.lat
return new_location
Если бы я следовал по этому пути, я бы пошел по большому кругу, по прямой линии ... или я был бы совершенно не в себе?
(Я знаю эти термины сейчас из-за ответа Дрю Холла.)