修改多边形,使其不重叠且面积保持不变

时间:2018-07-08 16:13:04

标签: python postgresql gis polygon postgis

我有一组多边形,它们可以相互重叠,如下所示: enter image description here

我希望以不重叠的方式修改它们,并且所得到的表面积保持不变。像这样:

enter image description here

如果形状或位置发生变化也可以。最主要的是它们不应相互重叠,并且面积不应有太大变化(我知道第二幅图像中的面积有所变化,但是我是手动绘制的,因此我们假设面积没有变化)。

我正在尝试在Python的帮助下以编程方式进行操作。基本上,我将多边形存储在PostGIS数据库中,并希望借助脚本来检索它们并进行修改。

我对GIS非常陌生,因此这似乎是一项艰巨的任务。

正确的做法是什么?有解决这种问题的算法吗?

2 个答案:

答案 0 :(得分:0)

看看ST_buffer,然后尝试将带符号的浮点数作为第二个参数(减小半径的度数)

SELECT buffer(the_geom,-0.01) as geom

请注意使用负缓冲区,如果缓冲区大小超出半径,可能会遇到问题,请参见here

答案 1 :(得分:0)

这是我所做的:

遍历所有多边形并找到重叠的多边形。然后,我沿不同方向移动了多边形,并通过计算最小的重叠区域找到了最佳的移动方向。然后,我简单地沿最佳方向移动了多边形,直到没有重叠区域为止。