Je suis le calcul de la distance entre les deux GeoCoordinates. Je suis de tester mon application contre les 3-4 autres applications. Quand je suis du calcul de la distance, j'ai tendance à avoir une moyenne de 3,3 km pour mon calcul, tandis que d'autres applications sont à l'obtention de 3,5 km. C'est une grande différence pour le calcul, je suis en train d'effectuer. Il y a aucune bonne classe bibliothèques pour le calcul de la distance? Je suis la calculer comme ça en C#:
public static double Calculate(double sLatitude,double sLongitude, double eLatitude,
double eLongitude)
{
var sLatitudeRadians = sLatitude * (Math.PI / 180.0);
var sLongitudeRadians = sLongitude * (Math.PI / 180.0);
var eLatitudeRadians = eLatitude * (Math.PI / 180.0);
var eLongitudeRadians = eLongitude * (Math.PI / 180.0);
var dLongitude = eLongitudeRadians - sLongitudeRadians;
var dLatitude = eLatitudeRadians - sLatitudeRadians;
var result1 = Math.Pow(Math.Sin(dLatitude / 2.0), 2.0) +
Math.Cos(sLatitudeRadians) * Math.Cos(eLatitudeRadians) *
Math.Pow(Math.Sin(dLongitude / 2.0), 2.0);
// Using 3956 as the number of miles around the earth
var result2 = 3956.0 * 2.0 *
Math.Atan2(Math.Sqrt(result1), Math.Sqrt(1.0 - result1));
return result2;
}
Que pouvais-je fait de mal? Dois-je le calculer en km et puis les convertir en miles?