Postgis検索してみる

この記事中のST_DWithin関数及び、単位について、コメントにてご指摘を頂いています。私も調査開始します。この記事は、あくまでも、動いている一例としてご覧ください。

一つの解決法として、以下をエントリーしました。

PostGIS ST_DWithin と 空間参照系の単位 七転び八起き 編

「とおりすがり」様に、感謝です。
ありがとうございます。

簡単に検索してみる

  1. ある点から100メートル以内にある点を列挙
SELECT ST_AsText(the_geom), ST_X(the_geom), ST_Y(the_geom)
  FROM テーブル名

POINT(経度 緯度)、経度、緯度
と表示される。多分使うときは、ST_X、ST_Yになると思う。

SELECT * FROM テーブル名 
WHERE ST_DWithin(ST_AsText(the_geom), 'POINT(経度 緯度)', 0.1);
--WHERE ST_DWithin(the_geom, '0101900020・・・・', 0.1);

ココはまります。
ネットで調べると、以下のSQLがポンっとでてるだけで、安直にコピペすると・・・・

SELECT * FROM テーブル名 
WHERE ST_DWithin(the_geom, 'POINT(経度 緯度)', 0.1);

ERROR:  Operation on two geometries with different SRIDs

********** エラー **********

ERROR: Operation on two geometries with different SRIDs
SQLステート:XX000

いやいや、4326指定してるし・・・
とか、散々なやんで、以下のHPにぶち当たる
http://workshops.opengeo.org/postgis-intro-jp/projection.html

異なるSRIDで表現されたジオメトリで演算しようとすると、エラーが返されます。

正直、一回読んだだけでは、理解出来んかった_| ̄|○

あとは、ST_DWithinの半径が、メートルとネットでは言われているけど、なんか、キロメーターっぽい。
にゃぜ???