gpt4 book ai didi

java - 我如何计算Java中两个gps点之间的距离?

转载 作者:IT老高 更新时间:2023-10-28 20:33:03 25 4
gpt4 key购买 nike

我使用了这段代码,但它不起作用:

需要两个 gps 坐标之间的距离,例如 41.1212、11.2323 以千米为单位(Java)

double d2r = (180 / Math.PI);
double distance = 0;

try{
double dlong = (endpoint.getLon() - startpoint.getLon()) * d2r;
double dlat = (endpoint.getLat() - startpoint.getLat()) * d2r;
double a =
Math.pow(Math.sin(dlat / 2.0), 2)
+ Math.cos(startpoint.getLat() * d2r)
* Math.cos(endpoint.getLat() * d2r)
* Math.pow(Math.sin(dlong / 2.0), 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double d = 6367 * c;

return d;

} catch(Exception e){
e.printStackTrace();
}

最佳答案

经度和纬度以度 (0-360) 为单位。如果要将度数转换为弧度 (0-2π),则需要除以 360 并乘以 2π(或等效地,乘以 π/180)。然而,在您的代码中,乘以 180/π

即改变

double d2r = (180 / Math.PI);

进入

double d2r = Math.PI / 180;

关于java - 我如何计算Java中两个gps点之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3715521/

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