2 라톤 점수 사이의 거리를 계산하고 싶습니다. 간단한 거리 공식 http://www.purplemath.com/modules/distform.htm은 2 가지 다른 측정 값 (위도와 경도)을 다루기 때문에 정확하지 않습니다.2 라돈 점수 사이의 거리
이 문제의 표준 해결책이 있습니까?
2 라톤 점수 사이의 거리를 계산하고 싶습니다. 간단한 거리 공식 http://www.purplemath.com/modules/distform.htm은 2 가지 다른 측정 값 (위도와 경도)을 다루기 때문에 정확하지 않습니다.2 라돈 점수 사이의 거리
이 문제의 표준 해결책이 있습니까?
Haversine formula
을 사용하십시오. 즉, 지구의 표면에 최단 거리입니다 - -에 '된 직후을 제공
이 두 점 사이의 큰 서클 거리를 계산하기 위해'하버 사인 '공식을 사용 을이 시도이 링크를 참조 까마귀는 점들 사이의 거리를 이동합니다 (언덕을 무시하고!).
하버 사인 화학식 :
R = earth’s radius (mean radius = 6,371km)
Δlat = lat2- LAT1 Δlong = long2- long1 A = sin² (Δlat/2) + COS (LAT1) .cos (LAT2) .sin² (Δlong/2) C = 2.atan2 (√a, √ (1-a)) D는 = Rc를
또는 링크로 이동 http://www.movable-type.co.uk/scripts/latlong.html
는 torad() 헬퍼 기능과 함께,이 자바 스크립트 하버 사인 함수를 사용해 내가 사용하는 내지도 앱의 경우
function calculateHaversineDistance(lat1x, lon1, lat2x, lon2) {
var R = 6371; // km
var dLat = toRad(lat2x-lat1x);
var dLon = toRad(lon2-lon1);
var lat1 = toRad(lat1x);
var lat2 = toRad(lat2x);
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
return R * c;
}
function toRad(x) {
return x * Math.PI/180;
}
희망이 있습니다.