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


     我们会有这样的业务操作,合并两个地块或者更多的地块,这种操作要非常细心,如果每个地块精度不一样,恭喜你会造成一个大地块会有很多缝隙,这些缝隙面积甚至小于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         }
  • 相关阅读:
    Yii 动作过滤的方法
    artdialog
    第一天:安装nodejs
    yii模块下面的组件
    总是容易忘记 jquery ajax POST
    【来自简书】浏览器~加载,解析,渲染
    【收藏】九个PHP很有用的功能
    从理论到实践,全方位认识DNS(实践篇)
    从理论到实践,全方位认识DNS(理论篇)
    DNS解析过程原理
  • 原文地址:https://www.cnblogs.com/haibalai/p/5032294.html
Copyright © 2020-2023  润新知