名前

UpdateGeometrySRID — ジオメトリーカラム内の全ての地物の SRID を更新し、テーブルのメタデータを更新します。

概要

text UpdateGeometrySRID(varchar table_name, varchar column_name, integer srid);

text UpdateGeometrySRID(varchar schema_name, varchar table_name, varchar column_name, integer srid);

text UpdateGeometrySRID(varchar catalog_name, varchar schema_name, varchar table_name, varchar column_name, integer srid);

説明

ジオメトリーカラム内の全ての地物の SRID を更新し、制約を更新し、geometry_columnsの参照を更新します。カラムが型定義で強制されているなら、型定義は変更されます。ご注意: スキーマ対応版 PostgreSQL では、スキーマが提供されていない場合には、current_schema() を使用します。

この関数は3次元に対応し、Z値を削除しません。

このメソッドは曲線ストリングと曲線に対応しています。

ジオメトリーを、EWKT 書式を使って、SRIDを持つ道路テーブルに挿入します:

コード
COPY roads (geom) FROM STDIN;
SRID=4326;LINESTRING(0 0, 10 10)
SRID=4326;LINESTRING(10 10, 15 0)
\.
        

これにより道路テーブルが、以前がどんな SRID であっても、4326に変更されます:

コード
SELECT UpdateGeometrySRID('roads', 'geom', 4326);

上述の例と、次の DDL 手続き (訳注: DDL は Data Definition Language の略で、データ構造の操作を行う言語を指し、この場合は CREATE TABLE や ALTER TABLE 等が該当します) とは同じです:

コード
ALTER TABLE roads
ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326)
  USING ST_SetSRID(geom, 4326);

ロードしたデータの変換座標系が誤りである (または unknown になっている) けれどもWeb メルカトルに一度の処理で変換したい場合、DDL で実行可能ですが、PostGIS 管理関数では一度の処理ですむ等価なものはありません。

コード
ALTER TABLE roads
ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857) USING ST_Transform(ST_SetSRID(geom, 4326), 3857) ;