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 中的约束和引用。如果该列是通过类型定义强制执行的,则类型定义将被更改。注意:如果未提供 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) ;