gis数据格式转换(数据导入)ConvertFeaCls
2016-04-15 10:48
337 查看
本文主要对数据导入等里 常用的不同格式数据创建、转换等 进行代码示例。主要用到IFeatureDataConverter.ConvertFeatureClass方法。
代码如下,难度不大,只是个技巧问题:
函数:
调用:
代码如下,难度不大,只是个技巧问题:
函数:
private void ConvertFeaCls(IWorkspace workspaceSource, IWorkspace workspaceTar, stringsSorceFeaClsName, string sTarFeaClsName, string sFeaDTName) { IFeatureClass feaCls = (workspaceSource asIFeatureWorkspace).OpenFeatureClass(sSorceFeaClsName); String shapeFieldName = feaCls.ShapeFieldName; int shapeFieldIndex = feaCls.FindField(shapeFieldName); IField shapeField = feaCls.Fields.get_Field(shapeFieldIndex); IGeometryDef geometryDef = shapeField.GeometryDef; //create source workspace name IDataset sourceWorkspaceDataset = (IDataset)workspaceSource; IWorkspaceName sourceWorkspaceName = (IWorkspaceName)sourceWorkspaceDataset.FullName; //create source dataset name IFeatureClassName sourceFeatureClassName = new FeatureClassNameClass(); IDatasetName sourceDatasetName = (IDatasetName)sourceFeatureClassName; sourceDatasetName.WorkspaceName = sourceWorkspaceName; sourceDatasetName.Name = sSorceFeaClsName; //create target workspace name IDataset tarWorkspaceDataset = (IDataset)workspaceTar; IWorkspaceName tarWorkspaceName = (IWorkspaceName)tarWorkspaceDataset.FullName; //create target dataset name IFeatureClassName tarFeatureClassName = new FeatureClassNameClass(); IDatasetName tarDatasetName = (IDatasetName)tarFeatureClassName; tarDatasetName.WorkspaceName = tarWorkspaceName; tarDatasetName.Name = sTarFeaClsName; IFeatureDatasetName tarFeatureDatasetName = new FeatureDatasetNameClass(); (tarFeatureDatasetName as IDatasetName).WorkspaceName = tarWorkspaceName; (tarFeatureDatasetName as IDatasetName).Name = sFeaDTName; if (string.IsNullOrEmpty(sFeaDTName)) { tarFeatureDatasetName = null; } IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass(); featureDataConverter.ConvertFeatureClass(sourceFeatureClassName, null, tarFeatureDatasetName, tarFeatureClassName, geometryDef, feaCls.Fields, "", 1000, 0); // Check for errors. }
调用:
IWorkspaceFactory2 workspaceFactory = new ShapefileWorkspaceFactoryClass() asIWorkspaceFactory2; IWorkspace workspace = workspaceFactory.OpenFromFile(@"E:\jhl", 0); IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace; IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(Functions.g_ROAD); IWorkspace workspace2 = workspaceFactory.OpenFromFile(@"E:\", 0); DeleteShapeFileIFExist(@"E:\", "test6"); ConvertFeaCls(workspace, workspace2, Functions.g_ROAD, "test6",string.Empty);
相关文章推荐
- Fedora 8.0下安装Perl过程
- NodeJS、NPM安装配置步骤(windows版本)
- java框架整合Springmvc+mybatis+shiro+bootstrap
- jQuery冒泡事件阻止
- jQuery ztree 下载
- maven大型互联网企业架构 SpringMVC Mybatis Shiro Bootstrap
- 一探前端开发中的JS调试技巧
- jquery.table.rowspan.js 表格自动合并单元格插件
- 因浏览器而异的空白节点(js清除空白节点)
- js中confirm()函数的用法
- 使用fetch轻松解决JS跨域请求问题——无需CORS,jsonp
- AngularJs学习——何时应该使用Directive、Controller、Service?
- html 等页面防止中文出现乱码的终极解决方案
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
- nodejs利用nodemailer发送邮件
- 说说JSON和JSONP,也许你会豁然开朗
- jquery操作数组
- JavaScript效果备忘录之输入后显示提示
- jQuery中.bind() .live() .delegate() .on()的区别
- jQuery基于json与cookie实现购物车的方法