基于ArcObjects的GIS系统的二次开发_以济源市水土保持决策支持系统为例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于ArcObjects 的GIS 系统的二次开发

———以济源市水土保持决策支持系统为例

陈南祥1,董贵明1,邱 林1,苏万益2,常直福3

(1.华北水利水电学院,郑州450008;

2.济源职业技术学院,河南济源454650;

3.济源市水利局,河南济源454623)

摘要:COM 技术是新一代组件式GIS 发展的主流,文章阐述了COM ,COM GIS 的基本原理,介绍了ArcObjects 的组成结构、开发的关键技术、开发方式,以及Arc GIS Engine 的功能,对使用两种组件式GIS 进行二次开发进行了比较。最后给出了使用ArcObjects 开发的一个实例———济源市水土保持决策支持系统,描述了系统的设计原则,系统的结构设计和系统的功能,并简要说明了系统的主要功能所使用的关键接口。

关 键 词:COM GIS ;ArcObjects ;Arc GIS Engine ;水土保持;模型库;济源市

中图分类号:TP79;S157 文献标识码:A 文章编号:1003Ο2363(2006)03Ο0125Ο04

收稿日期:2005-12-05;修回日期:2006-03-10

基金项目:2002年河南省创新人才基金资助项目

(HNCX2002)

作者简介:陈南祥(1958-),男,江苏张家港市人,教授,硕士,主要从事水文学及水资源专业研究,(E -mail )chennanxiang @

1 前言

地理信息系统(GIS )经过近40年的发展,已逐渐建立起其完整的技术系统和理论体系,并且在相当多的领域里得到应用。GIS 系统在各个领域中的应用效果关键取决于GIS 与该领域的专业模型的结合情况。现有的GIS 软件如Map GIS ,Map Info ,Arc GIS 等等,只是一些通用的GIS 工具软件,内部具有的专业模型相当少,为了实现GIS 工具和专业模型的结合,在现有

GIS 基础上的二次开发是必需的。文章主要探讨应用

基于COM 技术的ArcObjects 进行GIS 系统的二次开发,并简要介绍Arc GIS Engine ,最后给出一个济源市水土保持决策支持系统开发实例。

2 ArcObjects 开发技术

2.1 组件对象模型(COM )

组件对象模型COM (component object model ),是微软公司提出的一种开发和支持程序对象组件的框架,它不仅定义了组件程序之间进行交互的标准,而且也提供了组件程序运行所需要的环境,即COM 本身要实现一个称为COM 库(COM library )的API ,它由一些对象和对象的接口组成。COM 组件、对象接口、关系

见图

1[1]。

图1 COM 组件、COM 对象、COM 接口关系图

Fig.1 The relationship of COM components ,COM objects and COM interface

2.2 ArcObjects 的结构关系及开发方式

2.2.1 ArcObjects 的结构关系。ArcObjects 是Arc GIS

的桌面软件的开发平台,且是完全COM 化的组件式

GIS ,由1000多个组件、几百个具有良好文档说明的接

口、几千个方法所组成[2]。ArcObjects 组件库的所有类可以分成3种[3]:抽象类(abstractClass )、普通类(class )和组件类(coclass ),在这些类之间的关系有继承、生成、组成、关联4种。继承关系是指普通类或者组件类继承抽象类中的接口(继承了接口,也就继承了接口中的方法、属性)。这样,在普通类或者组件类中就可以使用这些接口,继承关系是一种重要的关系,在开发中经常使用;生成关系指一个类可以生成另外的一个类;组成关系是指由一个类或几个类组成;关联关系只是指两个类之间有某些联系,但是这种联系不是一种确定的具体关系,不同的类之间的这种关联关系解释也不太一样。

2.2.2 Arc GIS Engine 。Arc GIS 9除了把空间处理和3D 可视化方面在原有版本上进行了扩展之外,同时推

出了Arc GIS 家族中两个最新的基于ArcObjects 的产

第25卷 第3期2006年 6月地域研究与开发

AREAL RESEARCH AND DEV ELOPMEN T Vol.25 No.3J un.2006

品:Arc GIS Engine和Arc GIS Server,他们将支持包括UNIX和Linux在内的跨平台的解决方案[4]。

