1、 本 科 毕 业 论 文 基于 GOOGLE EARTH COM API 技术的 上海地铁查询系统 Shanghai Subway Inquiry System Based on Technology of GOOGLE EARTH COM API 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 年 月 摘 要 2010 年 ,举世瞩目的盛事 上海世 界博览会即将到来。为了迎接这一盛事,上海市正在加紧各方面的筹备 和建设 。而 届时庞大的游客量,将 会 是上海地铁交通系统 不可回避的 挑战 。因此, 上海地铁交通网络 正在扩展建设,以迎接世博会 。
2、但是, 日渐 复杂的地铁网络,也 给游客出行带来 更多的 不便 ,上海地铁查询系统应运而生。 本系统采用“自顶向下,逐步求精” 的 面向过程的结构化 设计方 法,运用 MFC技术, 调用 GOOGLE EARTH COM API 中的类和函数,进行 设计。 系统开发过程采用软件工程的设计流程,经历了需求分析,系统概要设计,系统详细设计,编码和测试多个阶段 ,最终形成 这一能够 模拟上海地铁网络并提供 地铁 线路查询的系统 。 系统选择 上海地铁 极具代表性的四条线路 : 2 号, 3 号, 4 号以及 8 号线, 构成具有 一定复杂 度 的 地铁 交通网络。 系统采用线路逻辑归类的方法 化解线
3、路复杂度 ,针对不同复杂性进行 逐一 解决。 系统设计采用两层架构:上层的界面呈现层,需使用 MFC 技术进行系统界面的交互和数据文件的操作,并应用 GOOGLE EARTH COM API 技术对地标数据进行构建和呈现;底层的逻辑应 用层,针对上层获取的站点名称信息及数据文件信息,进行处理,通过复杂的字符串操作,依据线路逻辑,进行路径变量生成,会送给上层供界面呈现应用。 系统能够 采集用户输入 的 起始 站点 与终止站点信息,针对不同的复杂性, 计算出 若干 适 合 线路 , 供用户 根据实际复杂多变的需求进行 选择,并把 客户 选择的线路在 Google Earth 平台上用线路地标的形式
4、标注,动态呈现给客户 。系统界面操作简便, 线路呈现 过程 直观明了。 本文采用系统软件工程设计的流程进行 章节 编排,分为绪论,需求说明,系统概要设计,系统详细设计,系统编码以及测试,并对产品的 生 成和操作流程进行介绍。最后对整个开发过程作一个总结。 关键词 : Google Earth ;COM ;面向 过程 ;软件工程 Abstract Shanghai World Expo in 2010 is on its road, which is a event around the world. For this event, the Shanghai City is making all
5、 the preparations. And then the Shanghai subway web will have to face the challenges of traffic for huge numbers of tourists. So The Shanghai Subway System is improved and exceeded. However, more and more complex subway web brings a little convenience. So The Shanghai Subway Inquiry System is “born”
6、 to respond to large and complex transportation network of Shanghai subway, and bring travel convenience to tourists. The Shanghai Subway Inquiry system uses a “top-down, stepwise refinement“ process-oriented method of structured design methodology, using MFC technology and calling GOOGLE EARTH COM
7、API in the process of designing. The process of system development using software engineering design process, includes the demand analysis stage, the system overall design stage, the system detailed design stage, the coding and final testing stage. This system chooses four standard lines, which make
8、 a certain complexity web. It use a category by logic complexity and resolve it.This system is divided to two parts:Firstly,its the presentation part,which resolve the presentation operations and need to call the GOOGLE EARTH COM API;Secondly,its the logic lines part,which make the line resolutions
9、and return them to the first part. It can achieve that firstly it captures user input station names and secondly calculates several routes for the user to choose and marks the lines and stations information in the view window of Google Earth Stage for the user when one line is selected in the list b
10、ox. System interface is simple and very good visibility. By the design of system software engineering scheduling process , in this paper chapters is divided into introduction, demand instruction, the system overall design, system detailed design, system coding and testing, and the composition of pro
11、duct introduction and operational processes. Key words: Google Earth; COM; process-oriented method; software engineering 目录 第一章 绪论 .1 1.1 项目技术背景 .1 1.2 Google Earth 基础知识 简介 . 2 1.3 COM 简介 . . 4 1.4 GOOGLE EARTH COM API 简介 . 5 1.5 本章小结 . . 6 第二章 系统需求说明 .7 2.1 用户需求 . 7 2.2 系统功能需求 . .7 2.3 本章小结 . 8 第三章
12、 系统概要设 计 .9 3.1 系统说明 . .9 3.2 模块划分 . .9 3.2.1“启动 Google Earth”模块介绍 . .9 3.2.2“初始化视图”模块介绍 .10 3.2.3“数据文件处理”模块介绍 .10 3.2.4“交点判断”模块介绍 .10 3.2.5“线路分析”模块介绍 .10 3.2.6 “线路列表显示”模块介绍 .10 3.2.7“所选线路地标上显示”模块介绍 . 11 3.3 本章小结 . 11 第四章 系统详细设计 .12 4.1 系统界面设计 . 12 4.2 系统数据设计 .13 4.2.1 地标信息的采集 .13 4.2.2 五个数据文件的设计 .1
13、5 4.3 功能模块详细设计 . 19 4.3.1“启动 Google Earth”模块详细介绍 .20 4.3.2“初始化视图”模块详细介绍 .21 4.3.3“数据文件处理”模块详细介绍 .21 4.3.4 线路构建三大模块详细介绍 .22 4.3.5 “所选线路地标上显示”模块详细介绍 .32 4.4 本章小结 . 32 第五章 程序发布和系统操作演示 .33 5.1 程序发布 . 33 5.2 系统 使用及操作 . 33 5.3 本章小结 . 36 第六章 结束语 .37 6.1 系统总结 . 37 6.2 开发心得 . 37 参考 文献 .39 附录 .41 致谢 . .42 Dir
14、ectory Chapter 1 Introduction. 1 1.1 Google Earth Introduction .1 1.2 Google Earth Basis Introdution .2 1.3 COM Introduction . 4 1.4 GOOGLE EARTH COM API Introduction . .5 1.5 Summary . 6 Chapter 2 Requirement Analysis of System. 7 2.1 Requirement of User .7 2.2 Requirement of System Function . .7 2
15、.3 Summary . .8 Chapter 3 Overall Design of System. 9 3.1 Description of System . .9 3.2 Modules Division . .9 3.2.1 Description of “Run Google Earth” Module . 9 3.2.2 Description of “Initialize the view” Module. 9 3.2.3 Description of “Data files Resolved” Module . 10 3.2.4 Description of “Judgemen
16、t of Crossing Points” Module. 10 3.2.5 Description of “Analysis of Lines” Module . 10 3.2.6 Description of “Performance of Lines List” Module. 10 3.2.7 Description of “Performance of Selected Place Marks” Module . 11 3.3 Summary .11 Chapter 4 Detailed Design of System . 12 4.1 Design of Users Interf
17、ace . .12 4.2 Detailed Design of Data . .13 4.2.1 Collection of Place Information . 15 4.2.2 Detailed Design of Five Data Files . 15 4.3 Detailed Design of Function Modules . .19 4.3.1 Detailed Design of “Run Google Earth” Module . 20 4.3.2 Detailed Design of “Initialize the view” Module . 21 4.3.3
18、Detailed Design of “Data files Resolved” Module . 21 4.3.4 Detailed Design of “Construction of the wanted Lines” Module .22 4.3.5 Detailed Design of “Performance of Selected Place Marks” Module . . 32 4.4 Summary .32 Chapter 5 Production and Operation of the System Product . 33 5.1 Production of the
19、 System Product .33 5.2 Operation of the System Product .33 5.3 Summary .36 Chapter 6 Conclusion . . 37 6.1 Summarize the System . .37 6.2 knowledge gained in development process . .37 References . 39 Appendix .41 Acknowledge . 42 基于 GOOGLE EARTH COM API 技术的 上海地铁线路查询系统 1 第一章 绪论 1.1 项目技术背景 本系统是用 Goog
20、le Earth 平台,来实现地铁线路地表的展示。 作为 由 Google 公司开发 的 一款 强大的 虚拟地球 的 软件, Google Earth 把航拍照片、卫星图像和 GIS 数据整合起来,形成一个可以运行在一定操作系统平台上也可以作为插件运行在网页中的三维地球模型。借助 Google Earth 平台 ,用户足不出户就可以遍览全球,丰富的数据和强大的数据分析能力,带给客户全方位的便利。 图 1-1 是 Google Earth 单机版的启动界面 。 图 1-1 Google Earth 单机版 Google Earth 提供的功能有:查找地标信息,查找线路,上传地标信息,甚至发送邮件
21、,测算距离等等。 Google Earth 拥有广大的 Fans,他们设计了大量的基于 GOOGLE EARTH COM API 技术的 上海地铁线路查询系统 2 二次开发产品,其中包括许多精彩的小游戏。 Google Earth 平台上, 在视图区域中可以通过视角转换图标实现不同视角的观测效果。 平台有三个主要的面板: Search 面板,实现地名搜索和经纬度搜索; Places 面板,实现对地标的操作,可以实现 添加地标,显示地标等操作; Layers 面板,对不同的数据图层 进行操作(数据图层,即含有某种类型地标信息的图层,例如你可以让“ 运输工具 ” 下的“飞机场” 项显示出来)。 G
22、oogle Earth 的强大在于,它提供了很强的 扩展功能, 有两种方式 ,即进行KML 文件设计,另一种是 Google Earth COM API 的程序开发,来应对各种实际的复杂情况。 KML 是一个基于 XML 语法和文件格式的文件,它不仅可以记载地标信息,也可以保存各种多媒体文件信息,甚至游戏场景的设计都可以用 KML 文件来实现,而客户应用时,只需 加载相应的 KML 文件。 KML 的强大技术实际上是依托于 XML 及类似网页数据文件技术的普及和发展, KML 能够实现许多令人称道的强大功能,除了实现动画视频及交互式操作外,还可以在上面做各种应用, 网上大量的 Google E
23、arth 平台上的开发都是使用 KML 技术, 本系统则是在 Microsoft Visual C+6.0 的开发平台下,采用 Google Earth COM API 进行开发设计的。 1.2 Google Earth 基础知识简介 Google Earth 所显示的底片是卫星遥感影像,这些影像数据是卫星影像和航拍数 据的整合。由于数据采集方式存在差异,根据一定的采集中的分辨率差值,影像数据分为多个层次。高分辨率的影像可以达到分米级。 Google Earth 强大的服务器是影像数据信息和其他属性信息的仓库,存储量达到 TB 级。 Google Earth 视图中 ,用户向下俯视地面,显示的
24、影像图取决于视点、视高、视场角和视底点,如 1-2 图所示。当你改变视高时,当然,视图显示的范围随着变大。平移是地底点时,视图则对影像进行裁减,将对应的区域的影像显示到视图中去。 基于 GOOGLE EARTH COM API 技术的 上海地铁线路查询系统 3 图 1 2 Goole Earth 视图展示的模拟投影 图 做个测算:设视点为 E,视高为 h,视底点坐标为( x,y) ,视场角已知,根据等比定理,就可以计算出视图中所要覆盖的范围了的地理坐标信息了。当然,视高也决定了要加载的影像的层次的分辨率,因此用户想看到更多的区域,就要调高视高,若要看清晰某区域,则调低视高。 影像地图本身并不是
25、直接卫星拍摄得到的,而是基于这些影像,结合航空摄影的数据融合而得到的。影像地图目前最重要的产品是数字正射影像( DOM)和数字栅格地图( DRG)、数字线划地图( DLG)、数字高程模型( DEM)合称为4D 技术。数字正射影像具有信息丰富、 影像直观、真实景观与测绘精度兼有,以及成图快、 成本低、用途广、使用方便等特点。 影像地图中很重要的概念是分辨率,指像素所代表的地面范围的大小,或者地面物体能分辨的最小单元。分辨率大小取决于视高和摄影机的焦距。即 Rg = Rs*f/H (1-1) 其中 Rg 为分辨率,单位为线对 /米; H 为视高,单位米; Rs 为系统分辨率,单位线对 /毫米; f 为摄影机焦距,单位毫米。 影像数据分幅存放,每幅图像都有不同的覆盖范围和分辨率,而视图往往是跨多幅图像的,这时就是图幅拼接的问题 了。