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();
}
}
分享到:
相关推荐
ArcEngine提供了一组.NET类库,使得开发者能够用C#这样的.NET语言创建GIS应用。安装ArcEngine SDK后,我们可以在C#项目中引用相应的DLL文件,如ESRI.ArcGIS.dll,来访问其丰富的GIS功能。 1. **加载栅格数据**: ...
本项目“C#+AE实现查询功能”着重展示了如何结合这两者来实现地图上的查询操作,包括要素点选和框选查询,以获取地图上特定区域或点的属性信息。 首先,我们要理解C#在AE中的作用。AE提供了丰富的API,如地图、图层...
c#+AE10.2实现地图编辑、展示、鹰眼图等基础功能
在IT行业中,C#是一种广泛使用的编程语言,尤其在Windows应用程序和.NET框架的开发中扮演着重要角色。在这个特定的项目中,开发者使用C#来实现一个功能,即根据点坐标数据生成SHP文件。SHP(Shapefile)是Esri公司...
本程序是实现了牟乃夏老师的《地理信息开发教程》中的关于网络数据集部分的最短路径分析问题,我使用的平台是AE10.2+VS2013,在这其中因为我没有用到障碍点的设置功能,所以我没有实现添加障碍点该功能,不过我将牟...
标题 "C# + AE9.2 最短路径程序" 暗示了这是一个使用C#编程语言开发的应用程序,专门用于解决地理信息系统(GIS)中的最短路径问题。AE9.2可能是ArcGIS Engine的一个版本,它是一个由Esri公司提供的开发工具,允许...
C#+AE修改栅格像素值代码希望对你有所帮助
以下是关于“C#+AE”的相关知识点的详细解释: 1. **C#与.NET Framework**:C#是基于.NET Framework的编程语言,其强大的类库为开发者提供了丰富的功能。在与AE交互时,通常会利用.NET Framework中的COM互操作性来...
标题中的"C#+AE大作业"表明这是一个结合了C#编程语言和Adobe After Effects(简称AE)软件的项目。在这个项目中,开发者可能试图利用C#的编程能力来增强或自动化AE的一些工作流程。C#是一种广泛用于开发Windows桌面...
【标题】"C#+AE开发的系统 全代码"揭示了这个项目是使用C#编程语言与Adobe After Effects(简称AE)技术相结合,构建的一个功能丰富的系统。在IT领域,C#是一种常用的面向对象的编程语言,常用于开发Windows应用程序...
"C#+ArcEngine面周边点抽稀源码"这个主题聚焦于如何通过编程方式优化地理数据,尤其是减少面周边的点数量,以提高数据处理效率和显示性能。点抽稀算法是地理信息处理中的一个重要概念,它旨在减少数据量,同时保持...
使用AE+C#实现点、线、面要素的编辑,适合初学者。
B样条曲线(B-Spline)是另一种灵活的曲线生成方式,它通过一组控制点和非均匀有理B样条函数(NURBS)来构建。B样条曲线允许更大的自由度,因为控制点不一定位于曲线上,且曲线可以根据控制点的分布变化进行局部...
AE(ArcEngine)是ESRI公司提供的一款强大的GIS开发平台,它允许开发者利用C#等编程语言进行二次开发,构建定制化的GIS应用程序。本资源“AE+C#实现最短路径源码与程序”就是一个典型的GIS二次开发实例,专门针对C#...
"AE+c#克里金插值"是一个基于C#编程语言和Adobe After Effects(简称AE)的二次开发项目。这个项目的核心是实现一种名为"克里金插值"的算法,这是一种统计学上的空间插值方法,常用于地理信息系统(GIS)和其他需要...
【C# Spy++源代码】是一个使用C#编程语言...综上所述,C# Spy++源代码是一个极具价值的学习和开发资源,涵盖了Windows编程、系统调试、C#语言应用等多个方面,对于提升开发者的技术水平和解决实际问题具有很大帮助。
3. **框选操作**:在GIS应用中,用户通常需要选择地图上的特定要素,如点、线、面。框选是一种常见的选择方式,用户可以通过鼠标绘制一个矩形框来选择框内的所有要素。 4. **高亮显示**:被选中的要素可以通过改变...
基于C#+AE构建GIS桌面端应用系统,包括常用的查询,空间分析等功能
用C#+AE编写的导出选中的矢量要素为矢量文件,可以按照图层批量导出选中要素。
公路灾害信息查询系统QuerySystem是基于C#编程语言与ArcGIS Engine(简称AE)开发的一款...总的来说,C#+AE构建的GIS公路灾害信息查询系统是现代交通管理中的一个重要工具,体现了信息技术在公共安全领域的应用价值。