`

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. **加载栅格数据**: ...

    C#+AE实现查询功能

    本项目“C#+AE实现查询功能”着重展示了如何结合这两者来实现地图上的查询操作,包括要素点选和框选查询,以获取地图上特定区域或点的属性信息。 首先,我们要理解C#在AE中的作用。AE提供了丰富的API,如地图、图层...

    c#+AE 地图编辑、展示、鹰眼图

    c#+AE10.2实现地图编辑、展示、鹰眼图等基础功能

    C#+AE根据点坐标生成shp文件

    在IT行业中,C#是一种广泛使用的编程语言,尤其在Windows应用程序和.NET框架的开发中扮演着重要角色。在这个特定的项目中,开发者使用C#来实现一个功能,即根据点坐标数据生成SHP文件。SHP(Shapefile)是Esri公司...

    C#+AE最短路径分析.rar

    本程序是实现了牟乃夏老师的《地理信息开发教程》中的关于网络数据集部分的最短路径分析问题,我使用的平台是AE10.2+VS2013,在这其中因为我没有用到障碍点的设置功能,所以我没有实现添加障碍点该功能,不过我将牟...

    C# + AE9.2 最短路径程序

    标题 "C# + AE9.2 最短路径程序" 暗示了这是一个使用C#编程语言开发的应用程序,专门用于解决地理信息系统(GIS)中的最短路径问题。AE9.2可能是ArcGIS Engine的一个版本,它是一个由Esri公司提供的开发工具,允许...

    C#+AE修改栅格像素值

    C#+AE修改栅格像素值代码希望对你有所帮助

    自己做的C#+AE大作业

    标题中的"C#+AE大作业"表明这是一个结合了C#编程语言和Adobe After Effects(简称AE)软件的项目。在这个项目中,开发者可能试图利用C#的编程能力来增强或自动化AE的一些工作流程。C#是一种广泛用于开发Windows桌面...

    c#+ae的各种功能实现例子很多很详细,渲染、查询、分析等都有。

    以下是关于“C#+AE”的相关知识点的详细解释: 1. **C#与.NET Framework**:C#是基于.NET Framework的编程语言,其强大的类库为开发者提供了丰富的功能。在与AE交互时,通常会利用.NET Framework中的COM互操作性来...

    C#+AE开发的系统 全代码

    【标题】"C#+AE开发的系统 全代码"揭示了这个项目是使用C#编程语言与Adobe After Effects(简称AE)技术相结合,构建的一个功能丰富的系统。在IT领域,C#是一种常用的面向对象的编程语言,常用于开发Windows应用程序...

    C#+ArcEngine面周边点抽稀源码

    "C#+ArcEngine面周边点抽稀源码"这个主题聚焦于如何通过编程方式优化地理数据,尤其是减少面周边的点数量,以提高数据处理效率和显示性能。点抽稀算法是地理信息处理中的一个重要概念,它旨在减少数据量,同时保持...

    AE+C#要素编辑

    使用AE+C#实现点、线、面要素的编辑,适合初学者。

    曲线生成算法的C#gdi+实现(贝塞尔曲线、样条曲线、B样条曲线)

    B样条曲线(B-Spline)是另一种灵活的曲线生成方式,它通过一组控制点和非均匀有理B样条函数(NURBS)来构建。B样条曲线允许更大的自由度,因为控制点不一定位于曲线上,且曲线可以根据控制点的分布变化进行局部...

    AE+C#实现最短路径源码与程序

    AE(ArcEngine)是ESRI公司提供的一款强大的GIS开发平台,它允许开发者利用C#等编程语言进行二次开发,构建定制化的GIS应用程序。本资源“AE+C#实现最短路径源码与程序”就是一个典型的GIS二次开发实例,专门针对C#...

    AE+c#克里金插值

    "AE+c#克里金插值"是一个基于C#编程语言和Adobe After Effects(简称AE)的二次开发项目。这个项目的核心是实现一种名为"克里金插值"的算法,这是一种统计学上的空间插值方法,常用于地理信息系统(GIS)和其他需要...

    基于C#+AE构建GIS桌面端应用系统框架-全代码.rar

    基于C#+AE构建GIS桌面端应用系统框架-全代码

    AE C# 空间查询(基于点,线,面)

    本主题主要围绕"AE C# 空间查询(基于点,线,面)"展开,这是一种使用C#编程语言在ArcGIS Engine(AE)平台上实现的空间数据处理技术。对于初学者而言,理解和掌握这些概念至关重要,因为它们为构建地理信息系统...

    C# Spy++源代码

    【C# Spy++源代码】是一个使用C#编程语言...综上所述,C# Spy++源代码是一个极具价值的学习和开发资源,涵盖了Windows编程、系统调试、C#语言应用等多个方面,对于提升开发者的技术水平和解决实际问题具有很大帮助。

    基于C#+AE构建GIS桌面端应用系统框架-全代码

    基于C#+AE构建GIS桌面端应用系统,包括常用的查询,空间分析等功能

    林业GIS系统源代码 (c#+ae)

    《林业GIS系统源代码(c#+AE)解析与学习指南》 林业GIS系统是地理信息系统(GIS)在林业领域的具体应用,结合C#编程语言和Adobe After Effects(AE)的图形处理技术,为林业管理和决策提供了强大的工具。这个系统不仅...

Global site tag (gtag.js) - Google Analytics