基于Google Earth的BRT导乘系统设计与实现---毕业论文_第1页
基于Google Earth的BRT导乘系统设计与实现---毕业论文_第2页
基于Google Earth的BRT导乘系统设计与实现---毕业论文_第3页
基于Google Earth的BRT导乘系统设计与实现---毕业论文_第4页
基于Google Earth的BRT导乘系统设计与实现---毕业论文_第5页
免费预览已结束,剩余37页可下载查看

下载本文档

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

文档简介

本 科 毕 业 论 文 基于Google Earth的BRT导乘系统设计与实现Design and Implementation of BRT Direction System Based on Google Earth 姓 名:学 号:学院:软件学院系:软件工程专 业:软件工程年 级: 指导教师: 年 月摘要随着信息技术的发展以及应用领域的不断扩大,地理信息系统(GIS)技术得到了飞速的发展。地理信息系统是融合计算机图形和数据库于一体,用来存储和处理空间信息的高新技术,它把地理位置和相关属性有机地结合起来,根据用户的需要将空间信息及其属性信息准确真实、图文并茂地输出给用户。本系统是GIS技术在公共交通系统导乘服务方面上的应用。Google Earth是由Google公司开发的一款能提供全球主要城市卫星地图搜索服务的虚拟地球软件,它把航拍照片、卫星图像和GIS数据整合起来,形成一个可以运行在一定操作系统平台上,也可以作为插件运行在网页中的三维地球模型。Google 公司发布了基于组件技术的应用程序开发接口 Google Earth COM API,用户可基于不同的开发平台使用这些 API 接口来实现特定的功能扩展。诸多与公共交通系统有关的导乘服务系统大都是基于静态图片或电子地图,缺乏三维立体的直观感受。而本系统是在Microsoft Visual C+ 6.0开发平台下,调用Google Earth COM API,进行设计与实现。因此,本系统对地理信息的表达更加直观,更加实用。本系统过程开发中遵循软件工程的设计流程,经历了需求分析,系统总体设计,系统详细设计,编码实现多个阶段。本系统实现了对BRT的线路和站点的简单信息查询,并能在Google Earth 客户端上动态显示线路路径。用户可以通过本系统了解BRT的路线走向、站点分布,查询链接线的分布情况。系统界面操作简便,可视性好。关键字:Google Earth;地理信息系统;软件工程AbstractWith development and improvement of information technology, GIS is rapidly developed and used in a wide field. GIS is new technology which merges digit image and data base, used for store and process area data. It perfectly connects geography and its parameters, supply users real, accurate information in according to requirement. This system is a implement of GIS on bus and public direction services.Google Earth is developed by Google Co. which provides satellite map and virtual search. This application merges satellite maps, airplane photos and GIS, it could be launched as an independent program or embedded under other program. Google Co. has published the API of Google Earth as Google Earth COM API, using which developer could extend their program for some particular function.Usually a public traffic system has lots of static map, while what we need is a direct feeling of city. For dealing problem above, I developed a new dynamic direction system. It is developed under Microsoft Visual C+6, architected by structural design, using Google Earth COM API. My system is very intuitive and useful. During the development, the project experiences complete processes as requirement analyze system design, detail design, code and testing.By this program, we could search BRT line and stop, and above information could be displayed dynamic on Google Earth. User will his/her direction of BRT line, distribution of stops, understands information on BRT. This system also has a easy using interface, it is good to use. Key words: Google Earth;GIS;Software Engineering厦门大学本科毕业论文 目 录第一章 绪 论11.1 课题背景及意义11.1.1基于网络的GISGoogle Earth11.1.2 BRT导乘服务应用11.2 Google Earth 简介21.3 COM 编程结构简介41.4 Google Earth COM API简介51.5开发环境概述61.6本文组织结构7第二章 系统总体设计82.1 需求分析82.1.1 用户需求82.1.2 系统功能需求82.2 系统框架设计92.3 系统模块设计102.3.1“启动GE 客户端”模块介绍102.3.2“站点视图切换”模块介绍112.3.3“线路导乘服务”模块介绍112.3.4“视图控制”模块介绍112.3.5“站点信息”模块介绍112.3.6“退出GE 客户端”模块介绍122.4 本章小结13第三章 系统详细设计与实现143.1 系统界面设计143.1.1 窗口界面设计143.1.2 对话框界面设计153.2 结构化数据设计173.2.1 KML 语法和文件结构173.2.2系统数据文件的建立183.3 Google Earth接口设计193.4 功能模块详细设计与实现203.4.1“启动GE 客户端”模块203.4.2“站点视图切换”模块213.4.3“线路导乘服务”模块223.4.4“视图控制”模块243.4.5“站点信息”模块253.5 本章小结26第四章 系统展示274.1 界面截图演示274.2 本章小结30第五章 总结与展望31参考文献32致 谢33CONTENTSChapter1 Introduction11.1 Background Introduction11.1.1Based on Network GISGoogle Earth11.1.2 Implement of BRT Direction Service11.2 Introduction to Google Earth21.3 Introduction to COM Programming41.4 Introduction to Google Earth COM51.5 Introduction to Development Environment51.6 Structure of Article5Chapter2 System Design82.1 Requirement Analyzing82.1.1 User Requirement82.1.2 System Function Requirement82.2 System Framework Design92.3 System Model Design102.3.1 Launch Google Earth Client102.3.2 Switch Stop View112.3.3 Line Direction Service112.3.4 View Control112.3.5 Stop Information112.3.6 Exit Google Earth Client122.4 Summary13Chapter3 Detail Design and Implement143.1 User Interface Design143.1.1 Window Design143.1.2 Dialog Design153.2 Structural Data Design173.2.1 KML Grammar and File Structure173.2.2 Establishment of System File183.3 Google Earth Interface Design193.4 Detail Design and Implement of Function Modal203.4.1 Launch Google Earth Client203.4.2 Switch Stop View213.4.3 Line Direction Service223.4.4 View Control243.4.5 Stop Information253.5 Summary26Chapter4 System Display274.1 GUI Snapshot Display274.2 Summary30Summary and Outlook31References32Acknowledgements33厦门大学本科毕业论文 第一章 绪 论1.1 课题背景及意义1.1.1基于网络的GISGoogle Earth地理信息系统,简称GIS(Geographic Information System)。GIS是处理地理信息的系统。地理信息是指直接或间接与地球上的空间位置有关的信息。一般来说,GIS可定义为:“用于采集、存储、管理、处理、检索、分析和表达地理空间数据的计算机系统,是分析和处理海量地理数据的通用技术”。从GIS系统应用角度,可进一步定义为:“GIS由计算机系统、地理数据和用户组成,通过对地理数据的集成、存储、检索、操作和分析,生成并输出各种地理信息,从而为土地利用、资源评价与管理、环境监测、交通运输、经济建设、城市规划以及政府部门行政管理提供新的知识,为工程设计和规划、管理决策服务”1。在互联网上建立GIS系统,起源于“数字地球”这一理念的提出,可将全球的地理信息采集、汇总从而供用户使用。基于网络构建的GIS具有的重大优势在于全球地理信息共享及其所产生的巨大经济促进。当所有的互联网用户都能够基于一套统一的GIS开展各种工作,在很多情况下可以减少构建独立GIS的需要,公众化的GIS服务将促进GIS应用的普及并减少应用过程中的资金投入。除此之外,由于GIS所需要的计算资源和存储资源快速增加,网络化的GIS可以获得更加充足的资源,从而构建出单个组织无力完成的高阶GIS以及特殊的GIS应用。 Google Earth展现了基于互联网的GIS的美好前景。一个开放式的编程接口可以将海量的地理信息纳入到系统之中。Google Earth可以通过卫星、航拍等手段生成真实的、与地球物理信息完全匹配的地图信息2。1.1.2 BRT导乘服务应用快速公交系统(Bus Rapid Transit)简称BRT ,是一种介于快速轨道交通(Rapid Rail Transit,简称RRT)与常规公交(Normal Bus Transit,简称NBT)之间的新型公共客运系统,是一种大运量交通方式,通常也被人称作“地面上的地铁系统”。它是利用现代化公交技术配合智能交通和运营管理,开辟公交专用道路和建造新式公交车站,实现轨道交通运营服务,达到轻轨服务水准的一种独特的城市客运系统。BRT链接线是指与快速公交相衔接的特殊公交专线,它的主要功能是延伸快速公交高品质出行服务,方便乘客乘坐快速公交,并提供短途出行服务,把离快速公交站点有一定距离的乘客送到站点,或把出快速公交站点的乘客送到附近的目的地。链接线的运行时间跟BRT是同步的,它们的首末站就设在快速公交站点边,与附近的社区、学校、工业集中区相接。GIS技术同样可以在公共交通系统提供导乘服务方面的应用。诸多与公共交通系统有关的导乘服务系统大都是基于静态图片或电子地图,缺乏三维立体的直观感受。现实的处境,让用户迫切地需要一种对地理信息的表达更加直观的导乘服务系统。Google Earth 平台以及它身后强大的技术支持,完全可以满足实际用户的需求,可以更好地实现直观、动态的导乘服务。Google Earth平台支持二次开发,支持功能的扩展。虽然 Google Earth 的各功能模块已能满足日常应用,但是,当面对比较复杂的应用时,用户需要逐步扩展与这些功能模块的交互。于是,为了适应用户的不同需求,出现了可扩展的 Google Earth。Google 公司发布了基于组件技术的应用程序开发接口 Google Earth COM API,用户可基于不同的开发平台使用这些 API 接口来完成特定的开发任务。本系统是在Microsoft Visual C+ 6.0的开发平台下,调用Google Earth COM API 进行开发设计的。系统的目标是实现了对BRT的线路和站点的简单信息查询,并能在Google Earth 客户端上动态显示线路路径。用户可以通过本系统了解BRT的站点分布、线路走向,查询各站点链接线的实际情况。1.2 Google Earth 简介Google Earth(Google地球)是由Google公司开发的一款能提供全球主要城市卫星地图搜索服务的虚拟地球软件,它把航拍照片、卫星图像和GIS数据整合起来,形成一个可以运行在一定操作系统平台上也可以作为插件运行在网页中的三维地球模型。当下载安装Google Earth程序之后,只要在搜索框输入城市的名字,就可以出现该城市的卫星地图,并根据需要进行放大、缩小、定位等操作。Google Earth平台有三个主要的面板:Search面板,实现地名搜索和经纬度搜索;Places 面板,实现对地标的操作,可以实现添加地标,显示地标等操作;Layers面板,对不同的数据图层进行操作(数据图层,即含有某种类型地标信息的图层)。Google Earth具有很强的扩展功能,它为用户提供了两种扩展接口,一种是KML文件形式,另一种是组件(COM)API形式,来应对各种实际的复杂情况。KML全称是Keyhole Markup Language,是一个基于XML语法和文件格式的文件,用来描述和保存地理信息如点、线、图片、折线并在Google Earth客户端之中显示,KML提供以下功能: 指定一个地点的图标和标注来区分每一个地点 为每一个地物定义相应的视角 使用指定到屏幕或地理位置的图片标注 定义地物的显示样式 为标注指定基于简单HTML语法的描述,支持超级链接和图片的显示 使用树形目录管理地物 从本地或远程的网络地址动态的加载KML文件 当Google Earth客户端视图变化时,自动将视图信息发送给指定的源服务器并从服务器获取相关的标注信息Google Earth 采用C/S(Client/Server)的模式,通过其服务器存储全球的地貌影响与3D数据,以及地标(Placemark)等地图相关数据。用户在客户端向Google Earth 服务器发送请求,服务器响应并分析请求,最后返回用户指定区域的地图数据以实现地图的加载。1.3 COM 编程结构简介Google Earth API是基于组件(COM)技术的。Google Earth COM API 是Google Earth组件的公用接口。COM技术是基于面向对象编程思想的,COM包括对象和接口两部分。COM的对象和C+中的对象概念类似。对象是类的实例,而类是经过封装的一个数据结构。接口是一组与对象相关的函数集合。这些函数通常被接口成员函数,函数名一般以”I”为前缀。组件包含对象,而对象包含接口。外部程序通过调用组件中的对象的接口,利用组件的功能。每个组件都有一个128位的对象标识符CLSID。CLSID在全球范围内是唯一的,这样可以避免组件冲突。组件的每个接口已拥有一个128位的全局唯一的标识符GUID。用户通过GUID获得接口的指针,进而调用接口成员函数。 二进制特性是组件最大的特点。组件技术独立于任何编程语言,建立在二进制代码的基础上。用户可以通过任何语言来创建一个组件。这种特性使得不同程序之间的调用更加方便。此外,组件还具有接口不变性、继承性和多态性等特点。Microsoft Windows操作平台提供了有关COM的一系列代码,这一系列代码组成了COM库,以.dll文件的形式存在。COM库实现了很多功能,用户通过调用COM库的函数来完成组件的相关操作。一般用户创建一个组件对象,进而调用组件的接口成员函数,最后释放组件对象,整个过程都要用到COM库。用户首先调用CoInitialize()函数初始化COM库。而后在注册表中,COM库根据唯一标识的组件名称查找到组件对象标识符CLSID。根据获得的CLSID,COM库函数CoGetClassObject()创建对象的类厂。进而由类厂完成组件对象的创建,并返回对象的指针。用户不再使用组件资源时,COM库调用CoUninitialize()函数释放资源。整个组件调用流程,如图1-1所示。CoInitialize() 初始化COM库COM 库查找组件对象的 CLSIDCOM 库函数 CoGetClassObject() 创建类厂类厂创建组件对象用户调用组件对象COM 库函数 CoUninitialize() 释放对象资源并关闭 COM 库图11用户调用COM组件流程1.4 Google Earth COM API简介Google Earth COM API是Google Earth组件的公用接口。Google Earth COM API 类库能使用户在各种外部程序中调用Google Earth的功能。Google Earth COM API 是一个包括11个类的类库,这些类都实现了IDispatch接口。IDispatch接口和COM中的自动化技术相关。本系统的编程开发依赖于MFC开发平台。MFC开发环境为了支持自动化技术,提供了一个类COleDispatchDrive类。在MFC中导入的Google Earth COM API 类库中的类,实际上都是COleDispatchDriver类的派生类。COleDispatchDriver类的几个重要函数是程序中应用到的,CreateDispatch()成员函数通过组件的CLSID值来创建组件对象,并返回该对象的指针;AttackDispatch()成员函数可以把当前COleDispatchDriver类的对象和其他自动化对象联系起来;DetachDispatch()函数和AttachDispathc()函数的功能相反;ReleaseDispatch()函数用来释放所创建的对象。用户通过COleDispatchDriver类的函数创建了Google Earth COM API类库。该类库的11个类中,IApplicationGE类最为重要,其他10个类的使用都会涉及到它的属性或函数。下表是对Google Earth COM API 类库的简单介绍:表 11 Google Earth COM API 类库的类IApplicationGE入口类,通过该类,用户进一步调用其他类ICameraInfoGE相机类,通过该类,用户可以调整观看当前视图的方式IFeatureGE要素类,通过该类,用户可以控制要素的属性IFeatureCollectionGE要素集合类,通过该类,用户进一步获取要素ITourControllerGETour面板类,通过该类,用户可以动态播放当前的要素ISearchControllerGESearch面板类,通过该类,用户可以完成相应的搜索功能IViewExtentsGE视口类,通过该类,用户可以控制当前视口IPointOnTerrainGE地理坐标点类,通过该类,获取屏幕点的地理坐标1.5开发环境概述本系统开发使用的IDE工具是VC+ 6.0,界面开发基于MFC框架。MFC,即微软基础类(Microsoft Foundation Classes),随微软Visual C+ 开发工具发布,是在C+环境下编写应用程序的一个框架和引擎MFC中的各种类结合起来构成了一个应用程序框架,意义在于能让程序员在此基础上来建立Windows下的应用程序。总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C+提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件。简而言之,MFC把传统的Windows编程规范中的大多数内容封装成为各种类,使程序员从繁杂的编程中解脱出来,提高了编程和代码效率。1.6本文组织结构本文共分为五章,主要介绍了项目的开发背景、系统总体设计、详细实现过程,系统的结果展示以及对毕业设计的总结和对未来的展望。本文的结构和各章的主要内容如下:第一章:绪论,主要阐述本系统的开发背景;并对本系统和本文涉及到的相关平台和技术作简要的基础知识介绍,并对本文的结构进行概述。第二章:系统总体设计,主要阐述本系统的框架和基本功能。首先,对系统的需求进行简要的分析说明。然后,针对系统各个模块的功能设计做简要介绍。第三章:系统详细设计与实现,详细介绍本系统各个功能模块的设计与代码实现。首先,对系统的界面设计和结构化数据文件设计作详细的说明。然后,对系统的各个主要功能模块的设计做较详细的介绍,并列出部分起主要作用的系统代码。第四章:系统展示,这一章节中,通过截图的形式展示系统的开发成果。第五章:总结与展望,对毕业设计和本文进行概述和总结,并提出本系统的不足和进一步改进的计划。 - 35 -厦门大学本科毕业论文第二章 系统总体设计 良好的系统总体设计是一个项目成功、顺利开发的基础和开端。为待开发的系统设计一个优秀的系统设计框架,是保证系统的功能全面、可行以及具有良好的可扩展性的必要条件。本章主要分析了基于Google Earth 的BRT导乘系统的需求,对其进行了总体设计,并将系统划分出多个功能子模块。2.1 需求分析2.1.1 用户需求用户在系统弹出的对话框中点击按钮,能切换客户端的视图,能在系统界面中浏览各个BRT站点的卫星视图,获知各个BRT站点的分布。用户在系统弹出的对话框的列表中选择某个BRT站点,系统列出可能的路线选择方案。用户作出选择,而后系统引领用户从起始站点到达目的BRT站点,享受直观、便捷的导乘服务。用户点击系统界面的按钮,能左移、右移、上移、下移、放大、缩小 Google Earth 客户端的视图界面。用户直接单击站点所在位置,通过弹出的对话框获知此站点的链接车信息。2.1.2 系统功能需求应对厦门BRT复杂的站点分布和线路走向,实现简单的导乘功能。当用户调用“启动GE 客户端”功能时,本系统调用COM组件来创建客户端对象,启动 Google Earth 客户端。当用户调用“站点视图切换”功能时,系统调用Google Earth 客户端,使客户端视图定位到厦门;而后,系统弹出的对话框让用户能便捷地切换客户端的视图,浏览各个BRT站点的分布位置。当用户调用“线路导乘服务”功能时,客户端的视图被定位到起始站点。弹出的“线路导乘服务”对话框提供了从起始站点到目的地BRT站点的信息。通过用户在对话框中做出的选择,系统显示出可行的系统导乘路线方案;而后引导用户从起始站点到达目的地BRT站点。 当用户调用“视图控制”功能时,本系统支持客户端视图中心的左移、右移、上移、下移、放大、缩小。当用户单击系统界面某处地标时,系统弹出对话框,显示相关信息。当用户调用“退出GE 客户端”功能时,系统调用COM组件,退出Google Earth 客户端。图21 BRT导乘系统用例图2.2 系统框架设计本系统采用 Visual C+ 6.0的MFC AppWizard提供的应用程序框架:单文档程序框架(SDI),产生的应用程序使用了标准化的结构。单文挡应用程序复杂度适中,虽然一次只能处理一个文档,但是已能满足本系统的工程需要。框架窗口为应用程序的用户界面提供结构框架,它是应用程序的主窗口,负责管理其包容的窗口,一个应用程序的最顶层的框架窗口是应用程序启动时创建的第一个窗口。MFC通过创建框架类把界面管理工作独立出来。框架窗口为应用程序的用户界面提供结构框架,它是应用程序的主窗口,负责管理其包容的窗口。一个应用程序启动时会创建一个最顶层的框架窗口。工程中的视图类和文档是紧密相连的,用户各种各样的输入都可以由视图类来响应、处理。这种文档和视图的结合,称为“文档/视图结构”机制,是MFC应用程序框架的核心,它可以进行消息的处理、文档的格式话及文档数据的可视化处理等:它不但使文档数据和视图分离,而且能简化应用程序并减少代码冗余。在MFC中,文档是真正的数据载体,视图是文档的显示界面,对应同一个文档,可能存在多个视图界面。2.3 系统模块设计良好的模块设计方案是保证系统具有结构稳定性、可扩展性、可复用性的基础。本系统GE_BRT根据功能划分为5个模块,即“启动GE 客户端”模块、“站点视图切换”模块、“线路导乘服务”模块、“视图控制”模块、“退出GE 客户端”模块,各个模块之间相互独立,低耦合。2.3.1“启动GE 客户端”模块介绍MFC平台开发中,系统根据COleDispatchDriver类的方法CreateDispatch()根据CLSID来创建对象,实现Google Earth客户端的启动。Google Earth 客户端启动后,系统通过GetMainHwnd()函数获取主窗口句柄,对窗口的大小和位置进行设置。2.3.2“站点视图切换”模块介绍在调用本模块前,需先向Google Earth客户端中加载本地的结构化数据KML文件,此用例通过CGE_BRTView视图类中的OnOpen()来实现。调用“站点视图切换”模块后,IApplicationGE类的GetFeatureByName()函数获取客户端中的KML文件;然后通过IFeatureGE类的GetChinldren()函数和IFeatureCollectionGE类的GetCount()函数获取文件夹中的文件数;而后用累加得到文件夹中的地标文件总数创建一个地标数组,再调用IApplicationGE类的SetFeatureView()函数显示地标数组中的地标。2.3.3“线路导乘服务”模块介绍该模块的功能将相应的KML文件从指定的路径传入系统,供后续处理使用。并将视图中心定位到起始站点所在的区域。该模块的功能通过新键一个对话框类开始。子功能一:新建一个“线路导乘服务”对话框。通过列表框控件ListBox显示BRT站点信息。子功能二:用户双击已经关联了响应双击事件函数OnDblclklist1()的列表框中的列表项,对话框的文本框中显示出相应的路线。子功能三:对话框按钮被激发后,系统调用Google Earth 客户端动态地播放从起始站点到目的地BRT站点的线路。此功能通过ItourControllerGE的相关属性和方法来实现。2.3.4“视图控制”模块介绍该功能模块让用户能在本系统中方便地控制 Google Earth 客户端的视图,本系统提供了视图的左移、右移、上移、下移、放大、缩小功能.这些功能通过视图类CGE_BRTView类中的OnLeft()、OnRight()、OnUp()、OnDown()、OnLarge()、OnSmall()等函数来实现。2.3.5“站点信息”模块介绍用户在系统界面上的单击事件,将传递给系统鼠标指针所在位置的坐标信息。系统只需要将该坐标转换为Google Earth所能识别的坐标。因此,需要一个坐标转换函数CordChange()来实现此功能。在响应对话框之前,需要对用户单击的位置进行判断。本模块通过左键单击事件来响应对话框的弹出,并把从TXT文本读取的字符串显示在文本框中。2.3.6“退出GE 客户端”模块介绍此模块通过调用关联函数OnExit()来完成Google Earth 客户端的关闭。图22,是系统总体设计阶段的流程图。启动GE客户端视图控制浏览个站点分布查询导乘线路左移、右移、上移、下移、放大、缩小客户端视图站点视图切换退出GE客户端线路导乘服务GE线路导乘站点信息显示图22 系统总体设计流程图2.4 本章小结本章说明了系统总体设计阶段的相关工作。首先,描述了本系统的实际用户需求和系统功能需求;其次,对系统的单文挡应用程序框架作了简要描述;最后,针对系统各个模块的功能作概要设计。 厦门大学本科毕业论文第三章 系统详细设计与实现系统详细设计是总体设计的细化阶段,它包含用户界面设计、结构化数据文件设计和处理过程的设计,实现了每个模块内部的详细执行流程。3.1 系统界面设计本系统建立在基于单文挡的 MFC 框架之上。本系统为菜单栏增加了主要功能菜单和视图功能菜单。为添加的菜单项关联函数到CGE_BRTView类。图31是本系统运行后的初始界面.图31 初始界面3.1.1 窗口界面设计下表展示了主窗口中各功能控件名称、控件ID以及它们和视图类中的函数关联。表 31 主要功能菜单的控件名称、ID及关联函数 控件名称控件ID控件关联函数启动GE客户端IDC_STARTOnStart()站点视图切换IDC_CHANGEOnChange()线路导乘服务IDC_STATIONOnStation()退出GE客户端IDC_EXITOnExit()表 32 视图操作菜单的控件名称、ID及关联函数控件名称控件ID控件关联函数左移IDM_LEFTOnLeft()右移IDM_RIGHTOnRight()上移IDM_UPOnUp()下移IDM_DOWNOnDown()放大IDM_LARGEOnLarge()缩小IDM_SMALLOnSmall()3.1.2 对话框界面设计新建一个“站点视图切换”的对话框,ID为IDD_CHANGEDLG,关联了一个对话框类CCHANGEDLG。新建一个ID为IDC_CHANGEBTN的Button按钮控件,并为其关联函数OnChangeBtn(),用来调用视图切换功能。图 32 IDD_CHANGEDLG对话框新建一个“线路导乘服务”对话框,IDD_DIALOG2。为其关联CCSTATION类。表33,罗列了对话框中各控件的ID、关联变量类型/函数。表 33 各控件的ID、关联变量类型/函数控件ID关联变量类型/函数IDC_LIST1CListBoxIDC_EDIT1CEditIDOKOnOk()图33,即为“线路导乘服务”对话框的。为列表框关联一个响应双击事件的函数OnDblclkList1(),用于根据用户在列表框的选择,在文本框中显示出相应的路线。图 33 “ 线路导乘服务” 对话框新建一个ID为IDD_DLALOG3的对话框。当用户在客户端视图的BRT站点所在位置单击时,系统会弹出BRT站点信息对话框,用于描述该站点的链接车的交通信息情况。表34,列出了该话框中各控件的ID及关联的变量类型。表 34 “BRT站点信息”对话框各控件的ID、关联变量类型IDD_DIALOG3CINFOSIDC_EDIT1CStringIDC_SITECstring图 34 “BRT站点信息” 对话框3.2 结构化数据设计本系统通过 Google Earth COM API操作处理的矢量数据主要来源于从远程 Google Earth服务器发送到客户端的已有的矢量数据。另外,本系统通过加载包含用于描述目标区域的线路的地标信息以及站点的地标信息的KML文件,也能实现特定的功能。系统数据设计,主要是结构化数据文件KML文件的设计。3.2.1 KML 语法和文件结构KML文件采用了XML文件的语法和文件结构,它基于tag的表达方式,用来描述Google Earth地标信息如点、线、图片、折线、颜色、图标、视角等。用户可以通过KML文件在Google Earth客户端中显示丰富的内容。表34,是KML常用的一些tag。表 35 KML文件常用tag来指定目录(floder)、地名标注(placemark)、图片标注(overlay)或其他标记的名称使用描述元素给标注附加更多的关于该标注的信息单一标签,的子元素.描述当前视点的海拔,以米为单位单一标签,的子元素,当前视角在水平面上的投影和正北的夹角单一标签,的子元素。 指定从-90到90的纬度值单一标签,的子元素. 指定从-180到180的经度值复合标签,为标注或目录定义观测者坐标(视点) 用来设置标注在第一次被Google Earth打开时的默认显示属性单一标签,的子标签. 代表视点到指定点的角度(视角)3.2.2系统数据文件的建立创建一个名为xiamen.kml的文件。用于描述各个BRT站点的地标信息。创建一个名为station.kml的文件。用于描述起始站点到各个目的地站点的线路的地标信息。Google Earth的tag具有明显的树状层次关系。上层的tag可以包含下层的tag,反之则不能。同一层次的tag可以并列存在于KML文件中。KML结构化数据文件的编写,参照如下tag嵌套原则 3.3 Google Earth接口设计设置接口以调用Google Earth COM API 中的函数和属性。在VC+6.0导入 Google Earth API 中的所有类,然后声明 CLSID唯一对象常量,初始化COM库,并定义一个 IApplicationGE类的对象m_geApplication。在CGE_BRTView类中定义如下公有的成员变量。public:CString ReadFile(CString pathname);BOOL InOrOut(double pointx,double pointy,double focusx,double focusy);double* CordChange(CPoint point);BOOL isPlay;int tourOrAnimate;IApplicationGE m_geApplication;IFeatureGE m_geTempFile;IAnimationControllerGE m_geAnimate;ITourControllerGE m_geTour;IViewExtentsGE m_geExtents;ICameraInfoGE m_geCamera;BOOL m_active;double geLeft,geRight,geTop,geBottom;double geRange;virtual CGE_BRTView();3.4 功能模块详细设计与实现3.4.1“启动GE 客户端”模块在Visual C+ 环境下的MFC开发中,用户通过界面按钮激发按钮关联方法OnStart()。在方法中,COleDispatchDriver类(IApplicationGE等COM API库类是它的派生类)的方法CreateDispatch()根据传入的CLSID值来创建组件对象,实现Google Earth启动。而后使用在上一节 Google Earth接口设置中定义的变量m_geApplication来调用父类COleDispatchDriver类的方法CreateDispatch()创建IApplicationGE类的实例。IsInitialized()IsOnline()CreateDispatch()程序启动成功未初始化则继续判断初始化和连接操作都未完成,则创建客户端已初始化已连接上服务器图34 启动客户端实例流程图3.4.2“站点视图切换”模块IFeatureGE类主要用来协助获取Google Earth客户端中的数据。本模块的视图切换功能,就是基于客户端本地数据的获取。首先,在CGE_BRTView类中添加OnChange()函数,添加如下代码。这段代码先弹出对话框,然后获取文件夹中的地标数目并创建要素数组,最后启动定时器OnTimer()。然后,在CGE_BRTView类的OnTimer()函数中添加如下代码。实现根据前面所创建的要素数组,执行具体视图切换的操作。OnChange()OnTimer()对话框GE客户端切换视图图35 “站点视图切换”模块流程图3.4.3“线路导乘服务”模块当用户调用该功能模块时,系统首先将视图移动到起始站点的位置,而后弹出“线路导乘服务”对话框,该对话框为用户提供了起始站点到各个BRT站点的线路方案。通过用户在对话框中做出的选择,最后系统引领用户从起始站点到达目的地站点。“线路导乘服务”模块的功能具体在OnStation()函数中实现,代码如下所示:void CGE_BRTView:OnStation() / TODO: Add your command handler code hereIFeatureGE gFeature,sFeature;IFeatureGE* ssFeature;IFeatureCollectionGE gCollect,sCollect;int ssNum;int i;/默认文件打开目录为临时文件夹m_geTempFile.Highlight();/打开包括火车站站相关信息的KML文件if(NULL=m_geApplication.GetFeatureByName(station.kml)m_geApplication.OpenKmlFile(C:BRTstation.kml,1);/获取打开的KML文件要素sFeature.AttachDispatch

温馨提示

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

评论

0/150

提交评论