Arc GIS Engine基于ArcObjects构建,由一组核心ArcObjects包和一些GIS可视化组件组成[5],是对Ar2 c GIS8.3中ArcObjects的重新封装和集成,使用Ar2 c GIS Engine开发,其核心还是在使用ArcObjects组件库。Arc GIS Engine很好的综合了两种组件式GIS的优点,在掌握了ArcObjects组件库之后,使用Arc GIS Engine开发GIS系统相当便捷、快速。

2.2.3 ArcObjects的开发方式。ArcObjects的开发方式主要有3种:①利用Arc GIS桌面应用程序内置的VBA宏进行客户化;②在ArcObjects组件库基础上进一步封装自己的COM组件[6];③开发独立的EXE应用程序。随着ArcGIS9中ArcGIS Engine的出现,第三种开发方式的使用会有明显的增加,将是以后ArcOb2 jects开发的主流。这种开发方式的优点:开发人员可以从某个组件库中取出所需的某个组件并快速组装到一起,以构造所需的应用程序,从而加快应用程序的开发。

3 开发实例

济源市水土保持决策支持系统的建立是将最新的科技成果运用到水土保持的规划管理中,提高水土保持管理的信息化和自动化水平,为政府及相关部门的管理决策提供有效的支持。

济源市是水利部的全国水土保持示范市,它位于河南省西北部,区内地形复杂,切割强烈,褶皱、断裂相伴而生,形成不同的地形地貌。现有水土流失面积905.6km2,坡耕地11093.33hm2,需要治理和改造。已经初步治理的面积大部分标准还不高,控制水土流失的效能还较低,仍需进一步巩固提高。

系统主要采用Visual Basic6.0+ArcObjects实现,空间数据采用ArcObjects中的G eodatabase进行存储。其他的属性数据采用SQL Server进行存储。在设计时,采用第二种和第三种开发方式相结合,充分利用了Ar2 cObjects的强大的数据显示、分析功能以及ArcObjects的完全的COM化所带来的模块的独立性和重用性。

3.1 系统设计原则

(1)科学性。在系统设计时,严格控制图形数据、表格数据、文字资料的准确性;图形数据要求坐标系统科学合理选择,对地形,土地利用类型,水土流失的现状、分布做到准确描述。

(2)实用性。系统界面友好,使用方便;系统的建立立足于解决水土保持工作中所遇到的问题,包括图形和属性信息的显示、查询、编辑、统计等基本功能,系统具有水土保持模型分析的功能。

(3)开放性。系统可以处理多种图形数据格式,数据的输入、输出标准化,多样化,以便和其它系统进行数据交换;系统的大部分模块采用dll的形式,最大限度的实现系统的灵活性和模块的重用性;系统支持对网络数据库的操作。

3.2 系统结构设计

在结构上,系统由人机交互系统、数据库、模型库、知识库、数据库管理系统、模型库管理系统6部分组成。人机交互系统是决策支持系统与用户进行交互的主要渠道,用户通过人机交互系统使用数据库、模型库、知识库。其中模型库是决策支持系统的核心,通过模型库管理系统管理模型库,模型库管理系统实现了模型的查询、添加、删除和修改等功能,主要提供土壤侵蚀模型、土地资源评价模型、人口预测模型、土地需求模型、层次分析模型以及模糊综合评判模型等。数据库和知识库为模型库提供数据支持,通过数据库管理系统管理数据库和知识库,数据库中主要存储的是社会经济数据、土壤侵蚀数据、土地资源评价数据、土壤侵蚀风险性评价数据、规划投入数据、规划措施数据、经济效益数据,知识库中主要存储专业文献、水土保持设计规程、标准与规范、政策法规、水土保持示范流域资料、实践经验等进行流域水土保持决策所需的文档资料[7],系统结构见图2

图2 济源市水土保持决策支持系统结构图

Fig.2The constrction of w ater

conservancy decision support system of Jiyu an City

在实现上,充分考虑了系统的科学性、实用性和开放性。在科学性和实用性的指导下,系统的整个设计过程都以开放性为出发点,利用ArcOb jects的完全COM化将系统功能做成多个dll文件,即动态链接库文件,在VB中做dll工程的时候,主要继承了ArcObjects中的ICommand,ITool,IhookHelper,Iscene2 HookHelper4个接口,这4个接口起到了主程序和dll 文件之间桥梁的作用,在某个dll的功能的实现上还要使用arcObjects中的多个其他接口。

将系统功能分解在多个dll文件中,使系统有很好的灵活性,实现了系统的模块化,使系统结构清晰;同

6

2

1

・地域研究与开发第25卷

相关文档
最新文档