方法一:使用IFeatureDataConverter.ConvertFeatureClass方法

private int ExportToShapefile(IFeatureClass pFeatureClass, IWorkspace outWorkspace)

{

try

{

//输入的要素类空间

IDataset inDataSet = pFeatureClass as IDataset;

IFeatureClassName inFCName = inDataSet.FullName as IFeatureClassName;

IWorkspace inWorkspace = inDataSet.Workspace;

//输出的shapfile文件的工作空间

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 = pFeatureClass.AliasName.ToString();

//检查字段的有效性

IFieldChecker fieldChecker = new FieldCheckerClass();

fieldChecker.InputWorkspace = inWorkspace;

fieldChecker.ValidateWorkspace = outWorkspace;

IFields fields = pFeatureClass.Fields;

IFields outFields = null;

IEnumFieldError enumFieldError = null;

fieldChecker.Validate(fields, out enumFieldError, out outFields);

//调用IFeatureDataConverter接口进行数据转换

IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass();

featureDataConverter.ConvertFeatureClass(inFCName, null, null, outFCName, null, outFields, "", 100, 0);

}

catch

{

return 0;

}

return 1;

}

private void btnExportToShapefile2_Click(object sender, EventArgs e)

{

string sDBName = "TEST";

string SdeConnFilePath = @"E:\temp\DBConnettion\ConnectionTo" + sDBName + ".sde";

string destiShpPath = @"E:\temp\SHP";

//获取需要转换的要素类

IWorkspace psdeWorkspace = db.OpenSdeWorkspace(sDBName, SdeConnFilePath);

IFeatureWorkspace pFeaWs = psdeWorkspace as IFeatureWorkspace;

IFeatureClass pFeatureClass = pFeaWs.OpenFeatureClass("TEST.dbo.ZD");

//打开目标shapefile文件的路径

IWorkspaceFactory pFact = new ShapefileWorkspaceFactoryClass();

IWorkspace pOutWorkspace = pFact.OpenFromFile(destiShpPath, 0);

if (ExportToShapefile(pFeatureClass, pOutWorkspace) == 1)

{

MessageBox.Show("数据转换成功!");

}

else

{

MessageBox.Show("数据转换失败!");

}

}

方法二:使用GP服务调用ESRI.ArcGIS.ConversionTools.FeatureClassToShapefile工具

private void btnSdeToShp_Click(object sender, EventArgs e)

{

string sDBName = "TEST";

string SdeConnFilePath = @"E:\temp\DBConnettion\ConnectionTo" + sDBName + ".sde";

string destiShpPath = @"E:\temp\SHP";

IWorkspace psdeWorkspace = db.OpenSdeWorkspace(sDBName, SdeConnFilePath);

IFeatureWorkspace pFeaWs = psdeWorkspace as IFeatureWorkspace;

IFeatureClass pFeatureClass = pFeaWs.OpenFeatureClass("TEST.dbo.ZD");

Geoprocessor gp = new Geoprocessor();

gp.OverwriteOutput = true;

ESRI.ArcGIS.ConversionTools.FeatureClassToShapefile covertToshp = new ESRI.ArcGIS.ConversionTools.FeatureClassToShapefile();

covertToshp.Input_Features = pFeatureClass;

covertToshp.Output_Folder = destiShpPath;

try

{

gp.Execute(covertToshp, null);

}

catch (Exception ex)

{

string str = "";

for (int i = 0; i < gp.MessageCount; i++)

{

str += gp.GetMessage(i);

str += "\n";

}

MessageBox.Show(str);

}

MessageBox.Show("转换成功!");

}

