(地图学与地理信息系统专业论文)arcgis+engine92常用对象模型研究.pdf_第1页
(地图学与地理信息系统专业论文)arcgis+engine92常用对象模型研究.pdf_第2页
(地图学与地理信息系统专业论文)arcgis+engine92常用对象模型研究.pdf_第3页
(地图学与地理信息系统专业论文)arcgis+engine92常用对象模型研究.pdf_第4页
(地图学与地理信息系统专业论文)arcgis+engine92常用对象模型研究.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(地图学与地理信息系统专业论文)arcgis+engine92常用对象模型研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 a r c g i se n g i n e 是e s r i 在a r c g i s8 x 基础上推出的a r c g i s9 家族中的新成员之 一。因其具有跨越a r c g i s 部件的一些新特点,因此,a r c g i se n g i n e 9 2 的对象、 接口和函数成为a r c g i s 二次开发中的研究热点。它的这些特点,为a r c g i s 的开发 提供了一个崭新的环境。 论文介绍了地理信息系统二次开发中的组件、接口、类和对象等问题,并结合 a r c g i se n g i n e 9 2 中提供的对象模型图,对常用及其新增对象模型库和常用对象进 行了较为详细的研究。总体设计思路:首先,针对a r c g i se n g i n e 开发的三个关键部 分进行探讨,介绍了常用控件、工具条和工具、对象模型图等,对g i s 开发中使用 的类、接口和对象模型图等基本概念进行了详细说明:其次,诠释了a r c g i se n g i n e 9 2 的常用对象模型库、常用对象和接口等主要技术,包括g e o m e t r y 库中的p o i n t 、 p o l y l i n e 、p o l y g o n 对象,d i s p l a y 库中的d i s p l a y 、s y m b o l 对象,c a r t o 库中m a p 、 r e n d e r e r 对象,g e o d a t a b a s e 库中的w o r k s p a c e 、c u r o s o r 对象等;最后,在v s 2 0 0 5 环境下,基于c # 语言,调用a r c g i se n g i n e 对象库中对象的属性、方法和接口,介 绍与描述了一些对象模型的使用过程,实现了a r c m a p 的部分功能。 本文的创新之处是紧跟软件工业的发展趋势,对a r c g i se n g i n e 9 2 的应用进行 了有益开发与探索,提高了地理信息系统软件的开发效率,并为地理信息系统软件 的二次开发提供了宝贵的借鉴经验。 关键词:a r c g i se n g i n e 9 2 ;统一建模语言;对象模型库 a b s t r a c t a r c g i se n g i n ei st h en e wm e m b e ro ft h ea r c g i s9f a m i l yl a u n c h e db ye s r lw h i c hi s b a s e do nt h ea r e g i s8 x t h en e wf e a t u r e sa r ee x c e e d i n gt h ea r c g i s sc o m p o n e n t s , t h e r e f o r e ,t h en e wo b j e c t s ,i i 】i t e 概e sa n df u n c t i o n sh a v eb e c o m et h eh o ti s s u eo ft h e s e c o n d a r yd e v e l o p m e n to ft h ea r c g i s t h ec h a r a c t e r i s t i c sp r o v i d eat o t a l l yn e w e n v i r o n m e n tf o rt h ed e v e l o p m e n to f a r c g i s t h ep a p e ri n t r o d u c e st h ec o m p o n e n t s ,i n t e r f a c e s ,c l a s s e sa n do b j e c t si nt h es e c o n d a r y d e v e l o p m e n to ft h eg i s ,w h i c hd oa l o to ff u r t h e rr e s e a r c ho nt h ec o l i d o ni l s ea n dn e w a d d e do m dc o m b i n e d 、 ,i mt h eo m dt h a tp r o v i d e db ya r c g i se n g i n e 9 2 t h ew h o l e d e s i g ni d e a :f i r s t l y , t h ep a p e ro p e n su pt h ed i s s e r t a t i o na g a i n s tt h et h r e em a i np a r t so ft h e a r e g i se n g i n e , i n t r o d u c e st h ec o m l l l o nu s e dc o n t r o l s ,t o o l b a r , t o o la n do m d i td o e st h e e x p l a n a t i o no ft h ec l a s s ,i n t e r f a c ea n do m dc o m p r e h e n s i v e l yt h a t u s e di nt h e d e v e l o p m e n to ft h eg i s s e c o n d l y , i ti l l u s t r a t e st h et e c h n o l o g yo ft h eo m d ,c o m m o n o b j e c t sa n di n t e r f a e ei nt h ea r c g i se n g i n e 9 2w h i c hi n c l u d e st h ep o i n t 、p o l y l i n e 、p o l y g o n 喇e c t so f t h eg e o m e t r y ,t h ed i s p l a y 、s y m b o lo b j e c to f t h ed i s p l a y , t h em a p 、r e n d e r e r o b j e c to ft h eo a r t oa n dt h ew o r k s p a c e 、c u r o s o ro b j e c to ft h eg c o d a t a b a s c ;f i n a l l y , u n d e r t h ee i r c u m s t a n c eo fv s 2 0 0 5a n db a s e do nt h ec 撑l a n g u a g e ,t h ep a p e rd e s c r i b e st h e p r o c e s so fu s i n g t h eo b j e c tm o d e lw h i c ha c c o m p l i s h i n gt h ep a r t i a lf u n c t i o n t h ei n n o v a t i o no ft h i sp a p e ri st h a tk e e p i n gu pw i t ht h ed e v e l o p i n gs t e po ft h es o t b , v a r e i td o s et h em e a n i n g f u ld e v e l o pa n de x p l o r ea b o u tt h ea p p l i c a t i o no ft h ea r c g i se n g i n e 9 2 w h i c hp r o v i d e st h ee x p e r i m e n tt ot h es e c o n d a r yd e v e l o p m e n to ft h eg i ss o f t w a r e i t e n h a n c e st h ed e v e l o p i n ge f f i c i e n to ft h eg i ss o f t w a r ea n do f f e r st h ev a l u a b l ee x p e r i e n e e t h t h es e c o n dd e v e l o p m e n to ft h eg i ss o f t w a r e k e yw o r d s :a r c g i se n g i n e 9 2 :u m l ;o m d 学位论文独创性声明 本人承诺:所呈交的学位论文是本人在导师指导下所取得的研究成果。论 文中除特别加以标注和致谢的地方外,不包含他人和其他机构已经撰写或发表 过的研究成果,其他同志的研究成果对本人的启示和所提供的帮助,均已在论 文中做了明确的声明并表示谢意。 学位论文作者签名:裂阳日期:瑚 毒1 学位论文版权的使用授权书 本学位论文作者完全了解辽宁师范大学有关保留、使用学位论文的规定, 及学校有权保留并向国家有关部门或机构送交复印件或磁盘,允许论文被查阅 和借阅。本文授权辽宁师范大学,可以将学位论文的全部或部分内容编入有关 数据库并进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论 文。保密的学位论文在解密后使用本授权书。 学位论文作者签名裂国 指剥雠:毋等 e t 期:沙卯扩、 , a r c g i se n g i n e 9 2 常用对象模型研究 1 1 国内外研究现状 第一章绪论 e s r i 桌面产品的开发先后经历了基于m a p o b j e c t s 开发阶段、基于a r c o b j e c t s 开发阶段一直到今天的基于a r c g i se n g in e 开发阶段。 m a p o b j e c t s 是e s r i 公司提供的一组供应用开发人员使用的制图与g i s 功能组 件,它由一个o l e 控件和一系列可编程o l e 对象组成n 1 。利用m a p o b j e c t s ,开发人 员可以在应用程序中添加制图和g i s 功能。它不是为最终用户而是专门为开发人员 提供的。m a p o b j e c t s 是一个o l e 控件,它可以用于大量开发框架中,因此开发人员 可以在自己熟悉的开发环境中利用m a p o b j e c t s 开发g i s 应用。 a r c o b j e c t s 是a r c g i s 的基础,是e s r i 公司开发的面向对象的地理数据模型和 高度集成的软件组件库,是一套完全符合c o m 标准的大型软件架构,有1 8 0 0 多个组 件、数百个接口和数千个方法盟1 。e s r i 运用a r c o b j e c t s 的对象模型建立a r c g i s ,用 户可以运用同样的方法对a r c g i s 进行扩展。h r c o b j e c t s 提供了a r c g i s 的全部功能, 但是由于它的庞大,整个体系非常复杂。而且,a r c o b j e c t s 不是一个独立的应用产 品,而是依附在桌面应用程序的软件开发包,也就是说它不能脱离a r c g i s 平台。而 a r c g i se n g i n e 以及早期的m a p o b j e c t s 解决了这个问题。 a r c g i se n g i n e 是e s r i 公司的自a r c g i s 9 0 以后推出的一个新产品,该产品使得 a r c o b j e c t s 可以作为独立的产品进行发布和使用。a r c g i se n g i n e 是一个包含完整 类库的嵌入式g i s 软件,它支持多语言( c o m ,j a v a ,n e t 以及c + + ) 和多系统( w i n d o w s 和u n i x ) ,a r c g i se n g i n e 和a r c g i s 其它产品一样都是基于a r c o b j e c t s 基础构建的。 1 2 论文的主要内容及意义 a r c g i se n g i n e 是一组跨平台的嵌入式组件,是组件式技术应用于g i s 领域的最 新产品,它为开发人员提供了一种新的部署策略。a r c g i se n g i n e 与a r c o b j e c t s 是 紧密相连的,是a r c g i s 软件产品的底层组件,由一组核心的a r c o b j e c t s 包组成。 使用a r c g i se n g i n e 可以创建独立的应用程序,所有用它构建的应用都需要 a r c o b j e c t s 运行库。这样程序发布时就不要求用户在机器上必须安装h r c g i s ,而是 通过a r c g i se n g i n er u n t i m e 的软件许可将这些程序分发给最终用户,因此a r c g i s a r c g i se n g i n e 9 2 常用对象模型研究 e n g i n e 为开发节约了大量成本。 a r c g i se n g i n e 开发包包括了支持各类开发任务的资源,提供了c o m ,n e t 和 c + + 的应用程序编程接口。这些编程接口不仅包括了详细的文档、对象模型图和示例, 还包括一系列高层次的组件和用于创建高质量制图用户界面的可视化控件。a r c g i s e n g i n e 虽然只是a r c o b j e c t s 的一个子集,但却能实现a r c o b j e c t s 的大部分功能。 作为嵌入式g i s ,a r c g i se n g i n e 能用来建立应用程序,为用户提供有针对性的g i s 功能,进行g i s 应用开发时彻底脱离了a r c g i s 桌面平台。 a r c g i se n g i n e 具有标准的g i s 框架、成本适宜的配置、开发控制器、跨平台 功能和跨语言开发等特点。 因为a r c g i se n g i n e 9 2 是目前e s r i 桌面产品开发的最新版本,针对它的对象 模型、类库、接口和控件等相关研究成果较少,所以,对a r c g i se n g i n e 对象模型 研究具有一定的先进性和实用性。论文将从以下几个方面进行论述: ( 1 ) 针对a r c g i se n g i n e 开发的三个关键部分展开论述,介绍常用控件、工具 条和工具、对象模型图等,对g i s 开发中使用的类、接口和对象模型图表等基本概 念进行详细说咀为初学者提供一个较好的开发基础,帮助他们更深入的理解类和 接口的使用。 ( 2 ) a r c g i se n g i n e 9 2 中常用对象模型库、常用对象和接口的概述,帮助编程 人员了解对象模型库的组织分类、作用、特点和它们之间的相互关系。 ( 3 ) 在v s 2 0 0 5 环境下,基于c # 语言,调用a r c g i se n g i n e 对象库中对象的属 性、方法和接口,介绍与描述了一些对象模型的使用过程,实现a r c g i s 的部分功能, 这对软件开发人员是一个很好的借鉴与参考。 2 a r c g i se n g i n e 9 2 常用对象模型研究 2 1 控件 第二章a r g g ise n gin 6 开发的三个关键部分 控件是a r c g i s 用户界面的组成部分,可以嵌入到应用程序中使用。a r c g l s e n g i n e 提供了m a p c o n t r o l ( 地图控件) 、p a g e l a y o u t c o n t r o l ( 布局控件) 、 t o c c o n t r o l ( 内容表控件) 、t 0 0 1 b a r c o n t r o l ( 工具条控件) 、s c e n e c o n t r o l 。 i o b e c o n t r o l 和r e a d c o n t r o l 等控件。其中m a p c o n t r o l 控件能提供类似a r c m a p 中的 数据视图的窗口,t o o l b a r c o n t r o l 控件可以加入放大、缩小、漫游等地图操作工具。 三维可视化的控件s c e n e v i e w e rc o n t r o l 则具有显示三维文档、图层数据和对鼠标 操作做出响应的功能。一个地图控件和一个内容表控件可以加在应用中来展示和交 互式运用地图口1 。 2 2 工具条和工具 工具条是g i s 工具的集合,工具在应用界面上用工具条的方式展现。在应用程 序中用它来实现地图和地理信息的交互。工具包括:平移、缩放、点击查询和与地图 交互的各种选择工具。通过调用一套丰富的常规的工具和工具条,开发者可以很容 易的将选择的工具拖放到定制应用中或创建自己定制的工具来实现与地图的交互, 定制应用的过程被大大简化“3 。 2 3 对象库 对象库是可编程a r c g i se n g i n e 组件的集合,包括几何、显示、g e o d a t a b a s e 和 三维分析等二十多个对象库,每个库都包括着不同的功能。 a r c g i se n g i n e 使用的类都包括在e s r i c o r e o l b 对象库中嘲。对象库是描述 a r c m a p 和a r c c a t a l o g 的接口、组件、组件对象类、属性、方法和事件的文件。 3 a r c g i se n g i n e 9 2 常用对象模型研究 第三章对象库与对象模型图的理解 3 。1 抽象类、类和组件对象类 抽象类( a b s t r a c tc l a s s ) 不能实例化,即不能创建新对象,它只能被继承。 不同的类可以继承同一个抽象类,但内部对同一方法的实现可能是不一样的。如用 户可以在类中实现i c o n m a n d 接口,然后生成一个c o m m a n d 对象,或者通过实现 i c o m m a n d 、i t o o l 接口,生成一个t o o l 。 类( c l a s s ) 即可实例化类,它不能够直接创建新对象,但是这种类的对象能够 作为其他对象的属性被创建,或是通过其他类的方法来创建。如f e a t u r e c l a s s 和 f e a t u r e d a t a s e t ,它们不能通过n e w 算符直接实例化,只能通过c o c l a s s 这个组件 对象类所实现的i w o r k s p a c e f a c t o r y 接口里的o p e n 方法来实例化。因为c l a s s 类和 c o c l a s s 类的主要区别就是c o c l a s s 是带构造函数的c l a s s ,因此可以用n e w 算符直 接创建它的对象。例如,a r c g i s - e n g - i n e 中w o r k s p a c e 类是c l a s s 类,不能用n e w 创建。 i w o r k s p a c ep w o r k s p a c e = n e ww o r k s p a c e c l a s s0 ; 执行上述代码时,会出现以下错误:“类型e s r i a r c g i s g e o d a t a b a s e w o r k s p a c e c l a s s 未定义构造函数 。但可以通过w o r k s p a c e f a r c t o r y o p e n f r o m f i l e0 方法来创建: i w o r k s p a c e f a c t o r yp w o r k s p a c e f a c t o r y2n e ww o r k s p a c e f a c t o r y0 ; i w o r k s p a c ep w o r k s p a c e = p w o r k s p a c e f a c t o r y o p e n f r o m f ile ( c o n n e c t i o n s t r i n g , o ) ; 组件对象类( c o c l a s s ) 即可创建类,可以直接被创建或者实例化。 如s d e w o r k s p a c e f a c t o r y ,o u e r y f i l t e r 等类可以通过n e w 算符直接实例化。 3 2 类的类型继承与接口继承 类型继承是指类之间的接口类型的继承,而不是继承其实现。例如,e l e m e n t 类 有l o 个接口,g r a p h i c e l e m e n t 继承于e l e m e n t ,它有1 2 个接口,包括自身的两个 接口和类型继承于e l e m e n t 的1 0 个接口。 4 a r c g i se n g i n e 9 2 常用对象模型研究 接口继承是指子接口可继承父接口的方法和属性,父接口的方法与属性对子接 口同样有效。如i m a p f r a m e 接口和i m a p s u r r o u d f r a m e 接口继承于i f r a m e e l e m e n t 接 口,则父类接口i f r a m e e l e m e n t 所具有的方法和属性对派生类i m a p f r a m e 和 i m a p s u r r o u n d f r a m e 都有效。 接口可以从多个父接口继承,而类可以实现多个接口。 3 3 类和接口的实现 一个类可能实现多个接口,一个接口也可能被多个类所实现,但不同的类对同 一个接口的实现可能是不一样的,这就实现了多态性。如i l a y e r 这个接口被多个接 口实现,其中包括f e a t u r e l a y e r 和r a s t e r l a y e r ,但这两个类实现i l a y e r 接口时内 部实现肯定是不一样的,但在外部对i l a y e r 的操作是一样的。 3 4 接口之间的相互查询 一个类可以实现多个接口,每一个接口可能包括一系列的属性和方法,但有时 候一个接口里可能没有所需的方法和属性,一可能在这个类所实现另一个接口里,这 就涉及到从一个接口转到这个类所实现的另一个接口。对于一个类所实现的一系列 接口,接口之间是可以相互跳转的嘞。 例如,在a r c o b j e c t s 开发中,对一个f e a t u r e 属性进行修改,应把这个f e a t u r e 所在的f e a t u r e c l a s s 工作空间设为可编辑,且编辑完成后要结束编辑。在这个过程 中需要通过f e a t u r e 类的i f e a t u r e 接口来获得这个f e a t u r e c l a s s 类的 i f e a t u r e c l a s s 接口和i w o r k s p a c e 接口晦。i f e a t u r e 接口里提供的o b j e c t 属性,它 所返回的是i o b j e c t c l a s s 接口,而f e a t u r e c l a s 5 这个类也提供了i o b j e c t c l a s s 和 i f e a t u r e c l a s s 这两个接口,这样就可以通过接口跳转从i o b j e c t c l a s s 转换成 i f e a t u r e c l a s s ,从而获得f e a t u r e c l a s s 类的i f e a t u r e c l a s s 接口,其代码如下: i f e a t u r ei _ f t r : i o b j e c t c l a s si _ _ o b j c ls = i _ f t r c l a s s : i f e a t u r e c l a s si _ f t r c l s = ( i f e a t u r e c l a s s ) i _ o b j c l s ; 此外,若要获得这个f e a t u r e c l a s s 所在工作空间的i w o r k s p a c e 接口,可以通 过两个方法: ( 1 ) 通过i f e a t u r e c l a s s 接口里的f e a t u r e d a t a s e t 属性来获得i f e a t u r e d a t a s e t 5 a r c g i se n g i n e 9 2 常上 j 对象模型研究 接口。i f 、e a t u r e d a t a s e t 接口罩有一个w o r k s p a c e 属性返回l w o r k s p a c e 接r ,但这 种方法有一个前提,就是这个f e a t u r e c a s s 必须是一个f e a t u r e d a t ,a s e t 的成员, 如果不是,这个f e a t u r e d a t a s e t 返回的就是一个窄值。 ( 2 ) 通过接【j 转换。f e a t u r e c la s s 实现了多个接口,其中有i d a t a s e t 接口和 i f e a t u r e c l a s s 接口,通过i f e a t u r e c a s s 接【_ 跳转来荻得i d a t a s e t 接口,在 i d a t a s e t 接口罩有一个w o r k s p a c e 属性返l - ji w o r k s p a c e 接口,这种方法对 f e a t u r e c l a s s 是不是一个f e a t u r e d a t a s e t 的成员的情况都适用。代码如下: i d a t a s e ti f 。t r d s e t = ( ji ) a t ,a s e t ) j f t r c l s ; 接口跳转 i f ? c a t u r e w o r k s p a c ei w k s = ( i f e a t u r e w o r k s p a c e ) i f t r d s e t w o r k s p a c e ; 3 5 对象模型图 3 5 1 统一建模语言( u m l ) u m l 是进行丁视化建模的一种语言+ ,是为面向对象了i :发系统的产品进行说明、可 视化和文档编制的一种标准语言,列象模型图是通过统一建模语言描述的。 3 5 2 对象模型图( o m d ) o m d 描述该类支持哪些接i1 、完成任务需要哪些对象、如何使j 一1 j 该类的对象、是 否可以直接实例化类、接口有哪些方法和属性、是否有其它类也支持该接口以及对 象问的关系等,它是理解对象模型图的钥匙,如图3 1 所示。 孵e c 谬e a l e a b l e 一玖 g 琵l 翁溶 誊i v j 基j 冀篁 萋 mb r 一s 恐黑印警警熄黧。 n s l an t i a b ! e 。d 薯;一_ m ) f 一。一 一 1 | c i a s s 善; = 1 。 图3 1 对象模琴! 图 m u l d p m i c 畔 在抽象类、组件对象类和可实例化类之间,有几种存在的灭联( 或称关系) 。 ( 1 ) 联系( a s s o c i a t i 0 1 3 ) 描述了类之间的关联。在两端的类中可以定义多重性 ( m u l t i p licit y ) 关联。例如,一个业主能拥有一块或多块土地;同样,一块土地 可以被一个或多个业主所共有,如图3 - 2 所示。 。j + 曩 囊j ;? - 一, 。w n 。r ? 氟麓麓篓。墓。妄。二己拽n d0 期陀e ,爹j :i j i 图3 2 联系图 ( 2 ) 类继承( t y p ein h e r it a n c e ) ,它定义了专门的类,拥有超类的属性和方法, 并且同时也有自身的属性和方法,1 。如图3 3 所示,p r i m a r y1 if i e 和s e c o n d a r y f i e 是l i n e 的一种类型。 鬻萋誊。誊攀i i ,:_ - 一二 i : ! ii 参:j j j j 鬻- :, s s ;- ; 叠1 ;_ j ? | | 1 ;j ;| ? _ 誊r i m 秘r y 】 i i n 鲁 $ e c _ x 3n d a r y 1 3 i ir 。黝誊 毒 v, _ l 矧:3 - 3 类继承 ( 3 ) 实例化( jn s t a n ti a tjo n ) 是指定一个类的对象有这样的方法,它能够创建 另外一个类的对缘“1j 如图3 _ 4 所示,p o1e 刈象有一个方法能够创建t r a n s f o r m e r 刘 象。 _ 童? : l 囊 i p 蠢镑 i := 一一0 一- 卜节铲张n 嚣滞o i r m e r ? 蓦蠹 i 、。薹0 l 划3 4 实侈0 化l 冬j ( 4 ) 聚合( a g g r e g a t i o n ) 是一* , 0 4 - 对称的关联方式,在这种方式下一个类的对 象被认为足一个“整体”,而另一个类的对象被认为是“部件”l 9 3 。如图3 5 所示, 个t r a n s f o r m e rb a n k 正好有3 个t r a n s f o r m e r 。在这个图中t r a n s f o r m e r 能和 个t r a n s f o r m e rb a n k 相关联,但当t r a n s t l o r m e rb a n k 移除以后,t r a n s f o r m e r 依 然能够存在。 a r c g j se n g i n e 9 2 常用对象模型研究 惫,i j 誊一? ? 童 j _ :。_ j 。 i j 溪罗嚣? er 拳t m n s f o r m 舀r 一| 鬻麓 一:矗j 。纛0 一 i j 0 1 ; 图3 - 5 聚合图 ( 5 ) 组成( c o m p o s jt i o f i ) 是一种更为强壮的聚合方式,此种方式下, “整体 象控制着“部分”对象的,l 存时间。如图3 6 所示,一个p o l e 包含一个或多 o s s a r m 。在这个图中当p o le 被移除后,c r o s s a r m 就不能再使用了。因为p o e 着c r o s s a r m 的生存时i n j 。 鼻 im 1 : j 1 | j j 。, i ,南0 。:鑫鑫 c r o a r m j 季鍪;j ;i 妻叠j 。蠢。一j i oj j 一薹j o 薯1 图3 - 6 组成图 如图3 - 7 所示,它可以形象的表示出对象模型图的含义: 图3 7 列象模型形象幽 1g e o m e tr y 库 第四章常用对象库介绍 g e o m e t r y 库包含了核心几何对象,如点、多边形、线及其几何类型和定义等 图4 一l 所示,该图诠释了g e o m e t r y 库的结构组织形式。 图4 一lg e o m e t r y 厍对象组织结构图。 g e o m e t r y 类库处理存储在要素类中的要素几何图形或其他图形元素。大多数用 会遇到的基本几何图形对象为p o i n t 、m u l t i p o i n t 、p o l y l i n e 和p o l y g o n 。除了 些顶级实体外,就是作为多义线和多边形的组成部分的几何图形,是组成几何图 的子要素。它们是s e g m e n t 、p a t h 和r i n g 。p o l y i n e 和p o l y g o n 由一系列相连接 、构成p a t h 的片段组成的。一个片段由两个不同的点,即起始点和结束点,以及 个定义这两点之间弯曲度的元素类型组成。片段的类型有c i r c u l a r a r c 、l in e 、 、 l i p t i c a r c 和b e z i e r c u r v e 。所有几何图形对象都可以有与其顶点相关联的z 、m i d s 。所有的基本几何图形对象都支持诸如b u f f e r ,c 1 i p 等几何操作。几何子要 不可以由开发者扩展。 g i s 中的实体指的是现实世界中的要素,现实世界中要素的位黄由一个带有空间 考的几何图形来定义。空间参考对象,包括投影坐标和地理坐标系统,都包括在 o m e t r y 类库中。可以通过添加新的空间参考和投影来扩展空间参考系统。 a r c g i se n g ih e 9 2 常,【_ j 对象模巧! 研究 4 1 1p oin t 对象 能。 个点包括x 、y 搬标,同时可以增加m 、z 值及i d 属性来扩展点的功 4 1 2m uitip oin t 对象 m u l t i p o in t :点的集合,多点组成m u l tp oin t3 l m 类型,使用m u ti p o inl 射 象实现了的i p o i n t c o l e c t i o n 接口可以访问所有的点元素,这些点同样可以拥有m 、 z 值及i d 属性来获得更多的地理空间内涵。 4 1 3p oiyiib e 对象 p o l y li l i e :p o l y l i e 是有序p a t h 组成的集合,可以捌有m 、z 和i d 属性值j2 , 如图4 - 2 所示。p o y l i n e 对象的i p o i n t c o e c t i o n 接口包含了所有节点的复制, i g e o m e t r y c o 】e c t jo i l 接口可以获取p o ly 1in e 的p a t ,h ,i s e g m e n t c o l 1o c tio n 接口可 以获取p o l y il i e 的s e g m e n t s 。i s e g m e n t 接口的o u e r y n o r m a 方法用米存弧段上的 某一点生成该弧段的法线,指定其长度,这样就生成了新的s e g m e n t ,并且将多个 p a t h 添加到g e o m e t r y c o l l e c t io n 中,以1p o y 1i m e 的形式返p 1 。 图4 - 2p o ly l i n e 结构图 a r c gt se n g i n e 9 2 常_ l = j 对象模型研究 4 1 4p oiy g o n 对象 p o l y g o n :p o ly g o n 是一系列r i n g 组成的集合,可以拥有m 、z 和 如i 訇4 - 3 所示。每一个r in g 由一个或多个s e g m e n t 组成。p o l y g o n i p o in t c o l l e c t i o n 接口包含了所有节点的复制,i g e o m e t r y c o 1 e c t i 耿p o l y g o n 的r i n g ,i s e g m e nt 0 0 1 e c t io r 接口可以获取p o ly g o n 的s e 结构图: 4 1 5m uitip a t c h 对象 图4 - 3p o y g o n 结构图 m u tip a t c h :m u lip a t c h 用于描述3 d 而状j l f w 类型,由一系列自7 成,如果其中的p a r t 足一个r i n g ,那么它必须足封闭的,第一个节爿 点相同,另外每个p a r t 所包含节点的顺序非常重要,in n e r k in g 在0 l 代表单个表面p a t c h 的一系列r in g 必须由第一个r i n g 丌始。 4 1 6 其他对象 此外,g e o m e t r y 库中还有几个常用对象: g e o m e t r y e n vir o n m e n t :g e o m e tr y e n v i r ( ) n m e n l 提供了从不同的输, a r c g i se n g i n e 9 2 常用对象模型研究 全局变量来创建几何图形的方法,以便控制g e o m e t r y 方法的行为n 匐。其中 i g e o m e t r y b r i d g e 2 接口的a d d w k s p o i n t s 方法可将二维点添加到点集合中,用于构建 p a t h 、r i n g 、p o l y l i n e 、p o l y g o n ,或增加新点到m u l t i p o i n t 等对象中去。除 i g e o m e t r y b r i d g e 2 还有i g e 伽e t r y b r i d g e 接口,后者继承了前者,增加了一些编辑 功能( 添加点、插入点、重置点、分段等) 。 g e o m e t r y b a g :g e o m e t r y b a g 是支持i g e o m e t r y 接口的几何对象引用的集合,任何 几何对象都可以通过i g e o m e t r y c o l l e c t i o n 接口添加到g e o m e t r y b a g 中,但是在使 用拓扑操作的时候,需要注意不同类型的几何类型可能会有相互不兼容的情况。在 向g e o m e t r y b a g 中添加几何对象的时候,g e o m e t r y b a g 对象需要指定空间参考,添加 到其中的几何对象均拥有和g e o m e t r y b a g 对象一样的空间参考。 4 2dis pla y 库 d i s p l a y 类库包含用于显示g i s 数据的对象。除了负责图形显示输出的对象外, 这个类库还包含表示符号和颜色的对象,它们用来控制显示绘制时实体的属性。 d i s p l a y 类库还包含显示交互时提供给用户可视化反馈的对象。开发者与d i s p l a y 最 常用的交互方式就是类似于m a p 对象或p a g e l a y o u t 对象提供的视图。d i s p l a y 类库 的所有部分都能进行扩展,通常扩展的对象包括符号、颜色和显示反馈。 a r c g i s e n g i n e 的基础符号对象模型和符号管理对象模型都包含在d i s p l a y 库中。 d i s p l a y 库主要包括d i s p l a y 对象、c o l o r 对象、c o l o r r a m p 对象、 d i s p l a y f e e d b a c k 对象、r u b b e r b a n d 对象和s y m b 0 1 对象。如c o l o r 和c o l o r r a m p 对 象可以产生颜色对象,它配合s y m b o l 对象,可以对地理数据进行符号化操作,以产 生丰富多彩的地图图形。d i s p l a y f e e d b a c k 对象则是a r c g i se n g i n e 中可以使用鼠标 与地理视图进行交互的对象,它的内容非常丰富,可以用于绘制图形或移动图形等 高级任务。r u b b e r b a n d 对象则相当于一个“橡皮筋对象,它可以用于在d i s p l a y 上 绘制丰富的几何形体对象,如c i r c l e 、p o l y l i n e 和p o l y g o n 等。 4 2 1dis pla y 对象 d i s p l a y 对象简单的说就是一个制图界面。它是一个可以把真实空间坐标系统转 化为设备空间坐标系统的句柄对象。d i s p l a y 对象常与s c r e e n d i s p l a y 对象、 s i m p l e d i s p l a y 对象和d i s p l a y t r a n s f o r m a t i o n 对象联用n 铂,如图4 - d 所示。 1 2 a r c g i se n g i h e 9 2 常用对象模型研究 s c r e e n d i s p l a y 对象可以抽象成一个诈常的应用程序窗门,它可以执行滚动和备份存 储。s i m p l e d is p l a y 对象是i j _ :r 以在w i n d o w s 中用来着色的设备,如打印机等。 d is p a y t r a n s f o r m a ti o n 对象定义了怎样将真实坐标系统映射到输出设备。 d i s p l a yo b j e c t s 一一 , l 矧4 4d i s p l a y 对象组织结构l 划儿“ d is p l a y 对象、 s c r e e n d is p l a y 对象、 sim p e d i s p 】a y 刈象和 d is p l a y t r a n s f o r m a t i o n 对象常用于窗口初始化、绘图、缓冲区、图形移动和旋转等 程序巾”。d is p l a y 对象提供的jd r a w 接口f 】来执 j :绘制代码,绘制过程以 s t a r t d r a w in g 方法丌始,f i n is h d r a w in g 方法完成。i d i s p la y 接v ij 、砭用于在设备i : 两点、线、而、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论