(交通信息工程及控制专业论文)虚拟现实技术在地理信息系统中的应用.pdf_第1页
(交通信息工程及控制专业论文)虚拟现实技术在地理信息系统中的应用.pdf_第2页
(交通信息工程及控制专业论文)虚拟现实技术在地理信息系统中的应用.pdf_第3页
(交通信息工程及控制专业论文)虚拟现实技术在地理信息系统中的应用.pdf_第4页
(交通信息工程及控制专业论文)虚拟现实技术在地理信息系统中的应用.pdf_第5页
已阅读5页,还剩83页未读 继续免费阅读

(交通信息工程及控制专业论文)虚拟现实技术在地理信息系统中的应用.pdf.pdf 免费下载

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

文档简介

西南交通大学研究生学位论文 信息系统一般的 g i s功能,而且可以 通过在地图上选择地理要素 对象从而 进入由o p e n g l 创建的 此对象的三 维场景进行漫游。 该开发技术可广泛的应用于有三维需求的地理信息系统的开 发,如:辅助决策支持系统、城市设计规划、系统仿真、商业和 旅游等领域。 丫 关键词 :g i s o l e m a p x图层 m a p g e o s e t o p e n g l 虚拟现实技术在地理信息系统中的 应用2 0 0 1 / 3 西南交通大学研究生学位论文i i i a b s t r a c t . w i t h t h e d i g i t a l d e v e l o p m e n t o f s o c i e t y , g e o g r a p h i c i n f o r m a t i o n s y s t e m i s w i l d l y a p p l i e d i n m a n y f i e l d s . g e o g r a p h i c i n f o r m a t i o n c o u l d b e 3 d v i s u a l i z e d b y u s i n g o f v i r t u a l r e a l i t y t e c h n o l o g y , a n d t h i s i s v e r y i m p o r t a n t t o c h a n g e g i s s a p p l i c a t i o n d i r e c t i o n f r o m 2 d t o 3 d . t h e c i t y g i s w a l k t h r o u g h s y s t e m s a r c h i t e c t u r e f r a m e i s d e s i g n e d a t t h i s a i m . b e c a u s e o f t h e n e e d o f u s i n g o p e n g l t o c r e a t e 3 d s c e n e s , t h e u n i v e r s a l p r o g r a m d e s i g n t o o l ( v c + + ) i s u s e d a s t h e d e v e l o p m e n t t o o l i n s t e a d o f u s i n g t h e c u r r e n t e x i s t i n g g i s s y s t e m s o f t w a r e . t h e g i s f u n c t i o n s s u c h a s q u e r y i n g l o c a t i o n a n d z o o m i n g a r e r e a l i z e d b y t w o w a y s . t h e f i r s t i s c a l l i n g m a p l n f o p r o f e s s i o n a l s g i s f u n c t i o n s b y u s i n g o f o l e a u t o m a t i o n , a n d t h e s e c o n d i s u s i n g m a p x b a s e d o n a c t i v e x t e c h n o l o g y . s y s t e m s 3 d f u n c t i o n s a r e r e a l i z e d b y t h e f o l l o w i n g m e t h o d s : e s t a b l i s h i n g u s e r - d e f i n e d o p e n g l s d e v e l o p e n v i r o n m e n t s i n v c + + a n d c r e a t i n g 3 d s c e n e s i n t h e o p e n g l s d e v e l o p e n v i r o n m e n t s b y u s i n g o p e n g l t e c h n o l o g y . a f t e r t h e c r e a t i n g o f s y s t e m s g i s f u n c t i o n s a n d 3 d s c e n e s , t h e o n e - t o - o n e c o r r e s p o n d e n c e r e l a t i o n s h i p s b e t w e e n g e o g r a p h i c f e a t u r e s a n d 3 d o b j e c t s a r e e s t a b l i s h e d b y t h e c h a r a c t e r i s t i c t h a t a l l g e o g r a p h i c f e a t u r e s f e a t u r e i d o n a m a p l a y e r a r e u n i q u e . w h e n a g e o g r a p h i c f e a t u r e i s s e l e c t e d o n t h e m a p , u s e r s c o u l d w a l k t h r o u g h t h e c o r r e s p o n d i n g 3 d s c e n e s . t h r o u g h t h e w a y s a b o v e , t h e v i r t u a l r e a l i t y t e c h n o l o g y c o u l d b e a p p l i e d i n g i s . t h e r e a r e m a i n l y t w o t y p e s o f d a t a s o u r c e s c o u l d b i n d t o t h e s y s t e m : o n e i s o d b c d a t a s o u r c e , w h i c h c o u i d b e i i n k e d t o t h e d a t a b a s e s i n c l u d i n g a c c e s s , d b a s e a n d o r a c l e , a n o t h e r d a t a s o u r c e i s m a p l n f o t a b . a f t e r d a t a s o u r c e s a r e b a n d t o s y s t e m , t h e r e c o r d s i n c l u d e g e o g r a p h i c c o o r d i n a t e s c o u l d b e d i s p i e y e d o n t h e m a p , a n d t h e a t t r i b u t e d a t a c o u i d b e i i n k e d w i t h s p a c e i n f o r m a t i o n d a t a b y g e o g r a p h i c c o d i n g . s y s t e m e s t a b l i s h e s o p e n g l s d e v e l o p e n v i r o n m e n t s t o 虚拟现实技术在地理信息系统中的应用 2 0 0 1 / 3 西南交通大学研究生学位论文 i v s i m p l i f y t h e p r o c e s s o f c r e a t i n g 3 d s c e n e s t h r o u g h t h e w a y s o f c r e a t i n g o p e n g l e n v i r o n m e n t i n i t i a l i z a t i o n w i z a r d a n d o p e n g l c o n t r o l . f o r s i m p l e 3 d o b j e c t s , t h e y c o u l d b e r e n d e r e d d i r e c t l y b y o p e n g l c o m m a n d s . a s f o r c o m p l e x 3 d o b j e c t s , t h e f i r s t s t e p i s c r e a t i n g t h e i r m o d e l s i n 3 d m o d e l t o o l s u c h a s 3 d s a n d a u t o c a d , t h e s e c o n d s t e p i s g a i n i n g t h e i r 3 d i n f o r m a t i o n , w h i c h i n c l u d e s v e r t e x e s、n o r m a l d i r e c t i o n v e c t o r s a n d m a t e r i a l t e x t u r e s , b y 3 d e x p l o r a t i o n , a n d s t o r i n g t h e i r 3 d i n f o r m a t i o n i n a r r a y s . t h e f i n a l s t e p i s r e a d i n g t h e i n f o r m a t i o n a n d r e n d e r i n g i t b y o p e n g l . m o r e o v e r. t h r o u g h t e x t u r e m a p p i n g、l i g h t i n g a n d a d d i n g s o u n d s. t h e t h i r d d i m e n s i o n o f 3 d s c e n e s c o u l d b e e n h a n c e d . t h r o u g h m o u s e a n d k e y b o a r d , s y s t e m s u s e r s c o u l d i n t e r a c t wi t h 3 d s c e n e s . t h e g o a l o f d e s i g n i n g s y s t e m s a r c h i t e c t u r e f r a m e i s t o a p p l y v i r t u a l r e a l i t y t e c h n o l o g y i n g i s . u s e r s c o u l d e s t a b l i s h t h e i r g i s a p p l i c a t i o n s o n t h i s f r a m e . t h e s e a p p l i c a t i o n s n o t o n l y r e a l i z e s t h e u s u a l g i s f u n c t i o n s , b u t a l s o r e a l i z e s t h e f u n c t i o n w h i c h i s w a l k i n g t h r o u g h t h e 3 d s c e n e s b y w a y o f s e l e c t i n g g e o g r a p h i c f e a t u r e o n t h e m a p . t h e s e t e c h n o l o g i e s c o u l d b e w i l d l y a p p l i e d i n m a n y f i el d s t h a t n e e d g i s f u c n t i o n s a n d h a v e 3 d d e m a n d s . t h e s e f i e l d s i n c l u d e a s s i s t a n t d e c i s i o n s u p p o r t s y s t e m ( d d s ) 、 u r b a n p l a n i n g a n d m a n a g e m e n t、s y s t e m e m u l a t i o n , b u s i n e s s a n d j o u r n e y . k e y w o r d : g i s o l e m a p x l a y e r m a p g e o s e t o p e n g l 虚拟现实技术在地理信息系统中的应用2 加 1 习 西南交通大学研究生学位论文 概述 随着 5 0年代计算机科学的兴起,计算机技术在地图制图学 和土地规划与管理中得到了广泛的应用。人们可以利用计算机来 收集、存储和处理与空间地理分布有关的图形和属性数据,并借 助分析和输出的结果来为管理和规划决策服务。这样就导致了地 理信息系统 ( g i s - g e o g r a p h i c i n f o r m a t i o n s y s t e m ) 的出 现。 g i s开始主要应用于测绘、制图、环境和资源管理等领域。 随着软件开发工具的更新换代和数据库技术、计算机硬件的发 展,g i s的空间查询和分析能力以及数据处理等能力有了很大的 提高,使得它在商业、军事、交通等领域也得到了广泛的应用。 g i s的广泛应用需要利用和集成其它的技术。通常的 g i s系 统只能为用户提供单一的图形、数据信息等形式,表现形式单 一,因而实用价值受到了限制。如果将虚拟现实 ( v r - v i rt u a l r e a l i t y ) 技术应 用 于 g i s , 不但可以 在g i s应用中 真实的再现地 理要素对象,而且提高了g i s描述和分析地表空间事物信息的能 力,促使g i s 从传统的二维向三维方向发展。 本论文的选题正是基于地理信息系统和三维的虚拟现实技术 这两个前沿学科领域,对 g i s技术和虚拟现实技术进行了一些研 究,着力于虚拟现实技术在 g i s中的应用,设计了一套可行的虚 拟现实技术在 g i s中应用的方案。论文中介绍了地理信息系统和 虚拟现实技术,设计了 城市 g i s漫游系统的框架结构,用 v c 十 十 作为软件开发工具, 使用 o l e自 动化以及 m a p x技术在应用中 实 现了g i s 功 能 , 并 利 用o p e n g l 技 术 构 建了 三 维 场 景, 最 后 将 三维场景和地图要素对象连接起来。在此框架结构基础上构建的 基于虚拟现实技术的g i s 应用,不但可以实现g i s功能,而且可 以对地理要素对象的三维场景进行漫游。 虚拟现实技术在地理信息系统中的应用 2 0 0 0 1 / 3 西南交通大学研究生学位论文第 2页 第一章 地理信息系统和虚拟现实技术 1 .1 g ! s 技术 1 . 1 . 1概念 地理信息系统是指在计算机软硬件的支持下,对整个和部分 地球表面 ( 包括大气层)空间的有关地理分布数据进行采集、存 储、管理、运算、分析、描述和显示的系统。 g i s处理和管理的对象是多种地理空间实体数据及其关系, 包括:空间位置数据、图形数据、遥感图像数据、属性数据等。 g i s的概念框架如图 1 一1 所示: 数据库及 管理系统 空间数据处 理与分析 应用界面 图 1 一 1 g i s 的 概念 框架 g i s中的信息分为二类:第一类是空间位置数据,它反映事 物地理空间位置的信息,可以用点、线、面和三维表面来表示; 第二类是与事物的地理位置相关,反映其他特征的属性信息。 g i s有两个最显著的特征:一是它不仅可以象传统的数据库 管理系统d b ms 那样管理数字和文字 ( 属性)信息,而且可以管 理空间位置信息:二是它可以利用各种空间分析的方法对多种不 同的信息进行综合分析,解决空间实体之间的关系,分析处理在 一定地理区域内分布的各种自然社会现象和过程。 很久以来,地图作为视觉化地描述地球表面空间事物的工 虚拟现实技术在地理信息系统中的应用 2 0 0 0 1 / 3 西南交通大学研究生学位论文第 3页 具,广泛地运用在交通、农业和军事等领域。人们通过地图或者 制作专题地图可以解决道路设计、农业规划和军事部属等问题, 但是这些方法费时费力,而且稍有失误就要返工,另外由于信息 量的限制,往往得不到最佳的解决方案。 管理信息系统 ( m i s - ma n a g e m e n t i n f o r m a t i o n s y s t e m ) 作为人 们进行信息检索、查询以及统计分析的工具,正广泛地应用于交 通、农业和军事等领域,它处理的对象主要是属性信息。但是, 人们在日 常生活与经济活动中所获取的许多信息,往往同具体的 空间位置信息密切相关。我们当今面临的许多要解决的问题如: 农业规划、人口 统计、工业规划、交通管理等,这些问题也都与 空间位置有关。不论是寻找栽种某种农作物的最合适的土壤,或 是统计人口 性别和密度的分布、布局工业区还是为救护车计算最 佳的交通路线,这些问题都与空间位置信息有关。 g i s技术把地图这种独特的视觉化效果和地理分析功能与一 般的数据库操作 ( 例如查询和统计分析等) 集成在一起,它通过 将属性信息和空间位置信息连接起来,在计算机内组织成一个既 反映数量特征又反映拓扑特征的地理信息数据库。在相应软件工 具作用下,g i s既对数值又对图形作各种分析处理,从而以可视 化的方式迅速准确的解决各种问题。由 于信息处理的方式主要是 图形方式,所以各地理要素的分布态势以及彼此之间的拓扑关系 一日了然,使人能从宏观上迅速把握全局。这就是 g i s与地图和 mi s 不同的地方。 由于g i s具有将属性信息与空间 位置信息连接起来的能力, 因此可以建立共享的基础空间位置数据的数据库,基础的空间位 置数据只需采集一次,但可以 被不同的系统 ( 或部门)应用多次。 这样一个系统 ( 或部门)就能从另一个系统 ( 或部门)的工作中 受益, 避免基础空间位置数据的重复采集。 例如:在一个局部级的应用中,基础的空间位置数据集成在 g i s数据库中,同时供不同的系统使用,如:交通系统、火警系 统等。当基本的空间位置数据更新时,只需把 g i s数据库中的数 据更新一次。如果各个系统不共享基础空间位置数据的话,则需 要分别对每一个系统的空间位置数据库进行更新。这样就会产生 重复的劳动和浪费有限的存储空间。集成的 g i s数据库示意图如 图 1 -2 所示: 虚拟现实技术在地理信息系统中的应用 2 0 0 0 1 乃 西南交通大学研究生学位论文第 4页 图1 一 2 集 成的 g i s 数据库 1 . 1 . 2 gi s 1 . 1 . 2 . 1 的软硬件环境 硬件环境 g i s 的硬件环境如图1 -3 所示: 粗愉 出 系 统 网络 图 1 一 3 g 工 s 的 硬 件 环 境 g i s的计算机系统以前主要是u n i x 工作站,但随着p c机性 能的大幅度提高,微机现在占据了g i s 开发的大量中低端市场。 数据采集1 输入系统包括:数字化仪、扫描仪、数字摄影测量 系统和遥感图像处理系统以及g p s 系统。 地图输出系统包括:显示器、打印机、绘图仪等。 虚拟现实技术在地理信息系统中的应用2 0 01 / 3 西南交通大学研究生学位论文 第 5页 1 . 1 . 2 . 2软件环境 软件体系结构如图1 -4 所示: g i s 应用软 件 一一 tim4fa t jai -1 g i s 系 统 软 件 一盔 穿 门 数据库管理系统 蕊 刁 操作系统 图 1 - 4 g 工 s 软件体系 结 构 操作系统以前主要是 d o s和 u n i x ,现在主要是在 wi n d o w s 上开发。 数据库管理系统主要是:f o x p r o , s q l s e r v e r , o r a c l e , a c c e s s 等。 g i s 系统软件现在有5 0 0 种左右, 主要有: e s r i 公司的a r c / i n f o 、 m a p inf o公司 的m a p i n f o , g e n a s y s 公司的g e n a m a p 。国 产软 件主要是武汉测绘科技大学的g e o s t a r o 在熟悉wi n d o w s 平台通用集成开发环境下, 利用可视化开发 语言如v c + + , v b , b o r l a n d c + + 等,结合a c t i v e x等技术,就能 开发面向用户的灵活的g i s 应用软件。 本论文就是采用v c + + 开发工具,主要利用o l e自 动化技术 和a c t i c e x技 术, 使 用m a p i n f o 和g i s 组件m a p x开发 城市g i s 漫游系统结构框架。 m a p i n f o 由 美国的m a p i n f o 公司出品, 目 前的 最高 版本为6 .0 , 中文版的为5 .0 ,它有七大特点: ( i ) 提供数据思维可视化的决策支持方式。 虚拟现实技术在地理信息系统中的应用 2 0 0 0 1 / 3 西南交通大学研究生学位论文第 6页 ( 2 ) 支持客户/ a r 务 器体系结构。 ( 3 ) 可直接读取o d b c数据源。 ( 4 ) 提供m a p b a s i c 二次开发工具,方便用户制作 个性化的使用界面。 ( 5 ) 完备的s q l 查询功能,支持地理表达式。 ( 6 ) 以 地理方式实现o r a c l e . s y b a s e . i n f o r m i x 等 多种数据库数据的空间存储与访问。 ( 7 ) 具有 o l e功能。 m a p x是m a p i n f o 公司提 供的g i s 组件,为用户提供了 真 正 的对象链结与嵌入控件, 在v c + + 等软件开发工具中, 可以 用m a p x 将地图对象集成到应用系统中。 1 . 2 虚拟现实技术 1 .2 . 1概念 虚拟现实技术是一种逼真地模拟人在自然环境中视觉、听觉 、运动等行为的人机界面技术。它是一门由应用驱动的涉及到计 算机技术、传感与测量技术、电子技术等综合集成的技术。 v r技术的基本特征如图 】 一 5 所示: 图1 一5 虚拟现实技术的签本特征 沉浸感指用户在计算机所构建的三维环境中处于身临其境的 感觉。 交互性指用户通过使用专用设备,用人类的自然技能实现对 模拟环境考察与操作的程度。 想象指用户应用v r技术解决工程,军事等问题的创造能力。 虚拟现实技术在地理信息系统中的应用2 0 0 01 / 3 西南交通大学研究生学位论文 第 1 2页 第二章 城市g i s 漫游系统概述 2 . 1系统的软硬件结构 硬件 软件 c p u为奔腾5 0 0 的微机一台。 操作系统为:wi n d o w s 2 0 0 0 p r o f e s s i o n a l v c + + 6 .0 . m a p i n f o p r o f e s s i o n a l 5 .0 ( 中 文 程序开发工具 版) 、 m a p x 4 .0 1 、 m ic r o s o ft a c c e s s . 3 d e x p l o r a t i o n . 城市g i s 漫游系统的系统结构示意图如图2 -1 所示 城d i g i s 漫功丁系统 ) 七 杏 统 寿 亡 ; ; 钊1石 游功 a j 位 i 足 入 。 比自 动化o d b c j 卜 匕 m a p x m a p i n f o p r o f e s s i o n a l 数据库多 媒体 数据库 数据管理 数据维护 if i一1 1h hi g i s 漫游系统的5 r 统结钩/ l : 意 虚拟现实技术在地理信息系统中的应用 2 0 01 / 3 西南交通大学研究生学位论文第 1 3页 2 . 2系统功能 系统功能的实现主要分为两部分:一是 g i s功能的实现:二 是三维场景的创建。 ( 1 ) g i s 功能的实现 系统以中国行政区域分布、成都市区地图、西南交大单位分 布等图层作为基础,利用 v c 十 十 作为应用开发工具,使用两种方 法实现了系统所需的g i s 功能。 第一种: 将m a p i n f o r p r o f e s s i o n a l 作为后台 服务器, 通过o l e a u t o m a t i o n技术,从客户端发送命令到后台服务器,服务器接收 命令后,再将执行结果发送回客户端进行显示。 第二种: 采用a c t i v e x技术, 将g i s 控件m a p x集成到城市 g i s 漫游系统中 去, 系统同 时 通过m a p x与o d b c 数 据源相连接。 ( 2 )三维场景的创建 三 维场景部分使用 v c 千 + 开发工具,利用 o p e n g l技术,结 合三维建 模工具、文件格式转换工具3 d e x p l o r a t i o n 、 分形算法等 方式生成。 系统最后通过地理要素的 f e a t u r e i d 在地图图层上的唯一 建立起三维场景和地理要素的一一对应关系。 整个系统实现的功能有: 1 )矢量地图的缩放、漫游。 2 )各个基本图层的控制。 3 )地图的全图、居中、自 动标注。 4 ) 数据的 加 载 ( 包括从m a p i n f o 表中 和o d b c 数 据源) 。 5 )地理要素的定位。 6 )地图上地理要素的选取及相关信息的查询 7 )三维场景的即时漫游。 3应用开发工具的选择 性 2 在选择应用的开发工具时,要根据系统具体需要实现的功能 来进行开发工具的选择。 分析城市g i s 漫游系统需要实现的功能: 系统不但要实现g i s 一般的查询、定位、放大等功能,而且还要嵌入虚拟现实的应 用, 使用o p e n g l 图 形 库来进行三维场景的 绘制。 从虚拟现实功能的实现方面考虑:v c + + 开发工具功能强大, 是在微机系统上使用o p e n g l 技术开发三维场景的 最佳选择。 虚拟现实技术在地理信息系统中的应用 2 0 0 0 1 / 3 西南交通大学研究生学位论文第 1 4页 从 g i s功能的实现来考虑:目 前传统的 g i s开发工具有 m a p i n f o p r o f e s s i o n a l . a r c / i n f o 等。 此外 还 有组件式开发工具m a p x 、 m a b o b j e c t s 等。 对系统既要实现 g i s功能, 也要实现虚拟现实功能的特点分 析如下: 传统的g i s开发平台,虽然集成了g i s各项功能,但是具有 以下的不足之处: ( 1 ) 开发平台均采用专门的二次开发语言,如 m a p l n f o使用 m a p b a s i c 语言、 a r c v i e w采用a v e n u 语言。 要灵活的 使用 这些语言,必须要开发人员了解它们庞大的函数库、命令 库,这样就使普通的开发人员难以掌握,延长了应用系统 的开发周期。 ( 2 )开发平台中的空间数据管理和数据库管理系统通常直接由 g i s厂商提供,而它们的价格昂贵。这种情况一方面大大加 大了应用开发与系统建设的成本;另一方面也限制了用户 根据应用需要和各种数据库的特点,选择利用数据库工具 的机会。 ( 3 )开发平台具有一定的封闭性,它们与 mi s系统和多媒体开 发工具的衔接很不方便,不同系统之间的交互性差。 更 重 要 的 是: 如果 采用当 前 传统 的g i s 开发 平台, 如m a p l n f o p r o f e s s io n a l ,作为开发工具,虽然能实现 g i s的功能,但是无法 在它 上面 使用o p e n g l 图形库来实 现三 维 场景的绘 制与漫游。 因此在城市 g i s漫游系统中,使用了两种方法来实现系统的 g i s 功能。一是o l e自 动化技术;二是基于a c t i v e x的g i s 控件 m a p x . 这两种方法都是使用 v c + + 作为应用开发平台以使用 o p e n g l 实 现虚 拟现实部分的 功能。 第 一 种 方 法: 通过o l e自 动 化, 系 统 把m a p i n f o p r o f e s s i o n a l 软件作为服务端程序,在应用端用 v c + +中创建客户端的自 动化 类。 通过 这些 类系 统可以 实现m a p i n f o自 动化 组件所提供g i s 功 育 旨 , 。 第 二 种 方 法: 在v c 十 十 中 使 用m a p x 控 件来实 现g i s 功能 。 系统在实现 g i s功能和建立好三维场景后,通过建立起三维 场景和地理要素的一一对应关系,从而实现虚拟现实技术在地理 信息系统中的应用。 虚拟现实技术在地理信息系统中的应用 2 0 0 01 / 3 西南交通大学研究生学位论文 第 1 5页 第三章 a u t o m a t g i s功能实现方法之 1 - o l e i on技术 3 . 1 o l e自动化 o l e 是 对象链接与嵌入 ( o b j e c t l i n k i n g a n d e m b e d d i n g ) , 利 用 o l e就能在用户的应用程序中加入源于其他应用程序的数据 块,利用其他程序的功能来扩展用户应用程序的功能,为系统的 集成提供了标准和途径。 o l e对象是指可以在使用 o l e的应用程序中被显示和操作 的数据整体,对o l e对象的操作有嵌入和链接两种方式。 嵌入是指将一个对象的数据信息完整的放置到客户端应用程 序文档中。而链接指在客户端应用中存储对象的一些描述信息, 这些描述信息包括:对象文件及其路径名称、调用这个对象的服 务端应用程序的名称等。而对象的实际数据并没有拷贝到客户端 应用中。 嵌入能使对象保持很好的一致性,但是将使客户端负担加重, 而链接不会过大增加客户端的负担,但是它不容易保持对象的完 整性。 o l e和c o m之间的关系非常密切,它是在c o m基础上发 展起来的组件式软件技术。 下面主要介绍以下本系统要用到的o l e自动化技术: o l e 自动化是指让其它的软件 ( 例如 v c 十 + )以编程的方 式来使用自 动化对象所提供的服务。通常这些服务是由用户以 交互的方式来使用的。在自 动化技术出现之前,一些大的应用 程 序,如 e x e l 等, 是通过 宏 语言来 提供有限的 编程能力; 但是 使用宏语言带来了一个很大的缺陷:没有统一的标准,要通过 宏语言来同时对几个自 动化对象进行编程化处理几乎是不可能 的。 o l e自 动化技术实际上是 c o m 的一个特例, o l e自 动化 对 象区 别于一般 c o m对象 的 主 要标志是它必须 支 持 i d i s p a t c h 接口 ,自 动化对象通过实 现 通过实 现 i d i s p a t c h接口 向自 动 化客 户 端 提供它的属性和方法。 客户 端 通过 i d i s p a t c h : : i n v o k e ( ) 函 数 访问自 动化 对象的 所有功能。自 动化 对象使用 di s p a t c h接口 来 公开对象的方法,来获得可编程化的能力,为 v 1 3 和 v c 十 + 等软 虚拟现实技术在地理信息系统中的应用2 0 0 01 / 3 西南交通大学研究生学位论文第 1 6页 件开发工具提供了极大的方便。 在 城市g i s 漫游系统中, 使用o l e自 动化技术使得m a p i n f o p r o f e s s i o n a l 作为服务端程序 ( 自 动化服务器)通过链接的方式提 供它的操作功能供客户端应用程序 ( 自 动化控制器) 使用、这样 m a p i n f o p r o f e s s i o n a l 可以 将自己 的g i s 功能提供给客户端应用程 序 使用,由 应用程 序调 用m a p i n f o 完成查询 放大、 缩小、 标 注等。 也 就是说m a p i n f o p r o f e s s i o n a l 把自 己 的一些数据成员 ( 属性) 或 函数 ( 方法)通过一定的机制对外公开,客户端应用程序可以通 过修改它的数据成员 ( 属性)或调用函数的方法来达到操纵 m a p i n f o p r o f e s s i o n a l 服务端的目 的。 系统中通过o l e自 动化对m a p i n f o 组件功能的 调用如图3 - 1所示 : m a p i n f o 自 动 化 组 im象 1 ” 代 1 已 回即 功d , 二 swi t chc ase 方 法 1 o f c ue 2 : 旅 2 ( h 方 法 1 ( . 方 御 ( ) . d i s p a t c h 咖t a b l e 图 3 一 1 o l e 自 动 化 中 对 组 件 功 能 的 调 用 另 外在m a p i n f o p r o f e s s io n a l 服 务 端有一 些定 义 好了 的 调 用接 口,这些接口可以供 m a p i n f o p r o f e s s i o n a l的二次开发语言 语言使用,客户端应用程序可以 直接使用 m a p b a s i c语 言来实 现内 部控制 m a p i n f o服务端的目 的, 从而更加方便快捷的 虚拟现实技术在地理信息系统中的应用 2 1 兀 幻1 乃 西南交通大学研究生学位论文第 1 7页 实 现开发g i s 系统所要求的 各项功能。 在城市g i s 系统中的客户端为o l e自 动化的控制端, m a p l n f o p r o f e s s i o n a l 为自 动化的 服务端, 客户端只需要构造代表m a p b a s i c 语句的字符串,使用o l e自 动化把这些m a p b a s i c 语句的 字符发 送 给自 动 化服 务端, 然后m a p i n f o p r o f e s s i o n a l 就 会像 在m a p b a s ic 窗口 键入这些命令一样执行 它们, 使m a p i n f o p r o f e s s i o n a l 的 显示 窗口 重父化, 使得 m a p i n f o的 地图窗口、 浏览窗口 、 统计图 窗口 等作为应用程序的子窗口 显示给用户,城市 g i s漫游系统就可以 在自 己 的 应用中为 用 户 提 供 和m a p i n f o软件中 功能 一 样的 应 用窗 口,而用户可以灵活的组合创建自己特色应用,满足不同的需要。 3 . 2 o l e a u t o m a t i o n 技术的具体实现 由于城市 g i s漫游系统的应用开发工具为 v c + + , 所以要在 v c + + 开发环境中通过增加对自 动化客户端的支持、建立 m a p i n f o 客户类、全局初始化、显示地图等方法达到对 m a p i n f o p r o f e s s i o n a l 服务端g i s 功能的调用。 3 . 2 . 1给系统增加o l e自动化客户端支持 在 v c + 十 中用初始化向导建立客户端应用程序时,如果没有 选择o l e自动化支持,就要手工加入支持 o l e自 动化的代码。 1 ) 打开s t d a f x .h 文件, 增加对m f c自 动化类的支持 # i n c l u d e / 对o l e 类的支持 # i n c l u d e / 对o l e自 动化类的支持 2 ) 初始化o l e动态链接库 在主程序源文件的i n i t i n s t a n c e ( ) 函数中 加入: i 双 ! a f x o l e l n i t ( ) ) a f x me s s a g e b o x ( i d 几o l e _ i n i t es f a i l e d ) ; r e t u r n f a l s e ; 如果初始化失败,可能原因是装入了 o l e系统动态链接库 的不正确的版本。 3 ) 打开r c文件,加入对应1d为i d p o l e i n i t f a i l e d 虚拟现实技术在地理信息系统中的应用 2 0 0 0 1 / 3 西南交通大学研究生学位论文第 1 8页 的消息字符串。这里设为: o l e初始化失败,请检查你的 版本,o 3 . 2 . 2在客户端建立 m a p i n f 。支持类,创建它的一个 实例 如果自 动化客户端要对 m a p l n f o服务端进行操作,它必须拥 有服务端对象的属性和方法。可以通过创建客户端类,从而通过 这些类的对象获 取服务 端对象的属性和方法, 实 现 m a p l n f o服务 端提供的各种g i s 功能。 1 ) 从m a p i n f o . t l b 文件中创建c o l e d i s p a t c h d r i v e r 派生类。 许多自动化组件有一个名为* .t l b 的二进制类型文件, m a p l n f o自 动化组件就为用户提供了 一个名为m a p i n f o .t l b的 二进制文件, 在v c 十 + 中通过c l a s s wi z a r d 可以 访问这个类型库文 件从而生成c o l e d i s p a t c h d r i v e r 的派生 类。 这些类包 括: d m a p l n f o d m i s e a r c h l n f o 等。 这些类 包含了 对m a p l n f o自 动化组件访问 的所有的成员函数。例如要实现放大、缩小等功能要建立 d m a p i n f o 的 对象, 要实现查询则 要建 立d m i s e a r c h l n f o 对象。 应用程序在客户端通过这些类可以 使用 m a p l n f o服务端所提 供的功能,从而实现o l e自 动化。 下面是系统应用o l e自 动化在客户端和服务端的连接结构示 意图3 一2 : o l e 自 动 化 客 户 端o l e 自 动 化 服 务 瑞 圈 3 - 2 o l e 自 动 化 的 客 户 端 和 服 务 端 的 连 接 虚拟现实技术在地理信息系统中的应用 2 0 0 0 1 / 3 西南交通大学研究生学位论文第 1 9页 2 ) 在应用程序c p p 文件中 加入# i n c l u d e 3 ) 声明一个d m a p l n f o 对象m a p i n f o 4 ) 在服务端启动m a p l n f o p r o f e s s i o n a l 有两种方式启动: 一种 是m a p l n f o 的 运行版本,二 是m a p i n f o 的 全拷贝 版。 启 动方法是 在主 程序的i n i t i n s t a c e ( ) 函 数中 加入以下 代码: i 叹 ! m a p i n f o .c r e a t e d i s p a t c h ( m a p l n f o .a p p l i c a t i o n ) ) a f x m e s s a g e b o x ( 启 动m a p l n f o 全拷贝 版时出 现 错误 ” ) ; r e t u rn f a l s e ; i 坟 ! m a p i n f o .c r e a t e d i s p a t c h ( ma p l n f o .r u n t i e m ) ) a f x m e s s a g e b o x ( 偏动m a p i n f o 运行 版本出 错 ” ) ; r e t u rn f a l s e ; 通过以上程序可以创建一个 i d i s p a t c h接口并把它和 c o l e d i s p a t c h d r iv e r 对象m a p i n f o 相连接。 3 .

温馨提示

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

评论

0/150

提交评论