首页 > 其他 > 详细

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

时间:2015-12-09 13:30:01      阅读:182      评论:0      收藏: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         }

 

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

原文:http://www.cnblogs.com/haibalai/p/5032294.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!