我有一个Kml文件(Google地球文件),其中包含数百万个Polygon,
我想通过c#,
将每个Polygon区域添加到它的描述中我创建了一些很好的公式来计算Polygon区域,如:
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来计算Polygon区域: (这是一个糟糕的代码,但它只是一个例子):
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地球专业版计算不同的区域
例如,Google显示在多边形区域上方:2699 但是Arc GIS和Formula:2705。我希望我的程序计算与Google地球相同的区域。
是解决方案吗?