计算三个GPS坐标之间的角度

时间:2015-03-21 21:03:20

标签: ios objective-c gps mapkit coordinates

也许这是一个简单的问题。 我有3个GPS坐标(一个是当前用户位置)。我现在想要的是计算用户位置和两个GPS坐标之间的角度。想象一下,用户位于其他两个点的中心位置,这三个点可以看作是一个三角形。我想计算用户位置的角度。 我希望有人可以帮助我,因为我不知道怎么用球坐标,比如我的GPS坐标。

THX - nekro

3 个答案:

答案 0 :(得分:0)

您可以使用thessien多边形并从严格的GIS角度计算几何图形。如果你有qgis或arcgis,这应该相当简单。这些软件包提供了可能满足您需求的API。

答案 1 :(得分:0)

对于短距离(比如说小于100公里),您可以放心地忽略计算的球形特性,并将问题视为2笛卡尔坐标问题。对于大距离,球面几何形状变得非常粗糙。我可能想出来了,但我现在不想想那么难。

编辑:

您需要做的就是将两个坐标转换为KM,然后将其视为笛卡尔问题。 (在较小的范围内,您可以忽略"线条的弯曲特性"并将它们视为正常的笛卡尔网格线,因为曲率足够小以至于无法忽略)

每纬度的距离是恒定的。经度的距离根据纬度而变化。

对每个经度的" KM进行谷歌搜索"并找到一个清楚解释它的链接。这是一个:http://www.colorado.edu/geography/gcraft/warmup/aquifer/html/distance.html

答案 2 :(得分:0)

你基本上做了两次计算(从(或从当前位置到另外两个位置),而不是交叉(距离其他点之间的大圆线的距离)。

然而,两者都可以在Ed William's Aviation Formulary中找到,它具有我发现的最全面的球形计算公式集。

你会寻找" Course between points"列为:

   tc1=mod(atan2(sin(lon1-lon2)*cos(lat2),
       cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon1-lon2)), 2*pi)