找到多个lat lng的中心点

时间:2011-04-14 09:01:26

标签: iphone objective-c center latitude-longitude

我有多个lat lng,我想要所有这个lat lng的中心点..就像最接近所有lat lng的会合点。

2 个答案:

答案 0 :(得分:6)

实际上,有两点不同。看here

  • 重心

地理中点,有时称为重心,质心或质心,是一组点的平均坐标。如果您在世界地球仪上标记了几个点以及地理中点,那么地理中点确实看起来像是在中心。想象一下,在世界地球仪上的不同点放置几个砝码,然后允许地球自由旋转,直到地球的最重部分被重力拉动直到它面朝下。然后,地球上的最低点将是所有加权位置的地理中点。

通过查找位置的重心来计算地理中点。位置的纬度和经度被转换为笛卡尔坐标(x,y,z)坐标。计算平均x,y和z坐标。这个平均坐标位于地球的内部并且是真正的质心,并且可以从穿过该点的地球中心绘制一条线,然后到达地球中点的地球表面。平均x,y和z坐标将转换为中点的纬度和经度。

给定的公式假定为球形地球和海平面点。如果需要更准确的模型,答案要复杂得多。

  • 最小距离中心

这一点最小化了一组点的组合行程距离。最小距离的中心是绝对最小行进距离的点,但是它并不试图使从其他点行进的距离量相等。

有计算器here

方法描述为here

请注意,假设有精确的地球。如果需要更高的精度,解决方案会更加复杂。

答案 1 :(得分:1)

您需要计算该坐标的平均位置:

float lat=0, lng=0;
for(int i=0; i<num_coords; ++i) {
   lat += lats[i];
   lng += lngs[i];
}

lat /= num_coords;
lng /= num_coords;

当位置之间的距离小于500英里(800公里)时,此方法近似于真实的地理中点。