public double GetDistance(double lat1, double lon1, double lat2, double lon2) { double theta, dist; theta = lon1 - lon2; dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) + Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta)); dist = Math.Acos(dist); dist = rad2deg(dist); dist = dist * 60 * 1.1515; dist = dist * 1.609344; // 단위 mile 에서 km 변환. dist = dist * 1000.0; // 단위 km 에서 m 로 변환 return dist; } ////// 주어진 Degree 값을 Radian 값으로 변환 /// /// Degree ///Radian private double deg2rad(double deg) { return (double)(deg * Math.PI / (double)180d); } ////// 주어진 Radian 값을 Degree 값으로 변환 /// /// Radian value ///Degree private double rad2deg(double rad) { return (double)(rad * (double)180d / Math.PI); }
2015년 9월 13일 일요일
위도(Latitude)와 경도(Longitude) 값을 이용한 거리계산
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기