【发布时间】:2023-03-12 22:22:01
【问题描述】:
我正在尝试使用Calculate distance between two latitude-longitude points? (Haversine formula)@ 中描述的技术来查找两点之间的距离(我有纬度和经度)
代码如下 Javascript:
var R = 6371; // Radius of the earth in km
var dLat = (lat2-lat1).toRad(); // Javascript functions in radians
var dLon = (lon2-lon1).toRad();
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c; // Distance in km
但是当我尝试实现它时,会出现错误提示Uncaught TypeError: Object 20 has no Method 'toRad'。
我是否需要一个特殊的库或其他东西才能让 .toRad() 工作?因为它似乎是 搞砸了第二行。
【问题讨论】:
-
请参阅my answer 优化版本的Haversine 距离。平均而言,它的运行速度是您启动解决方案的两倍。