我允许用户绘制多边形,我想看看是否有办法根据纬度/经度路径计算面积。
有没有人曾经这样做过?如果可能的话,我也想考虑地球的球形区域。
答案 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的投影区域。