Javascript 哈弗森公式工作不正常
这是我的哈弗森公式代码,基于和的答案: 我用3个不同的位置测试了这一点,第一个位置说距离14790.7英里,而实际上距离44.1英里,每个位置的距离都不同。有些是少量的,另一些是非常大量的。我的数学有问题吗?如果没有,为什么这个代码不能正确工作?Javascript 哈弗森公式工作不正常,javascript,angularjs,object,coordinates,haversine,Javascript,Angularjs,Object,Coordinates,Haversine,这是我的哈弗森公式代码,基于和的答案: 我用3个不同的位置测试了这一点,第一个位置说距离14790.7英里,而实际上距离44.1英里,每个位置的距离都不同。有些是少量的,另一些是非常大量的。我的数学有问题吗?如果没有,为什么这个代码不能正确工作? 这里是一个链接到一个与我的完整项目plunk:感谢在先进的任何帮助 实际计算得出了距离。问题是如何在函数中使用它 在函数myLat、myLon、locLat、locLon中传递4个参数,然后不使用它们。我假设您仍然在forEach循环中调用函数。试试这
这里是一个链接到一个与我的完整项目plunk:感谢在先进的任何帮助 实际计算得出了距离。问题是如何在函数中使用它 在函数myLat、myLon、locLat、locLon中传递4个参数,然后不使用它们。我假设您仍然在forEach循环中调用函数。试试这个 外部forEach 内forEach 作用
$scope.getCoordDistance = function (myLat, myLon, locLat, locLon) {
var R = 3959;
var x1 = lat1 - lat2;
var dLat = x1 * Math.PI / 180;
var x2 = lon1 - lon2;
var dLon = x2 * Math.PI / 180;
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
d = R * c;
return d;
}
var myLat = 41.894993;
var myLon = -88.459239;
var locLat = $scope.locLat;
var locLon = $scope.locLon;
getCoordDistance(myLat, myLon, locLat, locLon)
etc.
$scope.getCoordDistance = function (myLat, myLon, locLat, locLon) {
var R = 3959;
var x1 = lat1 - lat2;
var dLat = x1 * Math.PI / 180;
var x2 = lon1 - lon2;
var dLon = x2 * Math.PI / 180;
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
d = R * c;
return d;
}