zoukankan      html  css  js  c++  java
  • 基于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点以后哦!


  • 相关阅读:
    MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用
    MySQL 标量子查询
    MySQL 子查询(subquery)语法与用法实例
    如何上传本地音乐获取MP3外链(欢迎分享和转载)
    RabbitMQ与Kafka的区别及其简单原理实现
    MySQL中varchar和char的区别
    MySQL降低insert, update, delete的优先级来优化性能
    Eclipse代码自动提示
    Java生成XML文件
    Java读取XML文件
  • 原文地址:https://www.cnblogs.com/brucewoo/p/2262501.html
Copyright © 2011-2022 走看看