我目前正在使用下面的功能,但它无法正常工作.根据谷歌地图,这些坐标(从59.3293371,13.4877472到59.3225525,13.4619422)之间的距离是2.2公里,而函数返回1.6公里.如何使此功能返回正确的距离?
function getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) {
var R = 6371; // Radius of the earth in km
var dLat = deg2rad(lat2-lat1); // deg2rad below
var dLon = deg2rad(lon2-lon1);
var a =
Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
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
return d;
}
function deg2rad(deg) {
return deg * …Run Code Online (Sandbox Code Playgroud) 我正在尝试atan2数学函数,但我在google excel表中得到了错误的价值.但在javascript atan2函数中获取正确的值.我怎样才能在excelsheet中获得该值?
我在excel中的价值是
atan2(8.6,2.7699)=0.3115
Run Code Online (Sandbox Code Playgroud)
而在javascript中
atan2(8.6,2.7699)=1.259206466337312
Run Code Online (Sandbox Code Playgroud)
我在这里检查了javascript值http://www.univie.ac.at/moe/rechner/rechner.html
任何人都可以说为什么会这样?
如果我想在excel中使用此值,那么我应该使用什么公式?