标签: python postgresql gis polygon postgis
我有一组多边形,它们可以相互重叠,如下所示:
我希望以不重叠的方式修改它们,并且所得到的表面积保持不变。像这样:
如果形状或位置发生变化也可以。最主要的是它们不应相互重叠,并且面积不应有太大变化(我知道第二幅图像中的面积有所变化,但是我是手动绘制的,因此我们假设面积没有变化)。>
我正在尝试在Python的帮助下以编程方式进行操作。基本上,我将多边形存储在PostGIS数据库中,并希望借助脚本来检索它们并进行修改。
我对GIS非常陌生,因此这似乎是一项艰巨的任务。
正确的做法是什么?有解决这种问题的算法吗?
答案 0 :(得分:0)
看看ST_buffer,然后尝试将带符号的浮点数作为第二个参数(减小半径的度数)
SELECT buffer(the_geom,-0.01) as geom
请注意使用负缓冲区,如果缓冲区大小超出半径,可能会遇到问题,请参见here。
答案 1 :(得分:0)
这是我所做的:
遍历所有多边形并找到重叠的多边形。然后,我沿不同方向移动了多边形,并通过计算最小的重叠区域找到了最佳的移动方向。然后,我简单地沿最佳方向移动了多边形,直到没有重叠区域为止。