我有一个使用纬度和经度的距离公式:
distance = EARTH_MILES_RADIUS
* Math.acos(Math.sin(lat1 / RADIAN_CONV)
* Math.sin(lat2 / RADIAN_CONV)
+ Math.cos(lat1 / RADIAN_CONV)
* Math.cos(lat2 / RADIAN_CONV)
* Math.cos((lng2 - lng1) / RADIAN_CONV));
lat1,lng1,lat2,lng2 是双原语。它们以双重原语的形式出现在我面前,对此我无能为力。
问题是,当我有一对相同的经度或纬度时,公式有时会返回 NaN。我相信这是因为我取的数字的反余弦值略大于 1,而实际上它应该正好是 1。如果这些点也是对映的,我可能会遇到问题,它们可能略小于 - 1.
我怎样才能最好地解决这个问题?