gpt4 book ai didi

java - 如何将距离转换为大圆距离?

转载 作者:行者123 更新时间:2023-12-01 14:00:27 25 4
gpt4 key购买 nike

目的是计算行驶的距离。为此,我计算了带有速度、加速度和时间的欧几里德距离。我从 GPS 获取这些数据。这是我的计算:

    private float getDistanceTraveled(float vend, float vstart, long timeDifference){
float distance = 0;

if(vend == 0 && vstart == 0)
return distance;

if(vend - vstart == 0)
distance = vend * timeDifference;
else
distance = (vend * vend - vstart * vstart)
/ ((2 * (vend - vstart) / timeDifference);

return distance;
}

将此距离转换为地球表面最短距离的常用方法是什么?

我通过简单的圆计算来完成此操作,其中给定的距离是弦 c ,而半径 r 是地球半径。

double distance = 2 * r * Math.asin(c / (2 * r));

我不是 100% 确定这是否是计算欧氏距离并进行转换的正确方法。我是否考虑了其他因素?

我熟悉半正矢公式,但我无法在这种方法中使用坐标。

最佳答案

您测量的是人/车辆行驶的米数。
很好。
您有正确的米数,无需将其转换为更大的圆距离,也没有意义。
这仅对从一个坐标到下一测量值超过 10-100 公里的距离有意义:
(可能有一些特殊情况你想要这个,例如当一架飞机直线飞行时(通过3d直线飞行100公里,然后落到地球上,然后你想知道更大的圆距离是多少。)

所以你有正确的仪表,如果你需要更多(例如特定方向的位置预测坐标),那么这将是另一个问题。

关于java - 如何将距离转换为大圆距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19378785/

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