0

我有一个包含数百万个多边形的 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 相同的面积。

有什么解决办法吗?

4

0 回答 0