假设你有n
个GPS坐标,如何计算它们之间的中心GPS点呢?
如果有人现在或将来需要帮助,这里提供一个算法,即使是在极点附近的点也是有效的(如果它有效的话,也就是我没有犯愚蠢的数学错误的话):
将纬度/经度坐标转换为三维笛卡尔坐标:
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)
要看你指的中心GPS点是什么意思。你可以简单地取所有点的平均值,就像Stephen建议的那样 - 但请记住,GPS坐标不连续 - 在极地等断点处这种方法会出现异常。
在大多数情况下,您需要转换到没有这个问题的坐标系。
您还可以查看由它界定的所有点,计算到每个GPS点的距离,并将所有GPS点的距离之和最小化。您需要研究大圆计算。
此外,每个GPS可能具有更高或更低的不确定度,您应该考虑并相应地加权。
你到底想找出什么?
-Adam