緯度と経度の座標がジオメトリフィールドに格納されたテーブルにレコードが格納されています。ユーザーが指定した参照ポイントの近くにあるすべてのレコードを検索したい。「近く」とは、おそらく100km未満(さらに小さい場合もある)を意味します。
私が見るほとんどの例はを使用していますST_DWithin
。使用できない理由はありますST_Distance
か?使用しての違いは何であるST_DWithin
とST_Distance
これを行うには?
例えば:
SELECT name, ST_AsText(coords)
FROM places
WHERE ST_DWithin(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326), 1)
対
SELECT name, ST_AsText(coords)
FROM places
WHERE ST_Distance(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326)) < 1