Questo sito ha l'algoritmo di base:
// in javascript, not hard to translate...
var y = Math.sin(dLon) * Math.cos(lat2);
var x = Math.cos(lat1)*Math.sin(lat2) -
Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon);
var brng = Math.atan2(y, x).toDeg();
AGGIORNAMENTO: Vedi qui per una completa algoritmo mappatura matematica e Javascript
Che ti do un numero compreso tra 0 e 360 quindi è solo una questione di avere una semplice ricerca:
var bearings = ["NE", "E", "SE", "S", "SW", "W", "NW", "N"];
var index = brng - 22.5;
if (index < 0)
index += 360;
index = parseInt(index / 45);
return(bearings[index]);
E 'importante notare che il cuscinetto in realtà cambia come ci si sposta intorno alla terra. L'algoritmo di cui sopra vi mostra iniziale cuscinetto, ma se si viaggia una lunga distanza, la propria posizione per essere molto diversa quando si raggiunge la destinazione (se siete solo in viaggio a breve distanza [<a poche centinaia di chilometri] allora probabilmente ha vinto 't cambiare abbastanza per essere un problema).