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

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

например (Lat1, Long1) и (Lat2, Long2)

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

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

Ответы [ 2 ]

6 голосов
/ 05 марта 2012

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

float dy = lat2 - lat1;
float dx = cosf(M_PI/180*lat1)*(long2 - long1);
float angle = atan2f(dy, dx);
5 голосов
/ 05 марта 2012

Полагаю, вы имеете в виду ориентацию, а не угол между местоположениями: если (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 для ответа, но да, теги не подразумевают, что ...

...