我有一组代表大面积的多边形,例如城市社区。我想确定它们之间的大重叠区域。
但是存在一个问题:有时这些多边形会沿其周界重叠(因为它们绘制的精度很低)。这将产生我不关心的长而窄的重叠。
但其他时候,健壮多边形会出现大量重叠,这意味着邻域的多边形会与另一个多边形重叠的较大区域。我只选择这些。
请参见下面的重叠图片。想象一下,我只想选择左下角的蓝色多边形。
我可以看一下区域,但是有时狭窄的区域是如此之长,以至于最终它们会具有与蓝色多边形一样大的区域。我试图做一个面积/周长的比率,但这也产生了混合的结果。
我什至尝试使用ST_MinimumClearance
,但是有时大区域会附上一个狭窄的部分,或者两个非常接近的顶点。
对其他方法有什么想法吗?
最后,最适合我的方法是使用负缓冲区,如下面的@Cyril和@FGreg所建议。
我使用了类似的东西:
ST_Area(ST_Buffer(geom, -10)) as neg_buffer_area
在我的情况下,单位为米,因此10 m负缓冲。
对于窄多边形,该区域返回零(同样,几何图形将为空)。然后,我使用此列来过滤出狭窄的多边形。