计算多边形的面积

时间:2013-11-01 20:58:00

标签: javascript google-maps-api-3

我允许用户绘制多边形,我想看看是否有办法根据纬度/经度路径计算面积。

有没有人曾经这样做过?如果可能的话,我也想考虑地球的球形区域。

2 个答案:

答案 0 :(得分:0)

是的,这真的只是一个数学问题,但我很乐意提供一些帮助。

所以,除非你有一个常规的多边形(它听起来你没有),你需要考虑曲率,你需要解决描述多边形绘制的参数方程的双积分在一个球体上。

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

您可能只想使用google api。 Calculating area of a polygon drawn on google map

答案 1 :(得分: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

此代码适用于二维上的非凸多边形凸面,简单或具有子多边形。

如果3D中的点,您将仅使用X和Y(设置Z:= 0)来获得2D X-Y平面上3D poligon的投影区域。