Name

更新几何SRID — 更新几何图形列中所有要素的SRID和表元数据。

Synopsis

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()。

This function supports 3d and will not drop the z-index.

This method supports Circular Strings and Curves

示例

将几何插入到已使用SRID集的道路表中 EWKT格式

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

这将把sRid of the Roads表从以前的版本更改为4326:

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

前面的示例等同于下面的DDL语句:

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

如果你在加载中搞错了投影(或者把它作为未知的东西带进来),你想一下子转换成网络墨卡托,你可以用DDL来完成,但是没有同等的PostGIS管理功能可以一口气做到这一点。

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

另请参阅

更新栅格SRID, ST_SetSRID, ST_Transform, ST_GeomFromEWKT