我用Shapely的多边形来做人工生成的数据。多人被要求在图像中的某些特征周围画多边形。因此,对于每个图像,我们都有n个MultiPolygon,其中n等于每个图像的参与者数。
我可以画出这些Multipolygon中的每一个。
fig, ax = plt.subplots()
for ii, multi_poly in enumerate(multi_polys):
for poly in multi_poly.geoms:
x,y = poly.exterior.xy
plt.plot(x,y, c=colors[ii])
我们可以看到,
我在试着确定一些多边形是否互相重叠。所有的多边形都在同一层。
PostGis函数ST_OVERLAPS可以确定两个几何元素是否重叠。但是我找不到一种方法来应用这个函数来检查一个或多个多边形是否重叠。
我想要的是:
SELECT *
FROM MyGeometricTable g
WHERE ST_OVERLAPS(g.geom,g.geom) = 1
AND g.id <> g.id --The polygon that overlap another polygon is not the same.
MyGeomtricTable包含1