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

 我们会有这样的业务操作,合并两个地块或者更多的地块,这种操作要非常细心,如果每个地块精度不一样,恭喜你会造成一个大地块会有很多缝隙,这些缝隙面积甚至小于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         }
原文地址:https://www.cnblogs.com/haibalai/p/5032294.html