toRad() Javascript 函数抛出错误

2022-01-14 00:00:00 geolocation javascript

I'm trying to find the distance between two points (for which I've latitudes & longitudes) using the technique described here at Calculate distance between two latitude-longitude points? (Haversine formula)

The codes are as below 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

But when I try to implement it, an error shows up saying Uncaught TypeError: Object 20 has no Method 'toRad'.

Do I need a special library or something to get .toRad() working? because it seems to be screwing up on the second line.

解决方案

You are missing a function declaration.

In this case toRad() must be defined first as:

/** Converts numeric degrees to radians */
if (typeof(Number.prototype.toRad) === "undefined") {
  Number.prototype.toRad = function() {
    return this * Math.PI / 180;
  }
}

according to the code segment all at the bottom of the page

相关文章