如何更改几何列的 SRID?

Posted

技术标签:

【中文标题】如何更改几何列的 SRID?【英文标题】:How to change SRID of geometry column? 【发布时间】:2011-03-02 01:28:15 【问题描述】:

我有一个表,其中一列是几何列the_geom,用于具有 SRID 的多边形。我在同一张表中添加了一个新列,其几何数据与the_geom 完全相同。

这个新列的名称为the_geom4258,因为我想将其 SRID 设置为 4258。将几何图形的 SRID 更改为另一个坐标系的过程是什么?应用以下查询是否足够:

UPDATE table SET the_geom4258=ST_SetSRID(the_geom4258,4258);

【问题讨论】:

【参考方案1】:

您应该使用ST_Transform 函数。还可以使用函数AddGeometryColumn 创建新列,以确保同时创建所有必要的约束:

SELECT AddGeometryColumn('table','the_geom4258',4258, 'POLYGON', 2);

UPDATE table SET the_geom4258 = ST_Transform(the_geom,4258);

ST_SetSRID 只是设置投影标识符,但实际上并不转换几何图形。

【讨论】:

您的回答正是我所需要的。所以非常感谢你。只有一件小事,现在我得到了错误:“错误:AddToPROJ4SRSCache:无法解析 proj4 字符串:'+proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.999900 +x_0=500000 +y_0=0 + ellps=GRS80 +datum=ETRS89 +units=m +no_defs': unknown elliptical parameter name" 任何线索我现在应该更正什么? 确保数据库的 spatial_ref_sys 表中有 srid 4258 的记录。如果有记录,请检查投影参数是否与此处的参数匹配:spatialreference.org/ref/epsg/4258/postgis

以上是关于如何更改几何列的 SRID?的主要内容,如果未能解决你的问题,请参考以下文章

POSTGIS:错误:对混合 SRID 几何图形的操作。试图用两个不同的 SRIDS/表找到重叠的几何

如何更改两个选定模型的几何形状?

如何在 SceneKit 中更改几何材质的颜色

如何更改DataFrame列的顺序

更改图例几何类型

如何更改 DataTable 列的顺序