`

C# + AE 一组线融合成面的问题

阅读更多
C# + AE 一组线融合成面的问题

请教各位大虾。我手上有一份由CAD转换生成的shp文件。转换完成后,有些本来应该是面的地方却是由一根根线组成的【比如一块绿地,转换完成后却是由一系列线围成,而不是一个面,可能是因为在最初CAD编辑时候的问题】。
现在问题就是,怎么样才能做到,我在地图上选中这些线,然后将这些线融合成一个面。
要用到那些接口,最好能有些代码来参考参考。谢谢!

问题基本已经解决,下面把代码贴出来:

不过 还有个问题就是由线转换得到的面有时候得到多个面,而不是一个面(比如两条相交的线转换出来就是两个面),这个是什么原因啊?怎么只得到一个面?


        private void creatpolygonfromlinr(IFeatureClass getpolygon_fc, IFeatureLayer fromline_fl)
        {
            //判断getpolygon_fc是否为面
            if (getpolygon_fc.ShapeType != esriGeometryType.esriGeometryPolygon)
                return;
            //得到选择的Feature的指针
            IFeatureSelection pFeatureSelection = fromline_fl as IFeatureSelection;
            ISelectionSet pSelectionSet = pFeatureSelection.SelectionSet;
            ICursor pCursor;
            pSelectionSet.Search(null, false, out pCursor);
            IFeatureCursor pFeatureCursor = pCursor as IFeatureCursor;
            IGeoDataset pGeoDataset = getpolygon_fc as IGeoDataset;
            IEnvelope pEnvelope = pGeoDataset.Extent;
            IInvalidArea pInvalidArea = new InvalidAreaClass();
            IFeatureConstruction pFeatureConstruction = new FeatureConstructionClass();
            IDataset pDataset = getpolygon_fc as IDataset;
            IWorkspace pWorkspace = pDataset.Workspace;
            IWorkspaceEdit pWorkspaceEdit = pWorkspace as IWorkspaceEdit;
            if (pWorkspaceEdit.IsBeingEdited() != true)
            {
                pWorkspaceEdit.StartEditing(true);
                pWorkspaceEdit.StartEditOperation();
            }
            //开始
            try
            {
                pFeatureConstruction.ConstructPolygonsFromFeaturesFromCursor(null, getpolygon_fc, pEnvelope, true, false, pFeatureCursor, pInvalidArea, -1, null);
                pWorkspaceEdit.StopEditOperation();
                pWorkspaceEdit.StopEditing(true);
            }
            catch
            {
                pWorkspaceEdit.AbortEditOperation();
            }
        }
分享到:
评论
1 楼 JMS_Exception 2012-07-01  

相关推荐

    C#+AE 对栅格数据的操作

    ArcEngine提供了一组.NET类库,使得开发者能够用C#这样的.NET语言创建GIS应用。安装ArcEngine SDK后,我们可以在C#项目中引用相应的DLL文件,如ESRI.ArcGIS.dll,来访问其丰富的GIS功能。 1. **加载栅格数据**: ...

    课程设计做的AE+C#程序

    【标题】"课程设计做的AE+C#程序"指的是一个结合了Adobe After Effects(AE)与C#编程语言的项目,通常在GIS(地理信息系统)的二次开发中使用。这个程序可能是一个工具或应用,用于处理、分析或展示地理数据。 ...

    C# AE 鹰眼程序

    【C# AE 鹰眼程序】是一种基于C#编程语言和Adobe After Effects(简称AE)技术开发的应用程序。在IT行业中,C#是微软公司推出的一种面向对象的、现代的编程语言,常用于构建Windows桌面应用、Web应用以及游戏等。而...

    基于AE和C#的GIS系统

    总的来说,基于AE和C#的GIS系统融合了现代编程语言的强大功能和视觉特效工具的创意表现,为地理信息处理提供了新的解决方案,不仅提升了数据处理效率,也增强了用户体验。对于GIS开发者而言,掌握这样的技术组合可以...

    AE10.2全部样例程序

    标题 "AE10.2全部样例程序" 暗示了这是一组与ArcGIS Desktop的ArcEngine 10.2版本相关的示例代码或应用程序。ArcEngine是Esri公司开发的一个强大的地理信息系统(GIS)开发平台,允许开发者利用.NET Framework创建...

Global site tag (gtag.js) - Google Analytics