2009-09-03 22 views
3

PostgresのSpatialプラグインまたはそのようなSpatialパッケージは、2点間の距離を計算する際に高度を考慮しますか?地図:2ポイント間の距離を計算するのは高度ですか?

地球の近似曲率の空間パッケージの要素を知っていますが、ある場所が山の頂点にあり、もう1つの場所が海に近い場合は、これらの2点の計算された差が大きくなるようです高度の違いが考慮されていない場合は変更されます。

2つのポイントが同じ海面高度にありますが、2つのポイントの間に山がある場合は、距離パッケージでこれを考慮する必要があります。

+0

可能な複製:http://stackoverflow.com/questions/1108965/taking-altitude-into-account-when-calculating-geodesic-distance –

+0

@Reed:私は他の質問は類似していると思いますが、 /彼女は実際に既存のパッケージがこれを因数分解するかどうかを尋ねています。 – MusiGenesis

答えて

3

これらの要因は数えられていません。どうして?ソフトウェアは、2つの機能(距離、球/回転楕円体、および基準/投影因子を取得する2つの点)のみを知っています。

このようなことが起こるには、開発した線ストリングを使用する必要があります。そこではポイントをn個の頂点に接続し、それぞれがZを認識します。

LINESTRING((0,1,2)、(0,2,3)、(0,3,4)、(0,10,15)、(0,11,12) -1))。

各頂点間の距離を計算して合計することをソフトウェアに依頼すると、地形の変化が考慮されます。しかし、そのようなものがなければ、地形の不規則性のためにマップすることは不可能です。

すべてのGISソフトウェアは、地形内のこれらの不規則性は何であるかを知ることができないため、アカウントを考慮しません。

ArcGIS(など)、2点間の線、およびNASA(SRTMプロジェクト)によって自由に提供されるようなサーフェスファイルを使用して、このような線ストリングを(自動的に)作成できます。これらのファイルはラスター形式で表示され、各ピクセルのX YとZ値はメートルで表示されます。あなたが望む線を横断し、その地形プロファイルと組み合わせれば、達成したい計算を達成することができます。超精密な計算が必要な場合は、このサーフェスラインの各頂点に正確なサーフェスと正確なZ値が必要です。

それは解決しましたか?

1

使用している距離式が2つのポイントの高度をパラメータとして使用していない場合(距離の緯度と経度に加えて)、距離計算の高度を考慮しません。いずれにしても、高度差は計算された距離にはあまり重要な影響を与えません。

GPSと同じように、高度が計算する距離の計算の違いは、おそらくほとんどの商用GPSデバイスの誤差よりも小さいため、ほとんどのアプリケーションでは高度を安全に回避できます(高度測定自体は商業GPSデバイス、高度に関する調査データは非常に正確です)。

1

PostgreSQLは距離を計算する際に高度を考慮しません。それはすべて平らな面で行われます。

データベースの空間パッケージのほとんどは、あなたのポイントが3dである場合、つまり、起こりうるZ座標がある場合、これを考慮しません。

私はこのマシンにPostgreSQLを持っていませんが、これを試してください。

SELECT ST_DISTANCE(ST_POINT(0,0,10)、ST_POINT(0,0,0));

あなたのZ値を考慮しているかどうかは、戻り値が> 0であるため、かなりわかりやすいです。それが真であることが判明した場合、Z認識機能を作成するだけで成功するでしょう。

たとえば、距離を計算する際に考慮するSQL Server 2008は、球の地形フィーチャの位置です。 SQL Serverのジオメトリ機能は、常に平面計算を使用します。

EDIT:あなたはST_MakePoint関数を使用する必要がありZ意識の点については

マニュアルのPostGISでこれを確認しました。最大4つの引数(X、Y、Z)が必要です。たST_Pointは、かかる2つ(XY)

ST_DISTANCE_SPHEREドキュメントが(アカウントに計算するための固定球かかり - 別名ではない平面)

http://postgis.refractions.net/documentation/manual-1.4/ST_Distance.html ST_DISTANCE = 2D計算

http://postgis.refractions.net/documentation/manual-1.4/ST_Distance_Sphere.html

ST_DISTANCE_SPHEROIDドキュメントが(アカウントAに取りあなたの計算のために選ばれた回転楕円体) http://postgis.refractions.net/documentation/manual-1.4/ST_Distance_Spheroid.html

ST_POINTドキュメント http://postgis.refractions.net/documentation/manual-1.4/ST_Point.html

+0

@George、あなたが提供したリンクを読んで私には分かりませんが、2つのエンドポイントの間の高度変化を説明しています。たとえば、両方の終点が海面高度(0)にあり、山が2つのポイントの間にあるとします。その山を登る際の高度変化は、A地点からB地点に設定する必要があります。 –

関連する問題