0

2D 平面上の指定された点から一定の距離内にあるデータベースからレコードを選択できるようにする必要がある Rails アプリケーションを構築しています。現在、テーブルには 2 つの点 (xy、どちらも整数) が格納されており、簡単な計算でab(2 つの点)、およびr(半径または距離)の入力に対するすべての「一致」が得られますWHERE ((x - :a)^2 + (y - :b)^2) < :r^2

PostGIS は距離を操作するための関数を提供しますST_Distanceが ( )、より高度なユースケース向けに設計されているようです。上記のような単純な距離計算に PostGIS ライブラリを使用することには、何か重要な利点がありますか?

4

1 に答える 1

1

PostGIS は通常、複雑なジオメトリやプロジェクションなどを含む実世界の GIS データを扱う人々にのみ役立ちます。これらが必要ない場合は、組み込みのジオメトリ機能を使用してください。


PostGIS を質問専用に使用するには、ST_DWithinを使用します。クエリは次のようになります。

SELECT *
FROM my_table,
  (SELECT ST_SetSRID(ST_MakePoint(388279.5, 4959511.8), 26912) AS poi) AS f
WHERE ST_DWithin(geom, poi, 1000);

これは、 NAD83 / UTM ゾーン 12Nを使用して投影された座標から 1000 m 以内にあるmy_tableという名前のジオメトリ列を使用してすべてを取得します。geom

于 2013-08-21T23:57:24.690 に答える