1

我使用 hasrshine 公式计算位置之间的距离。

$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.

它给出NAN的值是

fromLat : 22.303894
fromLon : 70.802162
toLat : 22.303894
toLon : 70.802162
4

1 回答 1

1

您正在比较相同的坐标。该acos函数被要求计算 1 的反余弦值,但失败了。在将坐标传递给函数之前,您需要检查坐标是否相同。此外,如果你没有得到一个数字,结果可能是没有距离。

于 2014-04-10T10:50:48.483 回答