`
dato0123
  • 浏览: 915261 次
文章分类
社区版块
存档分类
最新评论

基于ArcGIS10.0和Oracle10g的空间数据管理平台九(C#开发)-空间数据导入RDBMS上-Shape格式

 
阅读更多

先打一个广告:我的独立博客网址是:http://wuyouqiang.sinaapp.com/

我的新浪微博:http://weibo.com/freshairbrucewoo

欢迎大家相互交流,共同提高技术。

这一篇博文终于要真正接触操作空间数据了,今天要完成讲解的功能就是导入Shape格式和MDB的空间数据格式到基于ArcSDE空间数据库插件的Oracle10g数据库中。这里面涉及到的功能和操作非常的多,我准备用两篇文章来介绍,这一篇介绍导入前的准备工作和Shape格式的导入。对于空间数据和ArcGIS没有基础知识的可以先了解和学习一下这方面的知识,在我这个项目系列博文中也有一些这方面的基础知识介绍,可以看看!下面开始具体介绍这个过程。

1.选择导入的格式

当然这里只支持两种格式(Shape和MDB),当然可以支持更多的空间数据格式,我在一篇博文专门介绍了八种数据格式的空间数据。为什么需要各种空间数据格式的导入呢?因为空间数据的来源多种多样,具体来源可以到google搜索。为了统一管理各种格式或各种来源的空间数据格式,也为了从集中的空间数据中发现更大的商业信息,所以必须找一种统一的格式来管理,我这个项目当然就是采用的基于空间数据库插件的Oracle10g,采用这种方式主要是想借用RDBMS的强大功能。

实现选择格式的思路相当的简单,就是用一个界面采用单选按钮来选择,具体实现选择的功能如下:

从代码可以看出我们可以通过选择会进入下一个具体导入的界面,下一个界面的功能就是很复杂了。主要复杂的功能是对于需要导入的空间数据格式的检查,包括完整性检查、与数据库中已有表结构的数据结构是否一一对应或者能够兼容----如字段个数、字段类型、字段长度等。

2.Shape空间数据格式的导入

2.1 变量定义与初始化(在构造函数中初始化,也可以在对话框的Load函数中),见如下代码:

2.2 回到上一步:选择导入格式界面

2.3 使能相应按钮功能的复选按钮功能

2.4 转换导入Shape文件数据到SDE数据库中

上面的代码比较复杂,其中涉及到一个功能就是是否选择一些字段追加到以后的数据库表中,如果不是就全部导入,否则就是执行部分导入功能,全部导入功能是在前面介绍的空间数据操作类((1)MapOperation.AddFeatureClassToSDE(pSourceWS, pFW as IWorkspace, pFC.AliasName, strTableName);追加功能。(2)MapOperation.ConvertFeatureClass(pSourceWS as IWorkspace, pFW as IWorkspace, pFC.AliasName, strTableName, sc_id);新建一个表导入)介绍实现的,就不在具体介绍了,下面介绍部分追求字段功能,如下:

2.5 导入要素类到某一个具体的工作空间

2.6 添加一个Shape文件到需要导入的空间列表中(包括具体的信息,以供查看和选择):

2.7 和上一个功能类型,不过这个是添加一个目录,即这目录下的所有Shape文件都会被添加到控件列表中。

2.8从显示Shape文件信息的控件列表中删除一个Shape文件的信息,就不需要导入的Shape文件可以先删除,免得影响视线。

2.9完成导入Shape文件的按钮功能

真正的导入函数是前面已经介绍过的ConvertShpToSDE函数。
2.10 把控件中的Shape文件信息保存起来(配置文件)以便下一次直接导入这些文件。

2.11读取配置文件的文件列表加载到控件中

2.12 选择空间参考系(空间数据都有的)

2.13选择上载字段(没有选择的将不会导入到数据库中)

2.14检查导入字段是否满足要求,不满足就提示哪些不满足,满足以后才能执行导入功能。

2.15根据已有的Shape文件,打开检查字段界面,选中一个具体的Shape文件就检查一个Shape文件,通过的就在控件中标示出来。

3.总结

空间数据的转换是比较复杂和繁琐的功能,需要考虑的方面非常多,只有细心的一点一滴的做好每一步才能出色的完成这些功能,尤其是数据格式的检查是最复杂的,必须一个一个字段去对比。

今天到此为止!




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics