搜档网
当前位置:搜档网 › AO+OMD解读

AO+OMD解读

AO+OMD解读
AO+OMD解读

第28卷第4期2005年8月

测绘与空间地理信息

GEOMA TICS &SPA T I AL I N FORMA TI ON TECHNOLOGY

Vol .28,No .4Aug .,2005

收稿日期:2004-12-20

作者简介:邹平(1978-),男,四川自贡人,华东师范大学硕士生,研究方向为地理信息系统开发和导航地图数据库设计。

通讯作者:吴健平(1962-),男,浙江宁波人,1996年华东师范大学获博士学位,现为华东师范大学地理信息科学教育部重点实验室

副主任,教授,博士生导师,主要研究方向为GIS 开发,城市空间信息标准和空间信息栅格。

AO O MD 解读

平,吴健平,张

竞,姜

馨,陈

(华东师范大学城市与环境遥感及数字技术教育部重点实验室,上海200062)

摘要:随着GIS 技术的发展,用基于COM 标准的A rcObject (AO )进行GIS 开发成为一种有效的途径。对AO 编

程、开发GI S,一个重要的关键点在于开发者具有读懂AO Object Model D iagram s (OMD )的能力。本文从如下3个角度:牢记OMD 图例、标记,深刻领会OMD 内蕴的地学之道和熟记OMD 层次结构,来帮助GI S 开发人员阅读、理解AO OMD 。同时对OMD 中蕴藏的GI S 基本线进行了图解。关键词:AO ;OMD ;UML;GIS 基本线中图分类号:P208 文献标识码:A 文章编号:1672-5867(2005)04-0040-04

Underst andi n g AO OMD

Z OU Ping,WU J ian 2p ing,Z HANG J ing,J I A NG Xin,CHEN J ing

(Key Lab of U rban Envir on ment Remote Sensing and D igital Technol ogy,underM inistry of Educati on and

East China Nor mal University,Shanghai 200062,China )

Abstract:W ith the devel opment of GI S,p r oducti on of GI S p r oducts with A rc Objects (AO )based on COM has become a high -pow 2ered method .One of the keys t o coding with AO is the capability of understanding AO OMD (ObjectModel D iagra m ).This paper in 2tr oduces one guide t o devel opers .The guide hel p s the devel opers understand AO OMD fr om the f oll owing three points:concentrating on the sy mbols of OMD,focusing on the theory of Geography contained in the OMD deep ly,and keep ing in m ind the inheritance of OMD.I n the sa me ti m e the f oundati on clue of GI S contained in OMD is clearly diagra mmatized .Key words:AO;OMD;UML;f oundati on clue of GI S

0 引 言

随着GI S 技术和计算机技术的发展,COMGI S 正在成为GI S 开发的主流方向。一般的GI S 开发人员没有必要,也不可能去从底层起开发大而全的GI S,更多的是应该站在前人的肩上,在已有的基础上专注于自己需要实现的功能

[1]

从A rc V ie w3.X 到A rcGI S 9,ESR I 公司引领着GI S 的发展方向。A rcGI S 是ES R I 公司推出的一个软件系列,它全面整合了数据库、软件工程、人工智能、网络技术及其他方面的I T 主流技术,是一个强大的、统一的、可伸缩的系统。AO 是A rcGI S 的基石,是ESR I 公司开发的面向对象的地理数据模型和高度集成的软件组件库,是一套完全符合COM 标准的大型软件架构

[2]

对AO 编程、开发GI S,一个重要的关键点在于开发者具有读懂AO OMD (对象模型图)的能力

[3]

但是,在实践开发过程中,由于OMD 本身所具有的特殊的复杂性,使得开发人员一时难以读懂、理解OMD,更不用说熟练运用,从而影响到GI S 系统的成功开发。

1

理解、阅读OMD 面临的3个方面实际问题

1.1

OMD 是用UML 表达的,理解、读懂OMD 需要UML 相关知识。

A rcGI S 是ESR I 公司整合当前的计算机技术和GI S

技术的巨大成果。AO OMD 是用当今世界上面向对象系统开发领域中最重要的建模工具UML 语言来表达的。这样使得其符合工业标准,但同时也给GI S 开发人员理解

OMD 增加了一层新的障碍:理解、读懂OMD 需要UML 相

关知识。

1.2

OMD 数量多,在AO 开发者工具包中有20个以上

的对象模型图

就其本质上说,或者说从概念上讲,只有一种AO

OMD 。所有的AO 类都定义在一个类库中(esri .olb ),而

且每一个AO 类都与其他的AO 相互联系。但是,为了方

