계산식은 다음과 같습니다.
설명하다:
1. 공식의 경도와 위도는 라디안으로 표시됩니다.
2. Lat1 Lng1은 각각 A 지점의 경도와 위도를 나타내고, Lat2 Lng2는 각각 B 지점의 경도와 위도를 나타냅니다.
3. a=Lng1 -Lng2는 두 지점의 위도 차이입니다. b=Lat1 - Lat2는 두 지점의 경도 차이입니다.
4. 6378.137은 지구의 반경(킬로미터)입니다.
C# 구현 함수는 다음과 같습니다.
공개 이중 DistanceOfTwoPoints(이중 lat1, 이중 lng1, 이중 lat2, 이중 lng2)
{
double radLng1 = lng1 * Math.PI / 180.0;
double radLng2 = lng2 * Math.PI / 180.0;
더블 a = 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 =Math.Round(s * 10000) / 10000;
반환 s;
}
실제 검증 후 정확하게 통과되었습니다. (반환된 결과의 단위는 킬로미터입니다.)