J'ai besoin d'obtenir la distance d'un point de latitude/longitude à une ligne. Bien sûr, il faut suivre le Grand Cercle.Distance de Point à Ligne fonction de grand cercle ne fonctionne pas bien.
J'ai trouvé un article sur ce sujet à http://www.movable-type.co.uk/scripts/latlong.html
mais le code ne fonctionne pas correctement. Soit je fais quelque chose de mal, soit il manque quelque chose. Voici la fonction en question. Voir le lien pour les autres fonctions si nécessaire.
var R = 3961.3
LatLon.crossTrack = function(lat1, lon1, lat2, lon2, lat3, lon3) {
var d13 = LatLon.distHaversine(lat1, lon1, lat3, lon3);
var brng12 = LatLon.bearing(lat1, lon1, lat2, lon2);
var brng13 = LatLon.bearing(lat1, lon1, lat3, lon3);
var dXt = Math.asin(Math.sin(d13/R)*Math.sin(brng13-brng12)) * R;
return dXt;
}
lat/LON1 = -94,127592, 41,81762
lat/Lon2 = -94,087257, 41,848202
lat/lon3 = -94,046875, 41,791057
Ce rapports 0,865 miles. La distance réelle est de 4.29905 miles.
Des indices sur la façon de résoudre ce problème? Je ne suis pas un mathématicien, juste un programmeur de longue date.
Moi aussi j'ai quelques problèmes avec le calcul de la distance inter-piste. Je voudrais que vous utilisiez votre code comme exemple pour vérifier mes résultats mais j'ai du mal à comprendre vos coordonnées. Comment se fait-il que vous ayez des valeurs de latitude <-90 quand elle est seulement définie entre -90 et +90? – oschrenk