名稱

UpdateGeometrySRID — 更新幾何欄位中所有要素的 SRID,以及表格的 metadata。

概要

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,同時更新 constraints 以及 geometry_columns 中的參考。如果欄位是由類型定義強制執行的,則會變更類型定義。注意:如果未提供 schema,則在感知 schema 的 pgsql 安裝上會使用 current_schema()。

此函數支援 3D,且不會刪除 z 索引。

此方法支援圓弧字串和曲線。

範例

使用 EWKT 格式,將幾何圖形插入已設定 SRID 的 roads 表格中

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

這會將 roads 表格的 srid 從之前的值變更為 4326

SELECT UpdateGeometrySRID('roads','geom',4326);

先前的範例等同於此 DDL 陳述式

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

如果在載入時投影錯誤(或以未知方式載入),而您想一次轉換為 Web 墨卡托投影,您可以使用 DDL 來完成,但沒有等效的 PostGIS 管理函數可以一次完成。

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