PostGIS ST_DWithin と 空間参照系の単位 暗中模索 編

久々にブログを見ていると、コメントがありまして・・・。
見ている人がいるんだと、感動していたところ、間違いの指摘。

すみません。
ありがとうございます。

とにかく、ご指摘の内容でしらべて見ました。
結果、答えに行き着いたかどうか、わからないというのが、現在の状況です。

ちょっとプロセスから、

>>ST_DWithinの半径が、メートルとネットでは言われているけど
「使用している空間参照系の単位」が使われます。4326では「度」で、sqrt(経度差^2+緯度差^2)で出してます。これは使えません。

ううう、まず、私がわかってない単語から・・・

  • 「使用している空間参照系の単位」

ググッてみました。
http://bubble.atnifty.com/modules/bwiki/SRIDList.html

EPSG 4326
ESRI 4326
proj -
ellps WGS84 
datum WGS 1984
units degree
捕捉 GPS,海図,Google Earthで使用

単位が、degree ですと!!
ちなみにメートルは、参考ページの中断 「日本国内 旧測地系 新測地系」にまとめて有りました。

ここで、思いついた対処法は・・・
1.geometryフィールド追加時に日本国内の測地系EPSG(ESRI?)に合わせる
select ADDGEOMETRYCOLUMN('public','テーブル名','the_geom',2443,'POINT',2);

2.単位を変換する
ネットで調べると、これにチャレンジしますっって記事が多いのですが、なぜか、それ以降のエントリーがない(ノ`Д´)ノ彡┻━┻ どうも無理みたい。

3.きっとSQLで変換あるはずさ♪
http://www.finds.jp/docs/pgisman/1.5.1/ST_Transform.html
これが使えそう・・・。
んで、使ってみる。(確信ありません。でも勇気をもって書いてみます)

SELECT * FROM テーブル名
WHERE ST_DWithin(
ST_Transform(the_geom,2443), 
ST_Transform('0101******',2443), 
10000);

あってるんでしょうか_| ̄|○