いきなりPostGISのお話。 PostGISを利用して、位置情報を使ったアプリケーションのプロトタイプを書いていたところ、どうも実際の位置と合わない。元データは日本測地系の緯度経度で、世界測地系へ変換(ST_Transform)してジオメトリカラムに格納していた。クエリーで投げていたのは世界測地系の緯度経度だったのだが、帰ってくる結果が400mほどずれる。地図で確認すると、まさに日本測地系と世界測地系の誤差。 プログラムを見直して、最終的に行き着いたのは実際に測地系を変換している(であろう)ST_Transform。 SELECT ST_AsText(ST_Transform(ST_GeomFromText('POINT(139.00 35.00)', 4301), 4326)); としてみると、 139.00 35.00 という値がしれーっと帰ってくる。「おめー、仕事しろYO!」。 解