c#+AE将要素类导出为shapefile文件(两种方法)
方法一:使用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文件(两种方法)相关推荐
- ios录音文件路径_导出iPhone6录音文件两种方法可搞定!-手机录音在哪个文件夹...
iPhone6录音如何导出?以下华子上网就为大家带来iPhone6录音两种导出方法,详细方法如下: 方法一.借助蓝牙.短信或者邮箱导出 1.打开iPhone6的语音备忘录,然后点击我们此前已经存储的录 ...
- vue 实现导出excel或文件两种方法
第一种是后端返回二进制流,通过new Blob将二进制流转成Url,记得加上responseType: 'blob'!!! this.$api.请求接口(params).then((res) => ...
- AE 将地图导出为图片的两种方法
在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或Layout中的图象转出有两种方法,一种为通过IActiveView的OutPut函数,另外一种是通过IExpor ...
- Matlab导出eps图片的两种方法
0.引言 在论文撰写的过程中,期刊往往对图片的格式有所要求,分辨率为600dpi的eps图片一种常见的要求.科研人员常用的Matab提供了多种导出eps的方法,本人目前使用了两种方法导出eps,在使用 ...
- ArcGIS Engine开发系列:将地图导出为图片的两种方法
转自:http://blog.sina.com.cn/s/blog_4c5f70df0100a0ti.html 在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或L ...
- 记账一段时间后,导出保存账目的两种方法
怎么记账,收入.支出的账目可以在电脑上记录吗?记录一段时间后,怎么保存账目呢?今天小编给大家分享一个新的记账技巧, 下面一起来试试. 需要哪些工具? 一台电脑 怎么快速记账? 运行[晨曦记账本],主界 ...
- 在DWR中实现直接获取一个JAVA类的返回值的两种方法
第一种实现(来源网上转贴): js 代码 function Test() { var _data = ""; this.getString = function() { //设置成 ...
- 向基类构造函数传递参数的(两种方法)
另外我们在使用第二种方式的时候要注意: 1.如果没有定义派生类的构造函数,那么将默认执行基类的构造函数. 2.如果派生类要向基类传递参数,那么必须在派生类里定义一个构造函数,该函数只起到向基类传递参数 ...
- arcmap shp导出cad无反应_CAD与GIS互转的两种方法
2019年自然资源部18号文的颁布预示着国土空间规划时代的到来,国土空间规划融合了城乡规划.土地利用规划.主体功能区划等空间规划,因此,国土空间规划的编制需要原城乡规划.原土地利用规划等多专业人员的参 ...
最新文章
- 深入理解malloc和free
- Almost Regular Bracket Sequence
- log4j配置文件中使用变量
- AutoRest - 具有 C# 和 Razor 模板的 Swagger 规范代码生成器。
- C语言和C+的区别是什么?8个点通俗易懂的告诉你
- python sqlite
- 可以作为html5页面开发工具的有,HTML5开发工具有哪些
- python3 列表取交集_一刻钟学会 Python 3!Python不难学啊!
- 深入浅出设计模式---6、装饰者模式
- 非线性系统线性化过程
- 马云单挑“叶问”吊打“战狼”,网友:原来天下武功,唯富不破~是贫穷限制了我的想象力
- 【VHDL】半减器和全减器的设计
- 010editor打开文件中文乱码解决
- [渝粤教育] 西北农林科技大学 土壤学 参考 资料
- [js]身份证号码验证
- Python程序员培训计划
- 图像处理保研面试_北航信息与通信工程方向保研面试题集
- 电磁散射特性与SAR影像之间的关联,典型地物的散射特性
- Ubuntu 18.04 LTS 桌面版 WPS 安装字体
- 论文解读:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference
热门文章
- 史上最全最强大VIM操作
- 020渐变工具和油漆桶工具
- Linux里面根据端口杀进程,Linux 查看端口占用并杀掉进程
- not enough information…
- 【SIMULINK】SIMULINK仿真基础
- 大牛对ACM入门菜鸟的一些话
- 【判断直线相对位置关系】 POJ 1269
- python 消息队列 go_gmq: gmq是基于redis提供的特性,使用go语言开发的一个简单易用的消息队列;支持延迟任务,异步任务,超时任务,优先级任务...
- 2023最新西瓜小清新UI币圈完美源码版+对接支付/免公众号
- 扫地机器人作文列数字举例子_扫地机器人的作文