在PostgreSQL中将点集或点数组转换为多边形

在PostgreSQL中将点集或点数组转换为多边形,postgresql,geometry,postgis,Postgresql,Geometry,Postgis,我有一个函数,在点上执行变换 我已经知道如何将多边形转换为一组点,并使用我编写的自定义函数转换每个点。但我不知道现在如何将点转换回多边形 下面是我返回一个转换点数组的代码。如何从中得到多边形 SELECT array_agg(point_geotransform(point((dp).geom))) As p FROM (SELECT ST_DumpPoints(polygon(circle('((0,0),10)'))::geometry) AS dp ) t; 注:

我有一个函数,在点上执行变换

我已经知道如何将多边形转换为一组点,并使用我编写的自定义函数转换每个点。但我不知道现在如何将点转换回多边形

下面是我返回一个转换点数组的代码。如何从中得到多边形

SELECT  array_agg(point_geotransform(point((dp).geom))) As p
FROM    (SELECT ST_DumpPoints(polygon(circle('((0,0),10)'))::geometry) AS dp
        ) t;
注:如果有更有效的方法提取点,我很想知道。

这是有效的(排除了转换,以便其他人可以看到它的工作原理):

可以说,几何体必须转换为几何体,多边形必须转换为多边形。

这是可行的(排除了转换,以便其他人可以看到它的工作原理):

可以说,几何体必须转换为几何体,多边形必须转换为多边形

SELECT  polygon(circle('((0,0),10)')) p
UNION ALL
SELECT  ST_MakePolygon(ST_MakeLine((point((dp).geom))::geometry))::polygon p
FROM    (SELECT ST_DumpPoints(polygon(circle('((0,0),10)'))::geometry) AS dp
    ) t;