便,ESR I 公司在组织AO 各个类时,用了多个OMD 。这些OMD 分别表达了AO 类的逻辑子集。例如:如果需要进行3D 分析,就可以参考OMD 中的A rcGI S 3D Analyst 。在AO 开发者工具包中有20个以上的对象模型图。

这些图内部都是按对象的逻辑关系进行有序的组织,如layer 、dis p lay 、sy mbol 等。在A rcGI S 的安装目录下(3:\arcgis\arcexe9\A rc Objects Devel oper Kit\Object Mod 2

el D iagra m s )可以找到这些OMD [3]

1.3

OMD 本身具有的内在逻辑联系错综复杂。AO 中的各个类是在地学领域中对现实世界的一种

模拟表达。对现实世界建模是一项异常复杂的工程。OMD 是这项复杂工程的结果。OMD 的复杂程度是可想而知的。

2 熟练运用OMD 进行G I S 开发的3点经

验总结

要解决用AO 进行开发过程中面临的实际问题,从上面的分析我们知道需要解决好上述3个方面实际问题。我们在上海市科委重大专项———数字城市空间信息系统

应用示范项目研究开发中,利用AO 组件开发了多个功能模块。在这一研究过程中,针对上述3个方面的困难,我们总结、得出了运用OMD 进行GI S 开发的3点经验。2.1

牢记OMD 图例、标记。

OMD 好比地图,是编程的指南和向导。在地学中,要想读懂地图,一个先决条件就是要能够理解各种图例、标记的含义。OMD 是用UML 语言表达的。图1给出了UML 中各种表示法所代表的意义。

Δ:Is a type of (继承)。在图1中鸡是鸟的一种,这是特殊和一般的关系或者说父类与子类的关系。在父类中所有的方法和属性子类也就天然具有。在图1中鸟是父,鸡是子。◆: Is composed of (组成关系)。在图1中,鸡的对象模型图由两个翅膀和一些羽毛组成。如果鸡(的对象)销毁了,那么翅膀和羽毛这些对象也就跟着销毁了。

?

:Creates a (产生)。图1中的鸡对象可以用来产生鸡蛋对象。

3 :Multi p licity (多样性)。如果像鸡和羽毛那样有不确定的数量关系(从0到无限)就用3表示。1∶1的关系就用一条直线简单表示,有明确的关系就用具体数字标出如图2所示。———:A ss ociati on (关联)。两个类之间的连线表示一种简

单的关系。

图1

OMD 图例、标记

[3]

F i g .1

OM P legends and annot a ti on s

注意图1中组成和关联这两个关系的区别:鸡和鸡窝相关联,即如果鸡删除了,鸡窝还能独立存在。但在组成关系中,如果鸡删除了,翅膀也就肯定没有了。

2.2

理清OMD 层次结构

利用AO 进行程序设计的又一要务是清楚OMD 层次结构。当我们在用AO 进行系统开发的时候,我们有必要

清楚地理解AO 的对象层次结构关系或者说OMD 层次结构关系。有了清楚的层次结构关系,对我们的如下任务很有帮助:如何获得实现了我们需要的特定功能的对象接口。比如笔者在对吴淞工业区的建筑物进行3维建模时,主要用到AO 中的3D Analyst 模块。图2是其OMD 层次结构略图

:

图2

3D Ana lyst OMD 层次结构略图

F i g .2

S i m ple d i a gram of 3D Ana lyst OMD l ayer structures

1

4第4期邹 平等:AO OMD 解读

Private m _pApp as esri Core .I app licati on

Private m _pDoc as I Sx Docu ment …

Private Sub I Command_OnCreate (By Val Hook A s Object )Set m _pApp =Hook

Set m _pDoc =m _pApp.Docu ment …

End Sub

一旦我们得到应用程序的句柄,我们就可以访问到其中所包含的一切对象。从图2中我们可以看到一系列的层次关系。利用这个层次关系,如果我们需要访问一个“vie wer ’s ca mera ”我们就可以很容易访问到我们需要的Ca mera 对象,进而调用相应的方法去实现我们需要的功能。

2.3

把握OMD 内在的地学之道

熟练运用OMD 帮助进行GI S 开发,关键还在于深刻领会其内在的地学之道。

OMD 的内在逻辑在于其姓地,地学之道是其生命之源。GI S 是在地学理论的指导下建立起来的,就其本质上

说是脱胎于地图的。此外”The key idea t o gras p about GI S s oft w are is that it is ,in fact ,a geographic database manage 2

ment syste m ”[4]

所有的GI S 系统一方面要管理数据,而且是具体空间特性的地理空间数据;另一方面还需要把数据“秀”出来,而且“秀”出来的表现形式还需要符合传统的地图学理论、习惯。而且在具体编程实现时还需要考虑下列问题[5]:

