地理座標から面積を測定するにはどうすればよいですか?


12

地理座標(WGS84)にポリゴンがある場合、地球の曲率を考慮して、それぞれが地球の表面を占める総面積を測定するにはどうすればよいですか?

回答:


7

PostGIS 1.5は新しいGEOGRAPHYタイプを導入しました。このGEOGRAPHYタイプにより、回転楕円体上の投影されていない座標をPostGISテーブルに保存し、それらに対していくつかの解析機能を実行できます。

ST_Area 面積を平方メートルで計算するために、GEOGRAPHYタイプのポリゴンに対してクエリを実行できます。

次のクエリWGS-84は、GEOGRAPHYタイプを使用して格納されていると仮定して、スフェロイドを使用してすべてのポリゴンの面積を出力します(現在はスフェロイドのみがサポートされています)。

SELECT ST_Area(the_geom) FROM table_of_polygons;

回転楕円体上の面積を計算するために使用されるアルゴリズムは、source-codeから導出できます


涼しい。情報をありがとう。これを試してみる必要があります。
グレノン

PostGISは内部で何をしますか?
mwalker

@mwalker私は時間をかけて学習していませんが、必要に応じてソースコードへのリンクを追加しました:)
fmark

私の訓練されていない目では、PostGISは合計を使用して、エリアをストリップに切り分け、それらをすべて加算しています。
mwalker

10

以下に、単純なポリゴンの領域を生成するコードへのリンクを示します(元々はWorld Wind Forumから):http : //forum.worldwindcentral.com/showthread.php?t=20724。これは、大まかに関係に基づいて、球体上の問題を解決します。

代替テキスト

S =ポリゴンの面積。thetaは、ラジアン単位の内角の合計です。nは頂点の数です。rは球の半径です。

参照(式の画像のソース):http : //www.geom.uiuc.edu/docs/reference/CRC-formulas/node59.html

扁平回転楕円体上のポリゴン領域のリンクやコードを見るのは嬉しいです。


1
@glennon回転楕円体上の測地線ポリゴンの領域のコードは、GeographicLibで利用できます。コードには、アルゴリズムが派生した論文へのリンクが含まれています。
cffk

Gauss-Bonnetの式に基づくこの方法は数学的に非常に興味深いが、地球上の小さな人物にとってはほとんど価値がない。倍精度演算で作業している場合でも、ほとんどすべての精度を完全に失うことは簡単です。日常的なGIS計算では、機能しません。
whuber

7

ここだ簡素化計算の元、我々はOpenLayersをして作ることが。この方法は、「球体上のポリゴンのアルゴリズム」(Robert。G. ChamberlainおよびWilliam H. Duquette、NASA JPL Publication 07-03)に基づいています。上記にリンクされているコードは、線形リングの領域を決定するためのものです(地理座標を使用)。ポリゴンとマルチポリゴンの領域は、リングから合計されます。

var area = 0.0;
var len = ring.components && ring.components.length;
if (len > 2) {
    var p1, p2;
    for (var i=0; i<len-1; i++) {
        p1 = ring.components[i];
        p2 = ring.components[i+1];
        area += OpenLayers.Util.rad(p2.x - p1.x) *
            (2 + Math.sin(OpenLayers.Util.rad(p1.y)) +
            Math.sin(OpenLayers.Util.rad(p2.y)));
    }
    area = area * 6378137.0 * 6378137.0 / 2.0;
}

リングコンポーネントは、上記のコードのx、y(lon、lat)座標の2つの要素配列です。OpenLayers.Util.radメソッドは、度をラジアンに変換するだけです(deg * PI / 180)。


1
使用している半径6378137.0 mは、地球の赤道半径に対応しています。それには理由がありますか?中程度の半径を使用すると、より正確になりませんか?
FredB

Math.radians =関数(度){度を返す* Math.PI / 180.0; }; x =緯度、y =経度
ステファンシュタイガー

4

地理座標を、デカルト数学を使用して面積を計算できる座標系を持つ投影に変換する必要があります。

UTMは、緯度と経度に基づいてゾーンを選択するのが非常に簡単であり、ゾーン間でも歪みが最小限であるため、受け入れられている標準投影法であると考えています。したがって、テキサスのサイズのポリゴンがある場合、UTM Zone 14 Nを使用できますが、それでもかなり正確です。

ポリゴンが北極または南極上にある場合は、代わりにUPSを使用する必要があります。UTM投影は極上での精度が低く、境界が小さくなるにつれて(経度の線に沿っているため)素早くトラバースします。

ポイントがデカルト座標系に適した座標系になったら、それらをグリッド上のポリゴンのように扱い、面積を計算できます。


3

PolygonAreaクラスは、2011-07にGeographicLibに追加されました。これにより、エッジが測地線であるポリゴンの真の楕円領域が計算されます。PostGISとは異なり、この方法は数値積分を必要としません。文書化(および式が導き出される論文へのリンク)については、

http://geographiclib.sf.net/html/classGeographicLib_1_1PolygonAreaT.html

(PolygonAreaのテンプレートクラスへの一般化を反映するためにリンクが修正されました。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.