zoukankan      html  css  js  c++  java
  • Arcengine合并面要素

    问题:对两个进行合并的过程中(比如面A和面B),发现无论怎么合并最后的结果总是A要素的区域。

    解决方法:

    使用ITopologicalOperator.Union()方法对A、B俩个面要素进行合并,后来发现是没有获取union操作的结果 ,当时的错误代码是这样的:

    ITopologicalOperator2 unionTopo = geometryFirst as ITopologicalOperator2;                       
    IGeometry secondFeaGeo = secondFea.ShapeCopy;
    unionTopo.Union(secondFeaGeo);
    unionFea.Shape =unionTopo as IGeometry ;//这种获取union操作的结果的方法是错误的
    

    后来在网友帮助下改正代码如下:

                            IFeature unionFea = areaFeaClass.CreateFeature();
    
                            IFeature firstFea = areaFeaClass.GetFeature(unionFeaGroupList[i][0]);
                            IFeature secondFea = areaFeaClass.GetFeature(unionFeaGroupList[i][1]);
    
                            IGeometry geometryFirst = firstFea.ShapeCopy;
                            ITopologicalOperator2 unionTopo = geometryFirst as ITopologicalOperator2;                       
    
                            IGeometry secondFeaGeo = secondFea.ShapeCopy;
                         
                            unionFea.Shape = unionTopo.Union(secondFeaGeo);//正确获得结果的方式
                            unionFea.set_Value(feastateIndex, "0");
                            unionFea.Store();
    
                            firstFea.Delete();
                            secondFea.Delete();
    

    合并结果就正确了。也可以将合并好的结果赋给第一个要素并保存,然后删除第二个要素,这样便避免了创建新要素然后再删除两个要素的麻烦。

  • 相关阅读:
    表单
    HTML5新特性
    Bash中的特殊字符
    网站商务通链接快速标识v1.0.js
    js实现中文简繁切换效果
    input 表单点击消失离开出现
    canonical 标签介绍
    商务通对话窗口出现验证码
    织梦dedecms后台发布文章不自动更新首页与栏目列表页
    dedecms修改templets为别的名字
  • 原文地址:https://www.cnblogs.com/lettet/p/4365996.html
Copyright © 2011-2022 走看看