2017-05-21 2 views
0

私はポストグルと仕事をする仕事を手に入れましたが、それはあまり気にしていません。男は私に、地理座標で与えられたすべてのものを、他の場所(バー、薬局、博物館など)のリストから自宅までの距離を自動的に計算する簡単なデータベースを構築するように私に言った。ポストグアを使って2つの座標間の距離を計算しますか?

私はすでにpostgresをインストールしており、postgisもインストールしてデータベースを作成しています。この仕事をどうやってやるべきかについてのヒントを教えてください。この作業を簡単にするために使用できるチュートリアルやリソースはありますか?私はpostgisを使うべきですか?

ありがとうございます。

+0

http://stackoverflow.com/questions/31213790/how-can-i-get-distance-between-two-points-on-earth-from-postgis、助けてください。 –

答えて

0

これを簡単に実行します。無限地形は素晴らしいPostGIS tutorialを持っています。また、PostGISマニュアルのCh3 & 4に精通していることをお勧めします。

&は、空間データを扱う場合に、投影座標と投影されていない座標の違いを理解することを強くお勧めします。投影されるとは、座標が「丸い地球」から取得され、平坦な地図ページに調整または投影されたことを意味します(座標は、使用する投影のプロパティに応じて通常フィートまたはメートルで与えられます)。これにより、距離、面積、方向、交差点、包含物などに対して、計算上効率的な通常のデカルト計算を行うことができます。投影を使用する際のトレードオフ - 曲線を投影するときに、面積、距離、形状、フラットマップ上に表示することができます。異なる予測は、異なるトレードオフに対して最適化されています。投影されたデータの計算は、地球の表面の比較的小さい部分でのみ正確です。さまざまなニーズと地域に対応するために利用可能なマップ予測がたくさんあります。投影されたデータを使って作業する場合は、目的や場所に適した投影法を選択する必要があります。投影を理解していないと、クエリーはそれを認識せずに簡単にゴミを生成する可能性があります。

未投影データ(生の緯度/経度座標)は、地球を表す回転楕円面の曲面上で行われるように、はるかに複雑な計算を含みます。 Lat/Lonを表現するために使用されるいくつかの基準座標系がありますが、最も一般的なものは "WGS84"(これは "GPS"座標が表現されています)です。

PostGISオブジェクト(OGCで定義されている「シンプルフィーチャ」の形式)は、「ジオメトリ」タイプ(投影座標)または「地理」タイプ(WGS84では投影されていないLon/Lat)として格納できます。 、混乱の共通の原因!)。ちょっとした皺として、Lon/Lat(再度注文する!)は、 "疑似投影"ジオメトリタイプ(通常WGS84 Lon/Latの投影SRIDが '4326')として保存することもできます。

距離の計算に使用する方法は、ポイントの保存方法(「ジオメトリ」または「地理」)によって決まります。

ジオメトリと地理的ポイントの両方を使用した距離測定の優れた例については、PostGISドキュメントのST_Distanceを参照してください。投影されたマップの距離を計算する場合は、適切なマップ投影法を選択し、ST_Transformを使用してポイントを適切な空間参照系(現在はSRID 4326- "GPS"座標)に投影する必要があります。わずかな点で違いは目に見えませんが、一度複雑な空間クエリをたくさん始めると、違いが顕著になります。 PostGISにはジオメトリタイプの機能がたくさんあります。ジオメトリタイプは、意思決定に影響を与えるかもしれません。また、Lon/Lat座標からの距離を計算する別の可能性については、ST_DistanceSpheroidを参照してください。

まず、あなたの実験を簡略化するためにあなたのポイントを「地理」として保存します。あなたの距離はメートル単位で '大円'の計算になり、最初は投影について心配する必要はありません。

関連する問題