postgresql更改geometry类型列的srid

问题描述:

有一张表包含空间信息列geom ,它是地理坐标系(WGS84 ),srid为4326,现在我不小心向其中插入了一批投影坐标系(CGCS2000)的数据,我要如何修正呢?

主要使用函数

ST_SetSRID(geom,srid)

该函数返回一个与输入几何体相同的几何体,只不过使用空间参考系统标识符 (SRID) 的输入值进行了更新。

就是说对几何体geom 设置了空间参考

ST_Transform(geom, srid)

ST_Transform 返回一个新的几何体,坐标在由输入空间参考系统标识符(SRID)定义的空间参考系统中转换。

看名字就知道是转换,将geom转换成指定空间参考下的几何体

解决步骤:

解决这个问题关键就是知道上面的两个函数,其他挺简单的

  1. 查询CGCS2000 / 3-degree Gauss-Kruger CM 120E 的EPSG代码为4549
  2. 更新数据
UPDATE table_name SET geom=ST_TRANSFORM(ST_SETSRID(geom, 4549), 4326) 
WHERE xxxxx

版权声明:本文为lwd18175239125原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。