FAQ: ArcGIS中多边形的面积是用什么算法计算的?

文章编号 : 24650
软件: ArcGIS - ArcEditor 8.3, 8.1, 8.1.2, 8.2, 9.0, 9.1, 9.2, 9.3, 9.3.1 ArcGIS - ArcInfo 8.2, 9.0, 8.1, 8.1.2, 8.3, 9.1, 9.2, 9.3, 9.3.1 ArcGIS - ArcView 8.3, 8.1, 8.1.2, 8.2, 9.0, 9.1, 9.2, 9.3, 9.3.
操作系统: N/A
已邀请:

EsriSupport

赞同来自:

问题: ArcGIS中多边形的面积是用什么算法来计算的?
回答: ArcGIS中计算面积的算法叫做 'Area Calculation by Gauss',ESRI使用了它的标准化形式保存数字精度,这种算法很常见。 该算法计算出每一个多边形环(部分)的面积。如果为顺时针方向环(外环),该面积为正值,如果是逆时针环(内环),面积就为负值。 采用部分梯形面积求和的方法,各参数如下, partialSums[0] - double型矩阵 cPoints - 多边形环中点的个数 points - 点矩阵, 属性包括X,Y坐标 yOrigin - 最后一个点(cpoints-1)Y坐标的两倍值 第一个梯形的面积是: partialSums[0] = (points[1].x - points[cPoints-1].x) * (points[0].y - yOrigin) 接下来从下标1开始: for j = 1 to j < cPoints-1 partialSums[j] = (points[j+1].x - points[j-1].x) * (points[j].y - yOrigin) 如果多边形含有非线状的部分,比如圆弧,椭圆弧或者贝塞尔曲线,则会对每个梯形进行面积纠正。 环的最终面积为: SUM(PartialSums)/2 多边形的最终面积为: SUM(每个环的面积) 下面是计算多边形(正方形环)的一个例子: X0 = 0 ; Y0 = 0 X1 = 0 ; Y1 = 10 X2 = 10 ; Y2 = 10 X3 = 10 ; Y3 = 0 X4 = 0 ; Y4 = 0
partialSums(0) = (X0 - X4) * (Y0 - Y4) = (0 - 0) * (0 - 0) = 0 partialSums(1) = (X2 - X0) * (Y1 - Y4) = (10 - 0) * (10 - 0) = 100 partialSums(2) = (X3 - X1) * (Y2 - Y4) = (10 - 0) * (10 - 0) = 100 partialSums(3) = (X4 - X2) * (Y3 - Y4) = (0 - 10) * (0 - 0) = 0 因为所有边都是直线,所以无需进行纠正。 sum (partialSums)/2 = 200/2 = 100



创建时间:2003-12-03
最近更新: 2011-05-03


原文链接
http://support.esrichina.com.c ... .html

要回复问题请先登录注册