c#+AE将要素类导出为shapefile文件(两种方法)相关推荐

  1. ios录音文件路径_导出iPhone6录音文件两种方法可搞定!-手机录音在哪个文件夹...

    iPhone6录音如何导出?以下华子上网就为大家带来iPhone6录音两种导出方法,详细方法如下: 方法一.借助蓝牙.短信或者邮箱导出 1.打开iPhone6的语音备忘录,然后点击我们此前已经存储的录 ...

  2. vue 实现导出excel或文件两种方法

    第一种是后端返回二进制流,通过new Blob将二进制流转成Url,记得加上responseType: 'blob'!!! this.$api.请求接口(params).then((res) => ...

  3. AE 将地图导出为图片的两种方法

    在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或Layout中的图象转出有两种方法,一种为通过IActiveView的OutPut函数,另外一种是通过IExpor ...

  4. Matlab导出eps图片的两种方法

    0.引言 在论文撰写的过程中,期刊往往对图片的格式有所要求,分辨率为600dpi的eps图片一种常见的要求.科研人员常用的Matab提供了多种导出eps的方法,本人目前使用了两种方法导出eps,在使用 ...

  5. ArcGIS Engine开发系列:将地图导出为图片的两种方法

    转自:http://blog.sina.com.cn/s/blog_4c5f70df0100a0ti.html 在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或L ...

  6. 记账一段时间后,导出保存账目的两种方法

    怎么记账,收入.支出的账目可以在电脑上记录吗?记录一段时间后,怎么保存账目呢?今天小编给大家分享一个新的记账技巧, 下面一起来试试. 需要哪些工具? 一台电脑 怎么快速记账? 运行[晨曦记账本],主界 ...

  7. 在DWR中实现直接获取一个JAVA类的返回值的两种方法

    第一种实现(来源网上转贴): js 代码 function Test() { var _data = ""; this.getString = function() { //设置成 ...

  8. 向基类构造函数传递参数的(两种方法)

    另外我们在使用第二种方式的时候要注意: 1.如果没有定义派生类的构造函数,那么将默认执行基类的构造函数. 2.如果派生类要向基类传递参数,那么必须在派生类里定义一个构造函数,该函数只起到向基类传递参数 ...

  9. arcmap shp导出cad无反应_CAD与GIS互转的两种方法

    2019年自然资源部18号文的颁布预示着国土空间规划时代的到来,国土空间规划融合了城乡规划.土地利用规划.主体功能区划等空间规划,因此,国土空间规划的编制需要原城乡规划.原土地利用规划等多专业人员的参 ...

最新文章

  1. 深入理解malloc和free
  2. Almost Regular Bracket Sequence
  3. log4j配置文件中使用变量
  4. AutoRest - 具有 C# 和 Razor 模板的 Swagger 规范代码生成器。
  5. C语言和C+的区别是什么?8个点通俗易懂的告诉你
  6. python sqlite
  7. 可以作为html5页面开发工具的有,HTML5开发工具有哪些
  8. python3 列表取交集_一刻钟学会 Python 3!Python不难学啊!
  9. 深入浅出设计模式---6、装饰者模式
  10. 非线性系统线性化过程
  11. 马云单挑“叶问”吊打“战狼”,网友:原来天下武功,唯富不破~是贫穷限制了我的想象力
  12. 【VHDL】半减器和全减器的设计
  13. 010editor打开文件中文乱码解决
  14. [渝粤教育] 西北农林科技大学 土壤学 参考 资料
  15. [js]身份证号码验证
  16. Python程序员培训计划
  17. 图像处理保研面试_北航信息与通信工程方向保研面试题集
  18. 电磁散射特性与SAR影像之间的关联,典型地物的散射特性
  19. Ubuntu 18.04 LTS 桌面版 WPS 安装字体
  20. 论文解读:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

热门文章

  1. 史上最全最强大VIM操作
  2. 020渐变工具和油漆桶工具
  3. Linux里面根据端口杀进程,Linux 查看端口占用并杀掉进程
  4. not enough information…
  5. 【SIMULINK】SIMULINK仿真基础
  6. 大牛对ACM入门菜鸟的一些话
  7. 【判断直线相对位置关系】 POJ 1269
  8. python 消息队列 go_gmq: gmq是基于redis提供的特性,使用go语言开发的一个简单易用的消息队列;支持延迟任务,异步任务,超时任务,优先级任务...
  9. 2023最新西瓜小清新UI币圈完美源码版+对接支付/免公众号
  10. 扫地机器人作文列数字举例子_扫地机器人的作文