Postgis検索してみる
この記事中のST_DWithin関数及び、単位について、コメントにてご指摘を頂いています。私も調査開始します。この記事は、あくまでも、動いている一例としてご覧ください。
一つの解決法として、以下をエントリーしました。
PostGIS ST_DWithin と 空間参照系の単位 七転び八起き 編
「とおりすがり」様に、感謝です。
ありがとうございます。
簡単に検索してみる
- ある点から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の半径が、メートルとネットでは言われているけど、なんか、キロメーターっぽい。
にゃぜ???