PostGIS:删除重叠的多边形
PostGIS: Delete polygons that overlap
我有四个不同的多边形 shapefile,需要从多边形“a”中删除与多边形“b、c 和 d”相交的多边形,留下 table 只有“a”中不相交的多边形与任何其他层相交。有没有办法在 PostGIS 中做到这一点?
a(id,geom)
b(id,geom)
c(id,geom)
d(id,geom)
使用EXISTS()表达式,例如:
DELETE
FROM <table_a> a
WHERE EXISTS
( SELECT 1
FROM <table_b> b
WHERE ST_Intersects(a.geom,b.geom)
)
or EXISTS
( SELECT 1
FROM <table_c> c
WHERE ST_Intersects(a.geom,c.geom)
)
or EXISTS
( SELECT 1
FROM <table_d> d
WHERE ST_Intersects(a.geom,d.geom)
)
我有四个不同的多边形 shapefile,需要从多边形“a”中删除与多边形“b、c 和 d”相交的多边形,留下 table 只有“a”中不相交的多边形与任何其他层相交。有没有办法在 PostGIS 中做到这一点?
a(id,geom) b(id,geom) c(id,geom) d(id,geom)
使用EXISTS()表达式,例如:
DELETE
FROM <table_a> a
WHERE EXISTS
( SELECT 1
FROM <table_b> b
WHERE ST_Intersects(a.geom,b.geom)
)
or EXISTS
( SELECT 1
FROM <table_c> c
WHERE ST_Intersects(a.geom,c.geom)
)
or EXISTS
( SELECT 1
FROM <table_d> d
WHERE ST_Intersects(a.geom,d.geom)
)