シェープファイルデータをPostGISにインポートしているときに、適切な投影法を選択しませんでした。
座標を変換せずに、データのSRIDを変更するにはどうすればよいですか?
シェープファイルデータをPostGISにインポートしているときに、適切な投影法を選択しませんでした。
座標を変換せずに、データのSRIDを変更するにはどうすればよいですか?
回答:
これを行う1行の関数があります。次のSQLクエリを使用するだけです。
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
しかし、あなたが私のようであれば、低レベルのミニチュアステップに興味があります。論理的には、上記の機能は次の4つのステッププロセスと同等です。
geometry_columnsテーブルで、SRIDを必要な値に更新します。
次のSQLステートメントを使用して、テーブルに制約をドロップします
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
次のSQLステートメントを使用して、ジオメトリのSRIDを更新します
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
次のSQLステートメントを使用して、制約を追加し直します
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
PostGIS 2.xでは、ジオメトリ列は通常のようなtypmodを使用しますgeometry(Point, 1234)
。これらの場合、ALTER TABLEを使用して、ジオメトリ列のタイプを1ステップで直接変更できます。
たとえば、geom
in のSRID mytable
をWGS84 に設定するには、ST_SetSRIDを使用します。
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
これはSRIDを変更するだけで、座標データは変換しないことに注意してください。
UpdateGeometrySRID
。