使用ST_Difference删除重叠的功能?
我正在尝试使用PostGis 2.1(和Postgres SQL 9.3)使用ST_Difference创建一组多边形(processing.trimmedparcelsnew),这些多边形不包含另一组多边形(test.single_geometry_1)所覆盖的任何区域。这是我的查询: CREATE TABLE processing.trimmedparcelsnew AS SELECT orig.id, ST_Difference(orig.geom, cont.geom) AS difference FROM test.single_geometry_1 cont, test.multi_geometry_1 orig; 但是生成的多边形尚未修剪,相反,它们似乎在与另一层相交的地方被拆分了。我试过只运行选择而不将结果放在表中以及其他我能想到的东西,但是我似乎无法使该功能正常工作。 我已附上结果图 评论后,我尝试添加WHERE子句。我希望没有交集的宗地,而其他宗地的相交区域被删除(图层test.single_geometry表示要从宗地中删除的污染)。我尝试了一个相交,但是我当然想要非相交,所以我现在尝试分离。我也尝试过将折纸添加到表中,但是ST_Difference的文档(http://postgis.net/docs/ST_Difference.html)确实说它返回了我需要的精确几何图形(表示几何图形A的那部分,不会与几何B)相交,所以我对为什么要在表格中使用原始多边形感到困惑。无论如何,这是我修改后的代码: CREATE TABLE processing.trimmedparcelsnew AS SELECT orig.id, ST_Difference(orig.geom, cont.geom) AS difference, orig.geom AS geom FROM test.single_geometry_1 cont, test.multi_geometry_1 orig WHERE ST_Disjoint(orig.geom, cont.geom); 根据dbaston的回答,我现在尝试: CREATE TABLE processing.parcels_trimmed AS SELECT id, …