我正在尝试使用Haversine距离公式(如在此处找到:http : //www.movable-type.co.uk/scripts/latlong.html)但我无法让它工作,请参阅以下代码
    function test() { 
    var lat2 = 42.741; 
    var lon2 = -71.3161; 
    var lat1 = 42.806911; 
    var lon1 = -71.290611; 
    var R = 6371; // km 
    //has a problem with the .toRad() method below.
    var dLat = (lat2-lat1).toRad();  
    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; 
    alert(d); 
}
错误是:
Uncaught TypeError: Object -0.06591099999999983 has no method 'toRad' 
我理解是因为它需要执行以下操作:
Number.prototype.toRad = function() {
return this * Math.PI / 180;
}
但是当我把它放在函数下面时,它仍然返回相同的错误消息。我如何使它使用辅助方法?或者有没有其他方法可以对此进行编码以使其正常工作?谢谢!