基于ArcGIS10.0和Oracle10g的空间数据管理平台六(C#开发)-空间数据操作类
本系统的一个重点功能就是管理空间数据,所以很多空间数据的操作,而且这些操作可能随时都可能用到,所以单独封装为一个独立的空间数据操作类(地图操作类)。封装的函数都是一些最基本的操作功能,具体实现基于ArcGIS平台的空间数据管理还需要很多复杂的功能和逻辑,后面介绍空间数据管理和编辑的时候会详细介绍。
1.首先我们需要介绍的是连接空间数据库的代码函数,具体实现如下:
上面这个函数是采用SDE连接方式,也可以采用直接连接的方式,下面一个函数通过一个if分支语句来判断可以采用SDE也可以采用直接连接的方式实现,具体请看代码及详细的注释:
代码注释里面提到的工作空间就相当于一个数据库,里面包含了各种可以操作的图层(相当于数据库中的表)。
2.在一个指定的工作空间中查询一个要素类
然后利用这个函数实现了另外一个函数:通过要素类名和数据集名在指定的工作空间中寻找要素类
3.在数据集中查找要素类,一个数据集可能包含多个要素类,数据集就是把一些具有共同特征(共同的数据结构类型,空间参考相同等)的数据(要素类)划分成一个一个的集合。
4.将一个要素类从一个工作空间转移到另外一个工作空间:例如文件系统目录(Shape格式文件组成)、mdb或其他格式,文件系统目录下的所有Shape文件(一个等同于表结构的数据文件,内容等同于表里面的数据)构成一个工作空间。
5.将mdb或Shape文件中要素类转换追加到sde数据库已有的要素类中,追加的mdb和Shape格式必须同SDE(空间数据库插件)数据库中表结构的数据格式相同
函数通过各自的工作空间和要素类名称等到具体需要转换的要素类(包括源要素类:mdb或shape格式中的表结构和目标要素类:SDE中的表结构),然后调用mdb2fc完成具体的转换工作,实现代码如下:
上面根据源要素类的每一个字段的每一个值依次遍历并且插入SDE的目的要素类(表)中。
6.在图层中搜索要素
7.从选择集中创建要素集
8.得到一个要素类和数据集的空间参考系
9.改变要素类的空间参考
10.根据各种信息创建要素类
11.导入一个要素类到目标工作空间中
12.编辑空间参照和设置IFeatureDataset空间参照
这里实现所有的函数都是在类MapOperation中,要看懂上面的所有代码必须要有一些ArcObejct编程的基础知识,当然还包括我前一篇博文介绍的有关于ArcGIS的相关知识,为了给大家提供一些ArcObject的编程知识,特别是用C#讲解的,我上传一本电子书,这本书我觉得很不错,讲到了很多关于ArcGIS二次开发的各个方面。电子书的下载地址:
http://download.csdn.net/detail/wanweiaiaqiang/3824454;或在下载页搜索:ArcGIS Engine+C#实例开发教程。
凌晨1:50,睡觉了。昨天晚上我们整个项目组在公司加班到晚上10点以后哦!