我正在寫一個映射應用程序,我正在用python編寫,我需要獲得N個點的緯度/經度質心。 說我有兩個位置確定多個點的質心
a.lat = 101
a.lon = 230
b.lat = 146
b.lon = 200
獲得的兩個點的中心用歐幾里德公式是相當容易的。我想 能夠做到更多,然後兩點。
基本上我正在尋找類似http://a.placebetween.us/的地方,可以輸入多個地址並找到每個人等距的地方。
我正在寫一個映射應用程序,我正在用python編寫,我需要獲得N個點的緯度/經度質心。 說我有兩個位置確定多個點的質心
a.lat = 101
a.lon = 230
b.lat = 146
b.lon = 200
獲得的兩個點的中心用歐幾里德公式是相當容易的。我想 能夠做到更多,然後兩點。
基本上我正在尋找類似http://a.placebetween.us/的地方,可以輸入多個地址並找到每個人等距的地方。
測量經度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提供的信息。注意:我絕不隸屬於此材料的作者。
如果點形成一個plane figure,算術非常簡單。但是,不能保證一套緯度和經度是如此簡單,因此可能首先需要找到點的convex hull。
編輯:正如eJames指出,你必須糾正一個球體的表面。我認爲這是被理解的(沒有想到)我的錯。 +1給他。
添加到Andrew Rollings的答案。
您還需要確保,如果你對你在「正確的方向」
Is the center of (0,359) and (0, 1) at (0,0) or (0,180)?
這是最主要的原因,我的應用程序從西半球完全分開對待東半球。例如,沒有「美國的範圍」,有「US-E」和「US-W」,我根據需要將它們結合起來。 – 2008-12-09 18:32:32
如果你平均的角度和必須處理他們穿越0/360那麼它是安全的總結罪和每個值的COS,然後平均= ATAN2(正弦的總和,餘弦的總和)
(請注意atan2函數中的參數順序)
分別平均緯度和經度。
下面的PDF比Jenness Enterprises的海報有更多的細節。它還處理雙向和球體(如地球)的轉換,而不是完美的球體。
Converting between 3-D Cartesian and ellipsoidal latitude, longitude and height coordinates
這是一個明顯的改進。我最近在GIS方面做了很多工作,所以我只是假設這已經被理解了。在一般論壇中這是一個可怕的假設。 +1 – 2008-12-09 19:03:43