经/纬度和米(Latitude / Longitude and meters)

2019-08-17 08:26发布

我有一个小的算法问题。

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

所以,我得一分。 我想计算在这点上加上或减去5米界限的细节。 即:

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

如何使这种计算?

非常感谢你!

Answer 1:

当你只在南北和东西方向的工作haversine公式可以简化很多。

如果地球的周长为C,在d公里点给定点的南面是360×d / C度到南部。 在d公里向东点是360×d /(C * COS(纬度))度到东部。 在分母中的余弦来自一个事实,即经度在给定的纬度比,大部分的赤道短的长度。

所以,如果地球的周长是40075.04公里,移动5〜北/南,你会加/减从纬度0.0000449,并使用同一经度。 要移动5〜东/西,你会使用相同的纬度和加/减0.0000449 / COS(纬度)经度。 不要忘了边缘的情况下,虽然:在极点附近,你必须夹紧北纬90°,东经附近的180°你必须得加上或减去360°,以保持经线在正确的范围内。

随着你的号码的范围内原来是近似:

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

更新:请注意,这还是假设地球是一个完美的球体, 它不是 。 例如模型地球为椭球在赤道是6378.137公里和两极的GPS系统是在离地球中心6356.7523142公里。 所不同的是约1 /第300和关系重大的许多应用,但在这种情况下,它的误差范围之内。

因为相似之处仍然圈修正公式经度应该很简单:你只需要交换cos(latitude)的修正系数。 计算正确的纬度是困难,因为经络是椭圆形而非圆形,并且不能用初等函数来计算椭圆的弧长,所以你必须使用近似。



Answer 2:

我想补充一个非常重要的意见(门外汉或为那些谁已经忘记了这一点):

余弦要上以弧度为单位的纬度和不以度来计算。

转换:弧度= PI / 180 *度


(我很抱歉,我自己制作一个答案,但我目前的35声誉,我不能发表评论)



文章来源: Latitude / Longitude and meters