2016-08-19 182 views
1

私はpostgisのst_distance関数に問題があります。私は距離を計算する3つの方法がありますが、どれが最も正確かわかりません。PostGISでは、2点間の距離を計算する最も正確な方法はどれですか?

SELECT ST_Distance('POINT(115.25 39.26)'::geography, 'POINT(117.30 41.04)'::geography) as distance; 
--result is 263753.911823565 
SELECT ST_Distance_Sphere(ST_GeomFromText('POINT(115.25 39.26)',4326), ST_GeomFromText('POINT(117.30 41.04)',4326)) as distance; 
--result is 263674.468686404 
SELECT ST_Distance(ST_Transform(ST_GeomFromText('POINT(115.25 39.26)',4326),32650),ST_Transform(ST_GeomFromText('POINT(117.30 41.04)', 4326),32650)) as distance; 
--result is 263669.651755417 

答えて

3

3つの測定計算の差は以下の通りである:

  1. 距離は地球の表面の数学的近似を考慮極で平坦化しながら、回転楕円体上で計算されます。これは、「大きな円弧距離」とも呼ばれます。この場合、デフォルトの回転楕円体はWGS84で、GPSシステムと衛星画像でも使用されます。
  2. 距離は、平坦化を考慮していない球面上で計算されます(形状はボールのようなものです)。通常、球体は回転楕円体と同じ体積を持つので、赤道ではわずかに小さく、極ではわずかに膨らんでいます。これは、回転楕円体よりも数学的にはるかに簡単であるため、ロットを計算する方が速くなります。
  3. 距離は、地理座標(この場合はWGS84回転楕円体のUTM50N)から変換することによって確立されたデカルト座標参照系(平面)で計算されます。

通常、第1の方法では(これらの3つのうち)最も良い結果が得られますが、近くにある、または赤道付近にある座標では、より速い第2の方法に比べてその差は無視できます。

UTM50N(WGS84)座標参照システムでは3番目の方法は特に正確ではありませんが、デカルト座標系には点の三つ組またはポリゴンの領域間の角度を計算するなどの他の重要な利点があります。また、ローカルCRSで使用されるいくつかのデータムは、WGS84よりも地球の不規則なサーフェスのより良い局所表現を提供することに注意してください。この場合、局所CRSは大弧計算よりもはるかに正確になります。それを評価するには、あなたのエリアのすべての測地系の詳細を調べなければなりません。

+0

ありがとう、これは非常に詳細な回答です。 –

関連する問題