2014-04-10 4 views
1

호버린 공식을 사용하여 위치 간의 거리를 계산합니다.위치 간의 거리 계산

$distance = (((acos(sin(($fromLat * pi()/180)) * sin(($toLat * pi()/ 180)) + cos(($fromLat * pi()/180)) * cos(($toLat * pi()/180)) * cos((($fromLon - $toLon) * pi()/180)))) * 180/pi()) * 60 * 1.1515); 

은 정상적으로 작동하지만, 일부 좌표 값이 NAN을주고있다.

은 당신이 동일한 좌표를 비교하는

fromLat : 22.303894 
fromLon : 70.802162 
toLat : 22.303894 
toLon : 70.802162 
+0

'toLat : 70.802162'보다는'toLon : 70.802162'을 의미합니까? –

+0

NaN이면 거리 = 0.0 –

+0

@ MarkBaker 편집 된 질문. 거리가 0 일 때 0을 얻습니다. 다른 값 집합에 대해서는 거리가 0이므로 'NAN'대신 0을줍니다. – Geek

답변

1

입니다 위해 NAN 제공 값. acos 함수가 1의 아크 코사인을 계산하도록 요청되었지만 실패합니다. 함수를 통과하기 전에 좌표가 동일한 지 확인해야합니다. 또한 숫자를 얻지 못하면 거리가없는 것입니다.