如何修复具有自相交的多边形?

有没有办法使用GEOS从多边形中删除自交叉?     
已邀请:
所以,我必须自己回答这个问题。也许它会帮助别人。 您可以使用geos :: operation :: buffer :: BufferOp类修复多边形。例如。
geos::geom::Geometry * result = 
                       geos::operation::buffer::BufferOp::bufferOp(polygon, 1.0);
您可以在JTS拓扑套件的秘密中找到更多好的食谱。     
通常允许点交叉点,因此您可以更改
1  2   4
*--*   *       
|    /|
|    X |
|   / |
*--*   *
6  5   3
1  2   4
*--*   *       
|    /|
|   3*6|
|   / |
*--*   *
8  7   5
其中第3点和第6点是相同的。如果不允许点交叉点,请移动其中一个点。 根据我的经验,大多数这样的交叉点有些来自错误的多边形简化,因此如果可能的话,最好回到源代码。     
自相交多边形无效。因此,BufferOp可能会给出无效结果。 我没有找到任何方法来修复地理中的自相交多边形。 PostGIS中的st_makevalid函数使用地理。因此可以调查源代码。     

要回复问题请先登录注册