Ce site a l'algorithme de 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();
MISE À JOUR: Voir ici pour algorith complète Mapping Math et Javascript
Cela vous donnera un nombre compris entre 0 et 360 il est juste une question d'avoir une recherche simple:
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]);
Il est important de noter que votre roulement change réellement que vous vous déplacez autour de la terre. L'algorithme ci-dessus montre initial roulement, mais si vous voyagez sur une longue distance, votre appui pour être sensiblement différent lorsque vous atteignez la destination (si vous ne voyagez à une courte distance [<quelques centaines de kms] , puis il a probablement gagné « t changer assez pour être une préoccupation).