postgis将点转换为多边形

时间:2014-03-21 18:30:31

标签: postgresql postgresql-9.1 postgis

将点转换为多边形的简单方法是什么?

我已尝试过此查询

SELECT ST_GeomFromText('POLYGON((157 -536.0,157 -537.0,157 -538.0,157 -539.0,157 -540.0,157 -541.0,157 -542.0,157 -543.0,157 -544.0,157 -545.0,158 -545.0,159 -545.0,160 -545.0,161 -545.0,162 -545.0,163 -545.0,164 -545.0,165 -545.0,165 -544.0,165 -543.0,165 -542.0,165 -541.0,165 -540.0,165 -539.0,165 -538.0,165 -537.0,165 -536.0,164 -536.0,163 -536.0,162 -536.0,161 -536.0,160 -536.0,159 -536.0,158 -536.0,157.0 -536.0))');

但其结果与预期不符如下所示

enter image description here

应该是这样的

enter image description here

1 个答案:

答案 0 :(得分:0)

显然,您的点的顺序不正确,无法定义多边形。正如评论者指出的那样,您有多个多边形。 你可以把它们分成几组来制作每个多边形(手动?),并按如下方式构造一个多边形:

 SELECT ST_AsText(ST_Collect(ARRAY[ST_GeomFromText('POLYGON(..first polygon...)'),ST_GeomFromText('POLYGON(..2nd polygon...)',...,ST_GeomFromText('POLYGON(..last polygon...)')]));