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 中的约束和引用。如果该列由类型定义强制执行,则类型定义将被更改。注意:如果未提供模式,则在支持模式的 pgsql 安装中使用 current_schema()。
此函数支持 3d 并且不会删除 z 索引。
此方法支持圆形字符串和曲线。
使用 EWKT 格式 将几何图形插入到 roads 表中,并设置 SRID。
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) ;