Rumus perhitungannya adalah sebagai berikut:
menjelaskan:
1. Bujur dan lintang dalam rumus dinyatakan dalam radian;
2. Lat1 Lng1 masing-masing mewakili garis bujur dan garis lintang titik A, Lat2 Lng2 masing-masing mewakili garis bujur dan garis lintang titik B;
3. a=Lng1 -Lng2 adalah selisih garis lintang dua titik; b=Lat1 - Lat2 adalah selisih garis bujur dua titik;
4. 6378.137 adalah jari-jari bumi dalam kilometer;
Fungsi implementasi c# adalah sebagai berikut:
publik ganda DistanceOfTwoPoints(lat1 ganda, lng1 ganda, lat2 ganda, lng2 ganda)
{
double radLng1 = lng1 * Math.PI / 180.0;
double radLng2 = lng2 * Math.PI / 180.0;
ganda 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) +
Matematika.Cos(radLng1) * Matematika.Cos(radLng2) * Matematika.Pow(Math.Sin(b/2), 2)))* 6378.137;
s =Matematika.Bulat(s * 10000) / 10000;
kembali;
}
Itu disahkan dengan benar setelah verifikasi sebenarnya (satuan hasil yang dikembalikan adalah: kilometer).