Sql PostGIS-合并不同组中的缓冲区几何图形(相交时)
我在这个表中存储了一些几何图形(140k) 创建表缓冲区(pk整数不为空,几何图形(MultiPolygon,4326),) 我想(如果可能的话)创建一个新的表(buffersmerged),它将包含结果几何体,其中预览是分组的,而预览之间是相交的 我的预期输出,就像在QGIS中使用缓冲区(s)工具检查“溶解缓冲区结果”一样,但我希望更多的小组(每组相交几何体一个),而不仅仅是一个大的唯一几何体作为输出 您能帮助我理解如何构造一个允许我这样做的查询吗?(Postgres+PostGIS已启用) 多谢各位Sql PostGIS-合并不同组中的缓冲区几何图形(相交时),sql,postgresql,geometry,postgis,qgis,Sql,Postgresql,Geometry,Postgis,Qgis,我在这个表中存储了一些几何图形(140k) 创建表缓冲区(pk整数不为空,几何图形(MultiPolygon,4326),) 我想(如果可能的话)创建一个新的表(buffersmerged),它将包含结果几何体,其中预览是分组的,而预览之间是相交的 我的预期输出,就像在QGIS中使用缓冲区(s)工具检查“溶解缓冲区结果”一样,但我希望更多的小组(每组相交几何体一个),而不仅仅是一个大的唯一几何体作为输出 您能帮助我理解如何构造一个允许我这样做的查询吗?(Postgres+PostGIS已启用
Stefano您也需要这些属性吗 如果不是,则此查询应执行以下操作:
CREATE TABLE buffersmerged AS
SELECT (ST_dump(ST_union(a.geom))).geom
FROM buffers a, buffers b
WHERE ST_intersects(a.geom,b.geom) AND a.id != b.id;
首先,感谢您的快速回复。不,我不需要任何属性,只需要几何体。一旦我运行了您的代码,我就得到了一个看起来不错但没有任何几何图形的表。为了解决这个问题,我所做的(可能不是以一种性感的方式)是创建一个表,其中已经定义了两列(pk,geom),其中第二列已经定义为多边形。现在它工作了!!谢谢你,在我看来,这句话很管用。也许你可以编辑我的答案并添加你的解决方法?如果答案有效,请不要忘记接受。编辑前,我将向您展示解决方法:>创建表缓冲区合并(pk serial NOT NULL主键,geom geometry(POLYGON,4326));然后:>插入缓冲区合并(geom)>选择(ST_转储(ST_联合(a.geom)).geom>从缓冲区a、缓冲区b>ST_相交处(a.geom、b.geom)和a.pk!=b、 pk;可能有一种方法可以进行单个查询,但我不知道如何进行。如何接受答案?上面的箭头?你需要a.id