当前位置: 代码迷 >> GIS >> 合并的地块带有小缝隙怎么处理
  详细解决方案

合并的地块带有小缝隙怎么处理

热度:625   发布时间:2016-05-05 06:04:28.0
合并的地块带有小缝隙怎么办

 我们会有这样的业务操作,合并两个地块或者更多的地块,这种操作要非常细心,如果每个地块精度不一样,恭喜你会造成一个大地块会有很多缝隙,这些缝隙面积甚至小于0.01平方米,这样对于业务需求来说是不正确。那么如何解决这个问题,一开始我稀里糊涂去把这个地块的多部件出来,然后小于0.01我就把他转成顺时针,(逆时针的polygon就是带缝隙的地块),然后再和其他分出来的地块合并,没想到这样操作导致面积差距好大,连其他大的缝隙也给合了。后来想下有个比较简单的操作

  

 1         public IPolygon fillGeometry(IPolygon polgyon) 2         { 3             double unionarea = 0.5; 4  5             IGeometryCollection igeoColl = polgyon as IGeometryCollection; 6  7             try 8             {  9                 for (int i = 0; i < igeoColl.GeometryCount; i++)10                 {11                     IGeometry currentGeometry = igeoColl.get_Geometry(i);12                     double area = (currentGeometry as IArea).Area;13                     // 面积小于0 是 带洞的ring (逆时针的polygon)判断是否超过警戒值 去填充14                     if (area < 0)15                     {16                         if (Math.Abs(area) < unionarea)17                         {18                             igeoColl.RemoveGeometries(i, 1);19                             igeoColl.GeometriesChanged();20                             i--;21                         }22                     }23                 }24             }25             catch(Exception e)26             {27                 return polgyon;28             }29 30             return polgyon;31           32         }

 

  相关解决方案