我正在尝试使用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

09-25 20:59