ArcEngine判断要素(feature)是否为multipart feature及分解(炸开)代码

简介:

转自原文 ArcEngine判断要素(feature)是否为multipart feature及分解(炸开)代码

复制代码
#region 校验合法性  
ArrayList pFeatureArray = null;  
pFeatureArray = Application.Editor.FeatureSelection();  
int count=pFeatureArray.Count;  
if (count<1)  
{  
    MessageBox.Show("最少必须选择1个要素才能进行要素分解!", "提示");  
    return;  
}  
    #endregion     
try  
{  
    //启动编辑操作  
    Application.Editor.StartOperation();  
    #region 对选中的要素进行多部件测试及分解  
    int multipartcount = 0;  
    for (int i = 0; i < count; i++)  
    {  
        IFeature pFeature = pFeatureArray as IFeature;  
        if (pFeature.ShapeCopy.IsEmpty) continue;  
        IGeometry pGeometry = pFeature.ShapeCopy;  
        IGeometryCollection pGeocoll = pGeometry as IGeometryCollection;  
        int geomcount = pGeocoll.GeometryCount;  
        if (geomcount > 1)  
        {  
            multipartcount++;  
            for (int k = 1; k < geomcount; k++)  
            {  
                IFeature newFeaturte = (pFeature.Class as IFeatureClass).CreateFeature();  
                IFeatureEdit pFeatureEdit = pFeature as IFeatureEdit;  
                pFeatureEdit.SplitAttributes(newFeaturte);  
                IGeometry newGeom = pGeocoll.get_Geometry(k);  
                if (pFeature.ShapeCopy.GeometryType == esriGeometryType.esriGeometryPolygon)  
                    newGeom=GeometryHelper.ConstructPolygon(newGeom);  
                else  
                    newGeom = GeometryHelper.ConstructPolyline(newGeom);  
                newGeom.SpatialReference = pFeature.ShapeCopy.SpatialReference;  
                newFeaturte.Shape = newGeom;  
                newFeaturte.Store();  
            }  
      
            IGeometry newGeom2 = pGeocoll.get_Geometry(0);  
            if (pFeature.ShapeCopy.GeometryType == esriGeometryType.esriGeometryPolygon)  
                newGeom2 = GeometryHelper.ConstructPolygon(newGeom2);  
            else  
                newGeom2 = GeometryHelper.ConstructPolyline(newGeom2);  
            newGeom2.SpatialReference = pFeature.ShapeCopy.SpatialReference;  
            pFeature.Shape = newGeom2;  
            pFeature.Store();  
            Application.Editor.StopOperation("分解多部件要素");  
        }  
        else  
        {  
            continue;  
        }  
    }  
    if (multipartcount == 0)  
    {  
        MessageBox.Show("未选择多部件要素!", "分解要素");  
        return;  
    }  
     
     
    #endregion  
}  
catch (Exception ex)  
{  
    Application.Editor.AbortOperation();  
    MessageHelper.WriteLog("分解多部件要素", ex);  
}  
finally  
{  
    Application.ActiveView.Refresh();  
    FlashFeatures();  
}  
复制代码

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。




    本文转自wenglabs博客园博客,原文链接http://www.cnblogs.com/arxive/p/6263116.html :,如需转载请自行联系原作者

相关文章
|
5月前
|
机器学习/深度学习 编解码
【论文笔记】图像修复MPRNet:Multi-Stage Progressive Image Restoration 含代码解析2
【论文笔记】图像修复MPRNet:Multi-Stage Progressive Image Restoration 含代码解析
192 2
|
5月前
|
机器学习/深度学习 计算机视觉
【论文笔记】图像修复MPRNet:Multi-Stage Progressive Image Restoration 含代码解析1
【论文笔记】图像修复MPRNet:Multi-Stage Progressive Image Restoration 含代码解析
89 1
|
10月前
问题出在`megatron_util.mpu`模块中没有找到`get_model_parallel_rank`属性
问题出在`megatron_util.mpu`模块中没有找到`get_model_parallel_rank`属性
103 1
|
XML 安全 数据安全/隐私保护
SAP Success Factor Single Sign On(单点集成) 的文档清单
SAP Success Factor Single Sign On(单点集成) 的文档清单
|
存储 C# Python
基于C#的ArcEngine二次开发46:编辑内容回撤与炸开multipart feature
基于C#的ArcEngine二次开发46:编辑内容回撤与炸开multipart feature
基于C#的ArcEngine二次开发46:编辑内容回撤与炸开multipart feature
|
机器学习/深度学习 传感器 编解码
翻译:Multi-scale Multi-path Multi-model Fusion Nerwork
M3Net: 多尺度多路径多模型融合网络及其在 RGB-D 显着目标检测中的应用实例
182 0
|
Serverless
emprical 模块学习与分析 note6
emprical 模块学习与分析 note6
196 0
|
存储 JSON 自然语言处理
multi-class分类模型评估指标的定义、原理及其Python实现
本文介绍multi-class分类任务中的模型评估指标及其使用Python的实现方式(包括使用sklearn进行实现,以及使用原生Python函数进行实现的操作)。 本文使用的示例是在英文多标签文本分类数据集AAPD数据集上,使用fastText包运算得到的多标签分类结果,与真实标签之间计算对应的指标结果(原则上使用one-label标签应该也能这么算,我就不另写了)。本文第一节将介绍相应数据的处理方式,第二节及其后是各指标的原理和计算方式。
multi-class分类模型评估指标的定义、原理及其Python实现
|
存储 人工智能 前端开发
动态尺寸模型优化实践之Shape Constraint IR Part II
在本系列分享中我们将介绍BladeDISC在动态shape语义下做性能优化的一些实践和思考。本次分享的是我们最近开展的有关shape constraint IR的工作,Part II 中我们将介绍shape constraint IR的设计,实现以及一些初步的实验结果
|
人工智能 编译器 云计算
动态尺寸模型优化实践之Shape Constraint IR Part I
在本系列分享中我们将介绍BladeDISC在动态shape语义下做性能优化的一些实践和思考。本次分享的是我们最近开展的有关shape constraint IR的工作,Part I 中我们将介绍问题的背景,面临的主要挑战和以及我们做shape constraint IR的动机。