Google Maps用投影で悩む

UMN MapServerで epsg:900913 を使えるようにしてみることにした。
まず、MapServerは

no options found in 'init' file

とか怒ってくる。
これはprojに900913が無いから。
ということで、(FreeBSDportsからprojを入れた場合) /usr/local/share/proj/epsg をいじる。具体的には次の行を追加する。

<900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext  +no_defs <>

http://bubble.atnifty.com/modules/bwiki/index.php?SRIDList あたり参照。
nadgridsは http://bubble.air-nifty.com/mapper/proj4/index.html 参照。
WMSでEPSGを追加して、さてOKかと思ったら、これでもおかしい(本当はおかしくない)。
WMSのURLをログから拾って、SRS=EPSG:4326 を 900913 に変更してHTTPリクエストを出すと、みごとに真白。
おかしい。ということで、PostGISを使っていたので、クエリを調べることに。
クエリをログに残す方法は、postresql.conf で

log_statement = 'all'

とする。log_min_messageをいじっててうまくクエリが表示できず「おかしいなあ」とか悩んでたのは内緒。
それで見ると、クエリ範囲が極めて小さい。
先に言ってたHTTPリクエストでEPSGを変えただけなのが失敗のもと。BBOXも変更しなくちゃいけない。
そこで、

proj +init=epsg:900913

で計算したBBOXに訂正したところ、なんとかかんとか。