AE数据转换的代码(FeatureClass To Shape)

本文介绍了一种使用ArcObjects API将要素类(Feature Class)导出为Shapefile的方法。该过程包括验证字段、创建输出文件名及利用FeatureDataConverter进行转换等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private void ExportToShapefile(IFeatureClass fc, IWorkspace outWorkspace)
   {

    IDataset inDataSet = fc as IDataset;
    IFeatureClassName inFCName = inDataSet.FullName as IFeatureClassName;
    IWorkspace inWorkspace = inDataSet.Workspace; 
   
    IDataset outDataSet = outWorkspace as IDataset;
    IWorkspaceName outWorkspaceName = outDataSet.FullName as IWorkspaceName;
   
    IFeatureClassName outFCName = new FeatureClassNameClass();
    IDatasetName dataSetName = outFCName as IDatasetName;
    dataSetName.WorkspaceName = outWorkspaceName;
    dataSetName.Name = fc.AliasName.ToString();
   

    IFieldChecker fieldChecker = new FieldCheckerClass();
    fieldChecker.InputWorkspace = inWorkspace;
    fieldChecker.ValidateWorkspace = outWorkspace;

    IFields fields = fc.Fields;
    IFields outFields = null;
    IEnumFieldError enumFieldError = null;
    fieldChecker.Validate(fields,out enumFieldError,out outFields);
   
    IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass();
    featureDataConverter.ConvertFeatureClass(inFCName,null,null,outFCName,null,outFields,"",100,0);

   }

### ArcGIS Engine 二次开发添加 SHP 文件 #### 创建工作空间并加载 SHP 数据 为了在 ArcGIS Engine 中成功加载和操作 SHP 文件,首先需要创建一个合适的工作空间。这一步骤涉及指定存储 SHP 文件的位置以及初始化必要的接口。 通过 `ShapefileWorkspaceFactory` 类可以实现这一点: ```csharp using ESRI.ArcGIS.DataSourcesFile; // ... IWorkspaceFactory pWSF = new ShapefileWorkspaceFactoryClass(); string shapeFolder = @"C:\Path\To\Your\Folder"; // 替换成实际的文件夹路径 IWorkspace pWS = pWSF.OpenFromFile(shapeFolder, 0); IFeatureWorkspace pFWS = pWS as IFeatureWorkspace; ``` 上述代码片段展示了如何打开特定目录下的 SHAPEFILE 工作区[^2]。 #### 获取图层信息 一旦有了功能化的工作空间实例 (`IFeatureWorkspace`) ,就可以进一步获取该工作区内存在的要素类(即 SHP 文件表示的地物集合)。对于每一个 SHP 文件而言,在这里会得到对应的一个 `IFeatureClass` 对象。 ```csharp string featureClassName = "your_shape_file_name_without_extension"; IFeatureClass fc = pFWS.OpenFeatureClass(featureClassName); ``` 这段代码用于读取具体名为 `featureClassName` 的 SHP 文件,并将其转换成可被应用程序使用的地理特征类别对象。 #### 将 SHP 图层加入地图显示 最后要做的就是把已经准备好的 SHP 图层添加到当前的地图文档中去展示出来。为此需要用到 MapControl 或者 PageLayoutControl 控件中的 LayerCollection 属性来管理各层次序关系。 ```csharp IMap map = axMapControl1.Map; // 假设使用的是 AxMapControl 组件 IFeatureLayer layer = new FeatureLayerClass(); layer.FeatureClass = fc; layer.Name = featureClassName; map.AddLayer(layer); axMapControl1.ActiveView.Refresh(); // 刷新视图使新添加的内容可见 ``` 此部分说明了怎样将之前获得的 SHP 资源作为一层叠加至现有 GIS 场景之上以便可视化呈现[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值