web-dev-qa-db-ja.com

PostGISなしで緯度と経度を保存するにはどうすればよいですか?

回答済みの同様の質問がここにあることは知っていますが、残念ながらそれらのどれも私のために機能しません。私は、地図上に複数の場所を表示するページを作成する方法をハッキングしています。 HTML 5マッピングとGoogleマップを使用しています。私が持っているアドレスを長い/緯度に変換しました。それらは他の属性とともにCSVファイルに保存されます。

私はポイント、文字の変化、数として保存することを試み、独自の定義を作成しようとしましたが、成功しませんでした。テーブルは既に存在し、これらの追加の列を追加するだけです。 PostGISを使用しないほうがいいです。PostGISを使用すると、複雑さを増すことができるようになります。

それであなたは何を提案しますか?

5
lz7cjc

PostGISを使用しない最も簡単なソリューションは、lat/longを2つの数値列として格納することです。
numeric 正確な精度。
double precision または real 精度が必要ない場合。

データ型 point も機能しない理由はありません。 ドキュメントごと

ポイントは、ジオメトリックタイプの基本的な2次元のビルディングブロックです。タイプpointの値は、次の構文のいずれかを使用して指定されます。

( x , y )
  x , y

ここで、xおよびyは、浮動小数点数としてのそれぞれの座標です。

関連:

9

PostGISを使用しないほうがいいです。PostGISを使用すると、複雑さを増すことができるようになります。

それはかなりばかげています。まず、SRS IDのない緯度と経度は、それらのポイントがどこにあるかについては何も言いません。投影されているか、投影されていませんか? POINT( 0 0 )はどこにありますか?東または西から否定的に対処していますか?

PostGISを使用するだけです。複雑ではありません。それはあなたの問題の多くをするのであなたはする必要はありません。

CREATE TABLE foo ( geog geography(POINT, 4326) );
INSERT INTO foo (geog) ( ST_MakePoint(0,0) );

幾何学との比較 point

単純な場合でも

  • postGISのポイントは、GeoJSON ST_AsGeoJSON、または多数のエクスポート形式にエクスポートできます
  • GEOMETRYCOLLECTIONに集約できます
  • すべてのポイントを結ぶ線に集約できます。
  • ポリゴンに集約できます(ST_ConvexHull
  • ST_Distanceを使用してポイント間の距離を計算できます
  • 他の参照システムに再投影できます
  • インデックスを作成できます
    • <=>を使用したインデックス(最も近い点を見つける)のKNNクエリの対象です
    • x範囲内のすべての注目点を検索ST_DWithin
1
Evan Carroll