2013-11-01 139 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的投影区域。