名称

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) ;