2011-04-14 66 views
0

我有多個緯度經度,我想要所有這個緯度經度的中心點..就像會議點,這個會議點最接近這個緯度。查找多個經緯度的中心點

+0

可能重複[確定多個點的質心](http://stackoverflow.com/questions/353684/determine-the-centroid-of-multiple-points) – Caleb 2011-04-15 16:00:22

回答

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公里),該方法提供了一個近似於真實的地理中點。

+1

這是錯誤的。經度-179度和+179度非常接近。你的答案會給0,這是世界的一半! – 2011-04-15 15:12:08

+1

這個答案給出了不正確的問題的平均值。 – 2011-04-15 15:50:02

+0

我做了一個編輯你的答案。如果接受編輯,我會收回我的downvote。 – 2011-04-15 15:55:19

6

實際上,有兩點不同。看看here

  • 重力

地理中點的中心,有時也被稱爲重心,質量或質心的中心是平均座標點的集合。如果您在地球中點上標記了世界地球上的幾個點,則地理中點確實看起來好像處於中心。想象一下,在世界地球上的不同位置放置了幾個重物,然後讓地球自由旋轉,直到地球最重的部分受到重力拉動直到其面朝下。那麼地球上的最低點將是所有加權位置的地理中點。

地理中點是通過查找位置的重心來計算的。位置的緯度和經度被轉換成笛卡爾(x,y,z)座標。計算平均的x,y和z座標。這個平均座標位於地球內部,是真正的質心,可以從地球中心通過這一點,然後到達地球表面,這是地理中點。平均x,y和z座標轉換爲中點的緯度和經度。

給定的公式假設球形地球和海平面點。如果需要更準確的模型,答案要複雜得多。

  • 最小距離的中心

這點從最小的一組點的組合行駛距離。最小距離的中心是絕對最小行程距離的點,但它不會嘗試均衡從其他點移動的距離。

有計算器here

的方法描述here

注意sperical地球假設。如果需要更高的精度,解決方案將更加複雜。

+0

同意,當你需要計算可能會有很大差異的座標時,簡單的平均方法並不是最好的情況,但對於簡單的iPhone應用程序來說它並不重要,因爲距離太遠很小(至於-179和179-這裏幾乎是太平洋)。 – Max 2011-04-15 15:45:43