假设您有n
GPS坐标,您如何计算它们之间的中心GPS点?
如果它现在或将来对任何人有帮助,这里的算法即使对于极点附近的点也是有效的(如果它完全有效,即如果我没有做出愚蠢的数学错误;-):
将纬度/经度坐标转换为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)