如何在postgis中将多个点转换为多点

时间:2012-03-07 15:58:11

标签: postgresql geolocation gis geospatial postgis

我需要转换一个包含这些列的点表(id,the_geom) 多点?

为什么我需要这样做?因为我想在每个点周围创建一个缓冲区,如果我使用point我将为每个点获得一个缓冲区,但我真正需要的是整个表的多边形缓冲区。该表累计超过2000条记录。

这是一张图片,说明我需要做什么(缓冲多点):

enter image description here

非常感谢

3 个答案:

答案 0 :(得分:5)

您正在寻找的函数是聚合形式的ST_Union:

SELECT ST_Multi(ST_Union(the_geom)) FROM myTable;

答案 1 :(得分:2)

如果您使用pgAdmin III查看查询结果,这可能只是一个显示问题。似乎具有大量记录的几何(例如,在这种情况下为2000)将不会显示在数据输出窗格中。

您可以使用以下方法检查查询结果:

SELECT ST_AsText(ST_ConcaveHull(ST_Collect(the_geom),0.90)) As cc_hull FROM mytable;

这应该将凹形外壳多边形作为文本返回到数据输出窗格中。

答案 2 :(得分:0)

我认为ST_ConvexHull正是您所寻找的。

SELECT ST_Buffer(ST_ConvexHull(ST_Collect(the_geom)),0.01) FROM mytable;