我有一个包含数百万个多边形的 Kml 文件(Google 地球文件),
我想通过 c# 将每个多边形区域添加到它的描述中,
我建立了一些很好的公式来计算多边形面积,例如:
private Double polygonArea(int[] x, int[] y) {
Double area = 0.0;
int j = x.length-1;
for(int i = 0; i < x.length; i++) {
area = area + (x[j]+x[i]) * (y[j]-y[i]);
j = i;
}
area = area/2;
if (area < 0)
area = area * -1;
return area;
}
而且我还使用 ArC GIS SDK 10 来计算多边形面积:(这是一个糟糕的代码,但这只是一个例子):
PolygonClass pPntColl;
pPntColl = new PolygonClass();
IPoint point;
point = new Point();
point.PutCoords(57.63235013024734, 36.21563171159841);
pPntColl.AddPoint(point);
point.PutCoords(57.63237322461755, 36.2157698149511);
pPntColl.AddPoint(point);
point.PutCoords(57.6323553756371, 36.21586604544851);
pPntColl.AddPoint(point);
point.PutCoords(57.63226615527618, 36.21600871152099);
pPntColl.AddPoint(point);
point.PutCoords(57.63218330336011, 36.21595817513495);
pPntColl.AddPoint(point);
point.PutCoords(57.63141107098331, 36.21577622377622);
pPntColl.AddPoint(point);
point.PutCoords(57.63144168230467, 36.21556194876793);
pPntColl.AddPoint(point);
point.PutCoords(57.63235013024734, 36.21563171159841);
pPntColl.AddPoint(point);
一切正常,但有问题。谷歌地球专业版计算不同的面积
例如,Google 上面显示的多边形面积:2699 但 Arc GIS 和公式:2705。
我希望我的程序计算与 Google earth 相同的面积。
有什么解决办法吗?