gpt4 book ai didi

android - 纬度/经度和米

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:58 25 4
gpt4 key购买 nike

我有一个小算法问题。

我正在开发 Android 应用程序。我得到 GPS 坐标。例如:纬度:23.23907,经度:50.45786

所以我明白了。我想计算这一点正负 5 米的边界细节。即:

[23.23907 - 5 meters ; 23.23907 + 5 meters]
[50.45786 - 5 meters ; 50.45786 + 5 meters]

如何进行这个计算?

非常感谢!

最佳答案

当您仅在南北和东西方向上工作时,haversine 公式可以大大简化。

如果地球的圆周为 C,则给定点以南 d 公里处的点向南 360*d/C 度。向东 d 公里处的点向东 360*d/(C*cos(latitude)) 度。分母中的余弦来自于给定纬度处的经度长度比赤道短那么多。

如果 the Earth's circumference是 40075.04 公里,要向北/南移动 5 米,您需要在纬度上添加/减去 0.0000449 并使用相同的经度。要向西/东移动 5 米,您将使用相同的纬度并将 0.0000449/cos(latitude) 添加/减去经度。但不要忘记边缘情况:在两极附近,您必须将纬度限制在 90°,而在经度 180° 附近,您将不得不增加或减少 360° 以将经度保持在正确的范围内。

根据您的数字,范围大约是:

latitude:  [23.23903 ; 23.23911]
longitude: [50.45781 ; 50.45791]

更新:请注意,这仍然假设地球是一个完美的球体,which it's not .例如,GPS 系统将地球建模为一个椭圆体,其中赤道距离地球中心 6378.137 公里,两极距离地球中心 6356.7523142 公里。差异大约是 1/300,对许多应用来说意义重大,但在这种情况下,它在误差范围内。

校正经度公式应该很简单,因为纬线仍然是圆:您只需将 cos(latitude) 换成正确的系数。计算 correct latitude比较难,因为经线不是圆而是椭圆,椭圆的弧长不能用初等函数计算,所以必须用近似值。

关于android - 纬度/经度和米,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258078/

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