1)程序的哪一部分拥有数据;2)程序的哪一部分负责更新数据;3)如何以多种方式显示数据,这一点在GI S 中尤其重要;4)如何让数据的更改具有一致性;5)如何存储数据;6)数据的表现如何符合地图学的理论、习惯。

OMD 的内在逻辑体现在对上述问题的回答中。如果用一句话来概括就是分与合的完美结合———把地理空间数据的管理和符合地图学原理与习惯的显示方法按面向对象的方法层层分开,又在一适当(图层中)的地方和谐地整合(如图3所示,OMD 内在逻辑略图)

图3

OMD 内在逻辑略图F i g .3

The i n ner log i c d i a gram

在地图中组织了多个图层,图层是在地图上进行地

理显示的一个基本单元。在具体的图层对象中将地理数据管理和符合地图学原理与习惯的显示整合起来了。用原话来说就是“A feature layer is a reference t o a feature

class and has an ass ociated dra wing method (or renderer ).You can choose any string or nu meric attribute of your feature layer and visualize it in a variety ofways ”[4]

。上图中数据和

显示是图层的一体两面。在图层中数据和显示合二为一。在数据中以组成Geo metry 的各个点的空间坐标方式来体现地理空间位置信息。在显示中,以FeatureRenderer 、sy mbol 来实现数据的显示符合地图学理论和习惯。这就是贯穿在AO OMD 的GI S 基本线。其他的各个OMD 都是围绕这条基本线服务的。比如实现完美的地图效果,在地图对象中组织了Element 、MapSurr ound 、Spatial B ook 2mark 等辅助要素。

3应用实例

在上海市科委重大专项———数字城市空间信息系统

应用示范项目之系统集成研究开发过程中,我们利用AO 组件开发了土地利用分析、污染源管理、崇明岛可持续发展、吴淞工业区环境综合整治管理、洋山港区域开发等子

系统,所有的子系统以DLL 形式开发,能够灵活方便地集成在一起或单独使用。我们这里重点介绍吴淞工业区环境综合整治管理中对建筑物3维建模功能模块的实现过程(如图4所示)

图4吴淞工业区建筑物3维建模的应用实例效果:

两面坡屋顶生成

F i g .4

3D m odeli n g appli ed exam ple of W usong

I ndustr i a l Zone:genera ti on of the gable roof

吴淞工业区建筑物3维建模技术路线:吴淞工业区建筑物3维建模是吴淞工业区环境综合整治管理的一个重

2

4 测绘与空间地理信息 2005年

要组成部分。在实现3维建模的过程中,我们采用了如下

技术路线(如图5所示)

图5

吴淞工业区建筑物3维建模技术路线

F i g .5

Bu ild i n g 3D m odeli n g techn i ca l routes i n W usong I ndustr i a l Zone

我们在实践之后再回到图3,不过下面如图6是在图

3的基础上增加了开发定制DLL 实现用户需求的流程图,流程图中的2、3、4、5分别对应图3中的2、3、4、5。从具体

实例到一般抽象,我们就可以更清楚地看到OMD 中的

GI S

基本线。

图6

实例与抽象对照图

F i g .6

Rea l exam ple and abstruct co m par ison

4结束语

AO 是A rcGI S 的基石,是ESR I 公司开发的面向对象

的地理数据模型和高度集成的软件组件库,是一套完全符合COM 标准的大型软件架构。ES R I 运用AO 的对象模型建立A rcGI S,用户可以运用同样的方法对A rcGI S 进

行扩展[6]

。因此,应用AO 开发,只需要熟悉AO OMD 遵循其中蕴藏的GI S 基本线,利用其开放的接口进行编程实现自己需要的功能即可。在理解AO OMD 的基础上,用户可以利用AO 构建一个全新的应用系统,方便地实现系统所需的各项功能。

参考文献:

[1] 崔修涛.插件式GI S 开发研究[D ].上海:华东师范大学,

2003.

[2]尹建忠,何政伟,贺奋琴.基于A rcGI S 的土地资源信息系统

(LR I S )开发研究[J ].新疆石油学院学报,2003,15,(2):76-79.[3]A rc I nf o Consulting and Training Center .I ntr oducti on t o Pr ogra m 2

m ing Arc Objects with VBA [M ].US A:ES R I Press,2002.123-140.[4]M ichael Zeiler,Modeling our world [M ].US A:ESR I Press,

2002.32-35.

[5]侯杰.深入浅出MFC (第二版)[M ].武汉:华中科技大学出

版社,2004,339-340.

[6]M ichaelW altuch,A llan Lafra m boise .Ex pl oring A rc Objects[M ].

US A:ES R I Press,2001.347-353.

[责任编辑:栾丽杰]

3

4第4期邹 平等:AO OMD 解读

相关主题