gpt4 book ai didi

java - 更正我计算两点之间大圆距离的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:50 25 4
gpt4 key购买 nike

我使用以下算法计算两点之间的距离,但它产生了不合理的结果。我哪里错了?

private static double distFrom(double latA, double lngA, double latB, double lngB) {
double pk = 180/3.14169;

double a1 = latA / pk;
double a2 = lngA / pk;
double b1 = latB / pk;
double b2 = lngB / pk;

double t1 = Math.cos(a1)*Math.cos(a2)*Math.cos(b1)*Math.cos(b2);
double t2 = Math.cos(a1)*Math.sin(a2)*Math.cos(b1)*Math.sin(b2);
double t3 = Math.sin(a1)*Math.sin(b1);
double tt = Math.acos(t1 + t2 + t3);

return 3959*tt;
}

最佳答案

用 Math.PI 替换 3.14169 会有所改善,因为 PI 的第一位数字是 3.14159

此外,还有很多算法。尝试 http://www.geodatasource.com/developers/java这将为您提供英里、公里和海里的答案。

关于java - 更正我计算两点之间大圆距离的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29775093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com