ArcEngine实现MDB转GDB
ArcEngine实现MDB格式数据转GDB格式有多种方式,可以创建GDB数据后,读取MDB,利用gp工具中featureClassToFeatureClass的逐个图层进行复制,但这种方式对于图层较多的数据来讲,转换速度较慢,而且实践后发现制图表达信息会丢失。经研究,发现gp工具中的copy工具可以很方便的实现数据类型转换。代码如下:
// mdb转gdbpublic void ConvertMDBToGDB(string mdbPath, string gdbPath){IWorkspaceFactory sourceWsF = new AccessWorkspaceFactoryClass();IWorkspace sourceWs = sourceWsF.OpenFromFile(mdbPath, 0);IWorkspaceFactory targetWsF = new FileGDBWorkspaceFactoryClass();IWorkspaceName workspaceName = targetWsF.Create(Path.GetDirectoryName(gdbPath), Path.GetFileName(gdbPath), null, 0);Geoprocessor geoprocessor = new Geoprocessor();geoprocessor.OverwriteOutput = true;var sourceFcs = GeoHelper.GetDatasets(sourceWs).Distinct().ToList();foreach (var fn in sourceFcs){ESRI.ArcGIS.DataManagementTools.Copy copyTool = new ESRI.ArcGIS.DataManagementTools.Copy();copyTool.in_data = string.Format("{0}\\{1}", mdbPath, fn); //两项参数均为“路径/数据集名”copyTool.out_data = string.Format("{0}\\{1}", gdbPath, fn);try{geoprocessor.Execute(copyTool, null);Console.WriteLine("数据集 {0} 复制成功!", fn);}catch (Exception ex){Console.WriteLine("{0}", ex.Message);for (int k = 0; k < geoprocessor.MessageCount; k++)Console.WriteLine("{0}", geoprocessor.GetMessage(k));}}}
//获取所有要素图层名public static List<string> GetDatasets(IWorkspace ws, bool isAddSetName = false){var lns = new List<string>();var datasets = ws.Datasets[esriDatasetType.esriDTAny];IDataset dataset;while ((dataset = datasets.Next()) != null){lns.Add(dataset.Name);}return lns;}
类似的,GDB转MDB也可以参考上述方法。
ArcEngine实现MDB转GDB相关推荐
- arcengine shp数据导入gdb中
GDB中不能已经存在要素类名称,否则报错 /// <summary> /// shp导入数据GDB /// </summary> ...
- ArcEngine代码 mdb操作以及存图片
QQ交流群:607330463 GIS开发技术最强交流群 未经允许 禁止转载 可以参考 主数据库操作变量 获得数据库数据 更新数据库数据 保存图片到表中 using System; using ...
- 64位FME Server 与32位FME Desktop协同处理MDB格式数据
作者:ZJ 在FME所支持的数据格式中,部分数据格式受限于软件位数,例如常见的GIS数据格式包含SHP(Esri Shapefile).GDB(File Geodatabase).MDB(Person ...
- poi 合并单元格_POI数据获取脚本分享
(像这种东西才是我这个有独立探索精神的技术流博主的核心竞争力啊) -1st- 简介 POI(Pointof Interest,兴趣点)就是电子地图上的各种设施点位等.可以用来做很多事 ...
- ArcGIS桌面基本操作 和 ArcSDE数据库基本概念
ArcGIS桌面基本操作 和 ArcSDE数据库 一 ArcGIS桌面基本操作 内容包括:地图文档操作:图层属性设置:数据加载:地图要素选择:坐标转换:图层符号化:数据库创建:图层标注:数据表管理:图 ...
- ArcSDE数据库、文件地理数据库和个人地理数据库的区别
Geodatabase地理数据库分为: Personal Geodastabase个人地理数据库, File Geodatabase文件地理数据库, ArcSDE Geodatabase SDE地理数 ...
- arcgis栅格邻域统计_ArcGIS 从基础到实战书正式出版,易智瑞技术总裁沙志友沙总推荐并亲自写序...
<ArcGIS 从基础到实战>书正式出版,易智瑞技术总裁沙志友沙总推荐并亲自写序,京东地址 https://item.jd.com/10025512034581.html 第一章 ArcG ...
- Node.js 应用故障排查手册 —— 大纲与常规问题指标简介
楔子 你是否想要尝试进行 Node.js 应用开发但是又总听人说它不安全.稳定性差,想在公司推广扩张大前端的能力范畴和影响又说服不了技术领导. JavaScript 发展到今天,早已脱离原本浏览器的战 ...
- GIS和RS里面的一些小问题
1.shp文件没有自动更新面积和周长怎么办? 把shp转成Personal Geodatabase下的要素类,从而更新其面积和周长. 2.不同的参考系统的意义? 数据框的参考系统:相当于一个空间,各个 ...
最新文章
- Android实例-为程序创建快捷方式(未测试)
- android .9图制作
- linux文件统计命令,linux文件统计命令和目录统计命令
- 做一个可以和时空分类的神经网络
- 缓存级别与缓存更新问题
- html显示假的图片路径,实现自己网站的图片假水印功能
- 数据结构之动态规划问题
- days to_days_Java2Days 2012:Java EE
- lisp提取长方形坐标_用 Python 对图片主体轮廓进行提取、颜色标记、并计算区域面积...
- string 和 stringbuilder 的区别
- stft isar成像 matlab,基于时频分析的ISAR成像
- 清空select下拉框的方法
- tcp三次握手后被马上rst_TCP为什么需要三次握手?
- java 单词倒序_【Java】单词倒序输出
- 关于NuDaqPci 数据采集
- 学习笔记:《数字媒体技术概论》-5/10 计算机图形与动画技术-中国大学慕课公开课
- mysql relay_log删除_mysql 删除 relay log 方法
- C++ windows下判断鼠标点击及获取像素点
- 用while语句显示1~10的平方。
- Java后端解密微信小程序手机号数据