0

何百万ものポリゴンを含む Kml ファイル (Google Earth ファイル) があります。

各ポリゴン領域を説明に 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 Earth プロは別のエリアを計算します

たとえば、上記の Google は、ポリゴン エリア : 2699 ですが、Arc GIS とフォーミュラ : 2705 です。

プログラムで Google Earth と同じ面積を計算したい。

解決策はありますか?

4

0 に答える 0