2008-12-09 94 views
6

我正在寫一個映射應用程序,我正在用python編寫,我需要獲得N個點的緯度/經度質心。 說我有兩個位置確定多個點的質心

a.lat = 101 
a.lon = 230 

b.lat = 146 
b.lon = 200 

獲得的兩個點的中心用歐幾里德公式是相當容易的。我想 能夠做到更多,然後兩點。

基本上我正在尋找類似http://a.placebetween.us/的地方,可以輸入多個地址並找到每個人等距的地方。

回答

7

測量經度0/360線兩側有百分點看一看PDF文檔下面鏈接。它解釋瞭如何應用the plane figure algorithm that Bill the Lizard提到,但在球體表面。

poster thumbnail and some details http://img51.imageshack.us/img51/4093/centroidspostersummary.jpg
來源:http://www.jennessent.com/arcgis/shapes_poster.htm
還有一個可供下載25 MB full-size PDF
可以通過mixdev找到與原始來源的鏈接,當然還有Jenness Enterprises提供的信息。注意:我絕不隸屬於此材料的作者。

+1

這是一個明顯的改進。我最近在GIS方面做了很多工作,所以我只是假設這已經被理解了。在一般論壇中這是一個可怕的假設。 +1 – 2008-12-09 19:03:43

1

如果點形成一個plane figure,算術非常簡單。但是,不能保證一套緯度和經度是如此簡單,因此可能首先需要找到點的convex hull

編輯:正如eJames指出,你必須糾正一個球體的表面。我認爲這是被理解的(沒有想到)我的錯。 +1給他。

3

添加到Andrew Rollings的答案。

您還需要確保,如果你對你在「正確的方向」

Is the center of (0,359) and (0, 1) at (0,0) or (0,180)? 
+0

這是最主要的原因,我的應用程序從西半球完全分開對待東半球。例如,沒有「美國的範圍」,有「US-E」和「US-W」,我根據需要將它們結合起來。 – 2008-12-09 18:32:32

3

如果你平均的角度和必須處理他們穿越0/360那麼它是安全的總結罪和每個值的COS,然後平均= ATAN2(正弦的總和,餘弦的總和)
(請注意atan2函數中的參數順序)

-2

分別平均緯度和經度。