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. **加载栅格数据**: ...
【标题】"课程设计做的AE+C#程序"指的是一个结合了Adobe After Effects(AE)与C#编程语言的项目,通常在GIS(地理信息系统)的二次开发中使用。这个程序可能是一个工具或应用,用于处理、分析或展示地理数据。 ...
【C# AE 鹰眼程序】是一种基于C#编程语言和Adobe After Effects(简称AE)技术开发的应用程序。在IT行业中,C#是微软公司推出的一种面向对象的、现代的编程语言,常用于构建Windows桌面应用、Web应用以及游戏等。而...
总的来说,基于AE和C#的GIS系统融合了现代编程语言的强大功能和视觉特效工具的创意表现,为地理信息处理提供了新的解决方案,不仅提升了数据处理效率,也增强了用户体验。对于GIS开发者而言,掌握这样的技术组合可以...
标题 "AE10.2全部样例程序" 暗示了这是一组与ArcGIS Desktop的ArcEngine 10.2版本相关的示例代码或应用程序。ArcEngine是Esri公司开发的一个强大的地理信息系统(GIS)开发平台,允许开发者利用.NET Framework创建...