如何使用 postgres 从 geom 列添加质心列?
Posted
技术标签:
【中文标题】如何使用 postgres 从 geom 列添加质心列?【英文标题】:How to add a centroid column from the geom column using postgres? 【发布时间】:2021-07-10 01:38:04 【问题描述】:我在 postgres 的数据库中有下表(table_example):
id geom class area_total
1255 65f56f6565... type_1 1244589
1256 65f56f6566... type_2 2542542
我需要创建一个新列,从多边形的几何形状中接收多边形质心的值。
基于此链接 (How to add geometry column using pgAdmin),我尝试按如下方式进行所需的操作:
-- The idea is to first create a column that is of type geometry
ALTER TABLE table_example
ADD COLUMN column_geom_centroid geometry(geom);
-- And then assign the centroid value to the column
UPDATE table_example
SET column_geom_centroid = ST_Centroid(geom)
但是,当我运行第一个命令 (ALTER...) 时,会出现以下错误:
ERROR: Invalid geometry type modifier: geom
LINE 2: ADD COLUMN column_geom_centroid geometry(geom);
^
SQL state: 22023
Character: 70
【问题讨论】:
【参考方案1】:最好使用 postgis 函数AddGeometryColumn
,用于创建几何列
https://postgis.net/docs/AddGeometryColumn.html
例子
SELECT AddGeometryColumn ('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);
【讨论】:
以上是关于如何使用 postgres 从 geom 列添加质心列?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 df 的不同列中获取闪避的 geom_bar (ggplot2)
根据 p 值有条件地将 geom_smooth 添加到 ggplot 构面