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


     我们会有这样的业务操作,合并两个地块或者更多的地块,这种操作要非常细心,如果每个地块精度不一样,恭喜你会造成一个大地块会有很多缝隙,这些缝隙面积甚至小于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         }
  • 相关阅读:
    php7 安装xhprof
    通过explain分析SQL
    将本地代码上传到github
    SVM支持向量机分类算法
    sklearn之reshape(-1,1)
    sklearn之决策树和随机森林对iris的处理比较
    sklearn总结
    面向对象之类的继承
    面向对象之静态方法、类方法
    面向对象之类的私有属性和方法
  • 原文地址:https://www.cnblogs.com/haibalai/p/5032294.html
Copyright © 2020-2023  润新知