Как рассчитать угол между двумя географическими/GPS-координатами?

У меня есть две координаты GPS

например (широта1, долгота1) и (широта2,долгота2)

Может ли кто-нибудь помочь мне найти угол между этими двумя точками.

Значения должны быть от 0 до 360 градусов.


person Chintan Patel    schedule 05.03.2012    source источник
comment
Это домашнее задание? Если да, отметьте его как homework.   -  person    schedule 05.03.2012


Ответы (2)


Взято из этот предыдущий пост SO:

float dy = lat2 - lat1;
float dx = cosf(M_PI/180*lat1)*(long2 - long1);
float angle = atan2f(dy, dx);
person npinti    schedule 05.03.2012
comment
Что такое M_PI и atan2f? - person FaCoffee; 15.12.2016
comment
@CF84: пожалуйста, взгляните на это ссылка для M_PI. Для atan2f посмотрите здесь. - person npinti; 16.12.2016
comment
@FaCoffee M_PIпи. См.: gnu.org/software/libc/manual/html_node/ atan2f – это arc tangent of y/x, см.: en.cppreference.com/w /c/numeric/math/atan2 - person Firzen; 16.08.2019

Я полагаю, вы имеете в виду азимут, а не угол между местоположениями: если (lat1,long1) хранится в объекте Location loc1, а (lat2,long2) хранится в loc2, вы получаете направление от loc1 к loc2 следующим образом:

float bearing = loc1.bearingTo(loc2);

Результат находится в градусах к востоку от истинного севера и его начального азимута (что важно, если loc1 и loc2 далеко друг от друга).

В классе Location есть и другие полезные методы, подробнее см. здесь: http://developer.android.com/reference/android/location/Location.html

РЕДАКТИРОВАТЬ: я предположил Android для ответа, но да, теги не подразумевают, что ...

person Stefan    schedule 05.03.2012
comment
Хорошо, если он на Android, но теги не говорят, что это так. - person JeremyP; 06.03.2012