Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql PostGIS-合并不同组中的缓冲区几何图形(相交时)_Sql_Postgresql_Geometry_Postgis_Qgis - Fatal编程技术网

Sql PostGIS-合并不同组中的缓冲区几何图形(相交时)

Sql PostGIS-合并不同组中的缓冲区几何图形(相交时),sql,postgresql,geometry,postgis,qgis,Sql,Postgresql,Geometry,Postgis,Qgis,我在这个表中存储了一些几何图形(140k) 创建表缓冲区(pk整数不为空,几何图形(MultiPolygon,4326),) 我想(如果可能的话)创建一个新的表(buffersmerged),它将包含结果几何体,其中预览是分组的,而预览之间是相交的 我的预期输出,就像在QGIS中使用缓冲区(s)工具检查“溶解缓冲区结果”一样,但我希望更多的小组(每组相交几何体一个),而不仅仅是一个大的唯一几何体作为输出 您能帮助我理解如何构造一个允许我这样做的查询吗?(Postgres+PostGIS已启用

我在这个表中存储了一些几何图形(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