A Day In The Life

とあるプログラマの備忘録

PostGISでgeometry型からgeography型に変換するときは座標系に注意する

SRID=4612(JGD2000測地系+地理座標系)のgeometry型フィールドだとgeography型に変換できる

postgres=> SELECT ST_SetSRID(geom, 4612)::geography FROM map WHERE id=1;
                     st_setsrid
----------------------------------------------------
 0101000020041200006B405577CB756140404749F6A1BF4140

SRID=3857(WGS84測地系球面+メルカトル図法)のgeometry型フィールドをgeography型に変換しようとするとエラーになる

postgres=> SELECT ST_SetSRID(geom, 3857)::geography FROM map WHERE id=1;
ERROR:  Only lon/lat coordinate systems are supported in geography.

EPSG: 3857は投影座標系で単位がメートルなのでダイレクトに変換できないみたいです。

参考