สูตรการคำนวณมีดังนี้:
แสดงให้เห็น:
1. ลองจิจูดและละติจูดในสูตรแสดงเป็นเรเดียน
2. Lat1 Lng1 แสดงถึงลองจิจูดและละติจูดของจุด A ตามลำดับ Lat2 Lng2 แสดงถึงลองจิจูดและละติจูดของจุด B ตามลำดับ
3. a=Lng1 -Lng2 คือผลต่างของละติจูดของสองจุด b=Lat1 - Lat2 คือผลต่างของลองจิจูดของสองจุด
4. 6378.137 คือรัศมีของโลกเป็นกิโลเมตร
ฟังก์ชันการใช้งาน c# มีดังนี้:
DistanceOfTwoPoints สองเท่าสาธารณะ (lat1 คู่, lng1 คู่, lat2 คู่, lng2 คู่)
-
สองเท่า radLng1 = lng1 * Math.PI / 180.0;
สองเท่า radLng2 = lng2 * Math.PI / 180.0;
สองเท่า = radLng1 - radLng2;
ดับเบิล 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 =คณิตศาสตร์รอบ(s * 10,000) / 10,000;
กลับ;
-
ผ่านการตรวจสอบจริงแล้วอย่างถูกต้อง (หน่วยของผลลัพธ์ที่ส่งคืนคือ: กิโลเมตร)