2012-03-05 3 views
5

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

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

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

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

+2

Это домашнее задание? Если да, отметьте его как «домашнее задание». –

ответ

4

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

float dy = lat2 - lat1; 
float dx = cosf(M_PI/180*lat1)*(long2 - long1); 
float angle = atan2f(dy, dx); 
+1

Что такое 'M_PI' и' atan2f'? – FaCoffee

+1

@ CF84: Пожалуйста, взгляните на [this] (http://stackoverflow.com/questions/15231466/whats-the-difference-between-pi-and-m-pi-in-objc) ссылку для 'M_PI' , Для 'atan2f' пожалуйста, посмотрите [здесь] (http://stackoverflow.com/questions/7418353/angle-between-two-lines-is-wrong). – npinti

5

Я полагаю, вы имеете в виду отношение к, а не угол между местами: Если (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

EDIT: Я предположил, Android для ответа, но да, теги не означает, что ...

+2

Это нормально, если он на Android, но теги не говорят, что он есть. – JeremyP