我正在尝试使用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()工作?因为它似乎是
拧紧第二行。
最佳答案
您缺少函数声明。
在this case中,必须首先将toRad()
定义为:
/** Converts numeric degrees to radians */
if (typeof(Number.prototype.toRad) === "undefined") {
Number.prototype.toRad = function() {
return this * Math.PI / 180;
}
}
根据所有代码段的bottom of the page