也许这是一个简单的问题。我有3个GPS坐标(其中一个是当前用户的位置)。我现在想要的是计算用户位置和两个GPS坐标之间的角度。想象一下,用户位置在另外两个点的中心,这三个点可以看作一个三角形。我想要计算用户位置的角度。我希望有人能帮助我,因为我不知道如何使用球面坐标,就像我拥有的GPS坐标一样。
THX - nekro
发布于 2015-03-22 09:36:35
对于短距离(比方说小于100公里),您可以安全地忽略计算的球形性质,并将问题视为2笛卡尔坐标问题。对于很大的距离,球面几何变得相当粗糙。我也许能弄明白,但我现在不想那么难想。
编辑:
您需要做的就是将两个坐标都转换为KM,然后将其视为笛卡尔问题。(在较小的比例下,您可以忽略“线”的弯曲性质,并将它们视为正常的笛卡尔网格线,因为曲率足够小,在该比例下可以忽略)
每度纬度的距离是恒定的。经度的距离根据纬度的不同而变化。
在谷歌上搜索“每度经度的千米”,找到一个清晰解释它的链接。这里有一个:http://www.colorado.edu/geography/gcraft/warmup/aquifer/html/distance.html
发布于 2015-03-22 05:21:59
您可以使用虚拟多边形,并从严格的GIS角度计算这些多边形上的几何图形。如果您有qgis或arcgis,这应该是相当简单的。这些包提供的API可能会满足您的需求。
发布于 2015-03-23 10:43:21
你实际上是在做两个计算(指向(或从)当前位置到其他两个位置),而不是交叉(从一条大圆线到其他点的距离)。
然而,这两个都可以在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)https://stackoverflow.com/questions/29188020
复制相似问题