我有一个对点执行转换的函数。
我已经想出了如何将一个多边形转换成一组点,并用我编写的自定义函数转换每个点。但我不知道现在如何将这些点转换回多边形。
这是我的代码,它返回一个转换点数组。如何从中得到多边形?

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;

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

关于postgresql - 在PostgreSQL中将点集或点数组转换为多边形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36596816/

10-11 22:33
查看更多