2013-11-01 138 views
0

我允許用戶繪製一個多邊形,並且我想查看是否有計算面積的方法,基於lat/lng路徑。計算多邊形的面積

有沒有人曾經這樣做過?如果可能的話,我也想考慮地球的球面面積。

回答

0

是的,這真的只是一個數學問題,但我很樂意提供一些幫助。因此,除非你有一個規則的多邊形來處理(這聽起來像你不這樣做),並且你需要考慮曲率,你將需要解決描述多邊形的參數方程的雙重積分繪製在一個球體上。

,或者您可以使用此方法http://www.mathsisfun.com/geometry/area-irregular-polygons.html 而忽略了地球的球形性質...

或許你只是想使用谷歌API。 Calculating area of a polygon drawn on google map

0

你可以做到這一點(沒有曲率)。我曾經遇到過這個相同的問題,並且來到這個基於幾何的公式。給定N個2D點P [i]:=(X [i],Y [i]),i從1到N和P [1] = P [N](它是閉的)的封閉多邊形,然後面積可以計算如下:

Area = Abs(Sum(Z value of cross product (P[i]-P[1]) X (P[i+1]-P[1])))/2 
with i ranging from 2 to N-1 

作爲僞代碼:

Area:= 0 
for i:= 2 to N-1 do 
    Area:= Area + ((X[i]-X[1]) * (Y[i+1]-Y[1]) - (Y[i]-Y[1]) * (X[i+1]-X[1])) 
Area:= Abs(Area)/2 

此代碼爲不凸多邊形,簡單的凸或子多邊形,2D上。

如果點在3D中,則只使用X和Y(如設置Z:= 0)來獲取2D X-Y平面上3D poligon的投影區域。