Die Berechnungsformel lautet wie folgt:
veranschaulichen:
1. Der Längen- und Breitengrad in der Formel wird im Bogenmaß ausgedrückt;
2. Lat1 Lng1 repräsentiert den Längen- und Breitengrad von Punkt A, Lat2 Lng2 repräsentiert den Längen- und Breitengrad von Punkt B;
3. a=Lng1 -Lng2 ist die Breitendifferenz zweier Punkte; b=Lat1 - Breite2 ist die Längendifferenz zweier Punkte;
4. 6378,137 ist der Radius der Erde in Kilometern;
Die C#-Implementierungsfunktion lautet wie folgt:
public double DistanceOfTwoPoints(double lat1, double lng1, double lat2, double lng2)
{
double radLng1 = lng1 * Math.PI / 180,0;
double radLng2 = lng2 * Math.PI / 180,0;
double a = radLng1 - radLng2;
double b = (lat1-lat2) * Math.PI / 180,0;
double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2), 2) +
Math.Cos(radLng1) * Math.Cos(radLng2) * Math.Pow(Math.Sin(b/2), 2)))* 6378.137;
s =Math.Round(s * 10000) / 10000;
return s;
}
Es wurde nach der tatsächlichen Überprüfung korrekt übergeben (die Einheit des zurückgegebenen Ergebnisses ist: Kilometer).