2012-03-05 14 views

risposta

4

Tratto da this precedente SO postale:

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

Cosa sono 'M_PI' e' atan2f'? – FaCoffee

+1

@ CF84: Dai un'occhiata a [questo] (http://stackoverflow.com/questions/15231466/whats-the-difference-between-pi-and-m-pi-in-objc) link per 'M_PI' . Per 'atan2f' si prega di dare un'occhiata [qui] (http://stackoverflow.com/questions/7418353/angle-between-two-lines-is-wrong). – npinti

5

Suppongo si intende il cuscinetto e non l'angolo tra le posizioni: se (LAT1, long1) vengono memorizzati in un Location oggetto loc1 e (Lat2, long2) viene memorizzato in loc2 si ottiene il cuscinetto da LOC1 a LOC2 in questo modo:

float bearing = loc1.bearingTo(loc2); 

il risultato è in gradi est del nord geografico e il suo cuscinetto iniziale (che è importante se LOC1 e LOC2 sono ap lontano arte l'una dall'altra).

Ci sono alcuni altri metodi utili nella classe Location, vedi qui per maggiori dettagli: http://developer.android.com/reference/android/location/Location.html

EDIT: ho assunto Android per la risposta, ma sì, i tag non implicano che ...

+2

Va bene se è su Android, ma i tag non dicono di esserlo. – JeremyP