假设您有n
GPS 坐标,您如何计算出它们之间的中央 GPS 点?
Malachi
问问题
7002 次
2 回答
10
如果它现在或将来对任何人都有帮助,这里有一个算法,即使对于极点附近的点也有效(如果它完全有效,即如果我没有犯愚蠢的数学错误;-):
将纬度/经度坐标转换为 3D 笛卡尔坐标:
x = cos(lat) * cos(lon) y = cos(lat) * sin(lon) z = sin(lat)
计算 x 的平均值、y 的平均值和 z 的平均值:
x_avg = sum(x) / count(x) y_avg = sum(y) / count(y) z_avg = sum(z) / count(z)
将该方向转换回纬度和经度:
lat_avg = arctan(z_avg / sqrt(x_avg ** 2 + y_avg ** 2)) lon_avg = arctan(y_avg / x_avg)
于 2009-02-24T21:26:17.467 回答
4
取决于您所说的中央 GPS 点是什么意思。正如斯蒂芬所建议的那样,您可以简单地取所有点的平均值 - 但请记住,GPS 坐标不是连续的 - 这将在极点等不连续性周围发生惊人的失败。
在大多数情况下,您需要转换为不存在此问题的坐标系。
您还可以查看它所包围的所有点,计算到每个 GPS 点的所有距离,并最小化到所有 GPS 点的距离总和。为此,您需要研究大圆计算。
此外,每个 GPS 可能具有更高或更低程度的不确定性,您应该考虑到这一点并相应地加权它们。
你到底想知道什么?
-亚当
于 2009-02-24T21:08:32.627 回答