基于VC++的电子导航系统_毕业论文(50页).doc
《基于VC++的电子导航系统_毕业论文(50页).doc》由会员分享,可在线阅读,更多相关《基于VC++的电子导航系统_毕业论文(50页).doc(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-基于VC+的电子导航系统_毕业论文-第 44 页毕业设计说明书论文基于VC+的电子导航系统摘 要地理信息系统(GIS)自二十世纪六十年代开始发展至今,已经逐渐成为一门成熟的技术,其在交通、旅游、环境等诸多领域的应用使地理信息系统被越来越多的用户所接受,成为人们工作、生活中一个强有力的工具。本设计以VC+为开发平台,以MapX控件为图形平台,以MSComm控件为通信平台,设计具有电子导航的基本功能(如地图的放大缩小、全图、漫游等)、自定义工具测量折线距离、图层控制、最优路径分析、GPS导航等功能的GIS应用软件。本文介绍了电子导航系统设计的背景及设计中需要用到的MapX控件、VC+、MSCom
2、m控件,分析了GIS开发三种实现方式,提出系统设计方案:集成二次开发。在集成二次开发的基础上,首先实现了地图的导入、地图放大缩小及图层控制等电子导航的基本功能,其次以测量折线距离为例实现了自定义工具的功能,再次介绍了最优路径分析,最后实现GPS导航功能。关键词:电子导航;GIS开发;VC+;MapX控件;最优路径Electronic Navigation Systems Based On VC+AbstractSince the beginning of 1960s,Geographic Information System (GIS) has gradually become a matur
3、e technology. In transportation, tourism, environment and many other fields of application GIS has been accepted by an increasing number of users for the people working and living as a powerful tool.The design used VC + + as a development platform, MapX control as a graphics platform, MSComm control
4、 as a communications platform.It has devised the GIS applications such as electronic navigation Basic functions(zoom control,the whole map, Roaming, for example), Calculating the distance, Layer Control, Analysis of the optimal path and GPS Navigation Features.This article has described the design o
5、f electronic navigation systems background, MapX control,VC+ and MSComm control. It has analyzed GIS development in three ways and proposed system design:Secondary development of integrated. First of all, It has realized the basic functions of GIS such as the insert map,Layer Control, Zoom control i
6、n the integrated development of the basis of secondary. Second, it has used a custom tool as an example to measure the distance, and then it has introduced the analysis of the optimal path. Finally, it has realized GPS navigation.Key words: Electronic navigation; GIS Development;VC+; MapX control; O
7、ptimal path目 录摘 要IAbstractII第一章 引 言11.1设计背景11.2系统设计方案41.2.1应用型GIS开发的三种实现方式41.2.2三种实现方式的分析5第二章 电子导航基本功能在VC+中的实现72.1利用MapX实现GIS基本功能72.1.1将MapX支持类库加入工程72.1.2地图的显示72.2使用地图标准工具92.3图层控制工具11第三章 自定义工具测量折线距离133.1创建用户自定义工具133.2编程实现自定义工具的行为143.3调用自定义工具16第四章 最优路径分析184.1实现过程及其算法分析184.2查询最短路径25第五章 GPS导航功能305.1定位信
8、息的接收325.2提取定位数据34总 结39参考文献40附录:源程序42CVCDZDHView类源程序42致 谢52第一章 引 言1.1 设计背景学科发展走向综合是一个普遍的趋势,比如全球定位系统(GPS)与地理信息系统(GIS)的集成应用。目前用于GIS应用软件开发的模式有很多,其中组件式GIS软件开发是目前较为流行、高效、快速的开发模式。随着计算机技术的飞速发展,GIS得到了广泛的重视和应用,GPS技术也已深入到各行各业,GPS与GIS的集成具有广泛的应用需求,它可以实现GPS导航信息在地图上的可视化、一体化和集成化,能够在地图上实时动态地跟踪目标和显示地理方位。VC+是目前较流行的可视化
9、开发编程工具之一,支持面向对象和事件驱动机制的程序开发,利用其强大的集成开发环境,程序员仅需要较少代码即可生成标准的“Windows” 界面,并且能在VC开发平台下可以较为方便的集成组件。本文主要介绍利用MapX控件,采用VC+编程语言进行组件式GIS应用软件开发的主要过程和基本模式,来实现电子导航的目的。MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX控件产品。由于它是一种基于Windows操作系统的标准控件,因而能支持绝大多数标准的可视化开发环境如Visual C+、Visual Basic、Delphi、PowerBuilder等。编程人员在开发过程中可以选用
10、自己最熟悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。利用MapX,能够简单快速地在企业应用中嵌入地图化功能,增强企业应用的空间分析能力,实现企业应用的增值。MapX采用基于MapInfo Professional的相同的地图化技术,可以实现MapInfo Professional具有的绝大部分地图编辑和空间分析功能。而且,MapX提供了各种工具、属性和方法,实现这些功能是非常容易的1。MapX为开发人员提供了一个快速、易用、功能强大的地图化组件。在VB,Delphi,PowerBuilder,VC等可视化开发环境中,只需在设计阶段将MapX控件放入窗体
11、中,并对其进行编程,设置属性或调用方法或相应事件,即可实现数据可视化,专题分析,地理查询,地理编码等丰富的地图信息系统功能。 MapX定义了一个类体系,以有效的组织图形元素,图层,属性数据等对象。MapX的主要功能包括:显示MapInfo格式的地图;对地图进行放大、缩小、漫游、选择等操作;专题地图;图层控制;数据绑定;动态图层和用户绘图图层;生成和编辑地图对象;简单地理查询:边界查询,地址查询。VC+是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用C+的一个开发平台。有些软件就是这个编出来的,另外还有VB、VF,只是使用不同语言。但是,VC+是Windows平台上的C+编程环境,
12、学习VC要了解很多Windows平台的特性并且还要掌握MFC、ALT、COM等的知识。Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。VC+应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势。VC基于C,C+语言,主要由是MFC组成,是与系统联系非常紧密的编程工
13、具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能。MSComm 作为一个串行通讯控件为程序员串口通讯编程节省了很多时间。在基于对话框的应用中加入一个MSComm控件非常简单。只需进行以下操作即可:打开“Project-Add To Project-Components and Controls-Registered Activex Controls”,然后选择控件:Microsoft Communication Control,version 6.0插入到当前的工程中。这样就将类 CMSComm 的相关文件 mscomm.cpp 和 m
14、scomm.h 一并加入到了工程中。编程时只需将控件对话中的 MSComm 控件拖至你的应用对话框中就OK了。MSComm控件提供了两种处理通信的方法:1. 事件驱动通信,是一种功能很强的处理串口活动的方法。例如,当在CD(Carrier Detect)线或RTS(Request To Send)线上有字符到达或发生了改变,在这种情况下,可以使用MSComm控件的OnComm事件捕获和处理这些通信事件。OnComm也可以捕获和处理通信中的错误。2. 可以在每个重要的程序功能之后检查CommEvent属性的值来检测事件和通信错误。使用的每个MSComm控件都与一个串口对应。如果在应用程序中需要访
15、问多个串口,必须使用多个MSComm控件,可以在Windows 控制面板中修改串口地址的中断地址。MSComm 控件有很多重要的属性,如:CommPort 属性:设置并返回通讯端口号。RThreshold 属性:在MSComm控件设置CommEvent属性为comEReceive并产生OnComm之前,设置并返回的要接收的字符数。CTSHolding属性:确定是否可通过查询Clear To Send (CTS)线的状态发送数据。Clear To Send 是调制解调器发送到相联计算机的信号,指示传输可以进行。该属性在设计时无效,在运行时为只读。SThreshold属性:在MSComm控件设置C
16、ommEvent属性为comEvSend并产生OnComm事件之前,设置并返回传输缓冲区中允许的最小字符数。CDHolding 属性:通过查询 Carrier Detect (CD)线的状态确定当前是否有传输。Carrier Detect 是从调制解调器发送到相联计算机的一个信号,指示调制解调器正在联机。该属性在设计时无效,在运行时为只读。DSRHolding 属性:确定Data Set Ready (DSR)线的状态。Data Set Ready信号由调制解调器发送到相连计算机,指示作好操作准备。该属性在设计时无效,在运行时为只读。Settings属性:设置并返回波特率、奇偶校验、数据位、停
17、止位参数。InputLen属性:设置并返回Input属性从接收缓冲区读取的字符数。1.2 系统设计方案1.2.1 应用型GIS开发的三种实现方式(1)独立开发不依赖于任何GIS工具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选用某种程序设计语言,如Visual C+、Delphi等,在一定的操作系统平台上编程实现。这种方式的好处在于无须依赖任何商业GIS工具软件,减少了开发成本,但一方面对于大多数开发者来说,能力、时间、财力方面的限制使其开发出来的产品很难在功能上与商业化GIS工具软件相比,而且在购买GIS工具软件上省下的钱可能还抵不上开发者在开发
18、过程中绞尽脑汁所花的代价。(2)单纯二次开发完全借助于GIS工具软件提供的开发语言进行应用系统开发。GIS工具软件大多提供了可供用户进行二次开发的宏语言,如ESRI的ArcView提供了Avenue语言,MapInfo公司研制的MapInfo Professional提供了MapBasic语言等等。用户可以利用这些宏语言,以原GIS工具软件为开发平台,开发出自己的针对不同应用对象的应用程序。这种方式省时省心,但进行二次开发的宏语言,作为编程语言只能算是二流,功能极弱,用它们来开发应用程序仍然不尽如人意。(3)集成二次开发集成二次开发是指利用专业的GIS工具软件,如MapInfo、ArcView
19、等,实现GIS的基本功能,以通用软件开发工具尤其是可视化开发工具,如Visual C+、Delphi、Visual Basic、Power Builder等为开发平台,进行二者的集成开发。集成二次开发目前主要有两种方式:1) OLE/DDE采用OLE Automation技术或利用DDE技术,用软件开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方式启动GIS工具软件在后台执行,利用回调技术动态获取其返回信息,实现应用程序中的地理信息处理功能。2) GIS控件利用GIS工具软件生产厂家提供的建立在OCX技术基础上的GIS功能控件,如ESRI的MapObjects、MapInfo公司的
20、MapX等,在VC+等编程工具编制的应用程序中,直接将GIS功能嵌入其中,实现地理信息系统的各种功能。1.2.2 三种实现方式的分析由于独立开发难度太大,单纯二次开发受GIS工具提供的编程语言的限制差强人意,因此结合GIS工具软件与当今可视化开发语言的集成二次开发方式就成为GIS应用开发的主流。它的优点是既可以充分利用GIS工具软件对空间数据库的管理、分析功能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集二者之所长,不仅能大大提高应用系统的开发效率,而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果,更强大的数据库功能,而且可靠性好、易于移植、便于维护,尤其是使用OC
21、X技术利用GIS功能组件进行集成开发,更能表现出这些优势。由于上述优点,集成二次开发正成为应用GIS开发的主流方向。这种方法唯一的缺点是前期投入比较大,需要同时购买GIS工具软件和可视化编程软件,但“工欲善其事,必先利其器”,这种投资值得。目前许多软件公司都开发了很多ActiveX控件,合理选择和运用现成的控件,减少了开发者的编程工作量,使开发者避开某些应用的具体编程,直接调用控件,实现这些具体应用,不仅可以缩短程序开发周期,使编程过程更简洁,用户界面更友好,可以使程序更加灵活、简便。与利用OLE Automation技术作为服务器的MapInfo相比,利用控件开发速度快,占用资源少,而且易实
22、现许多底层的编程和开发功能4。第二章 电子导航基本功能在VC+中的实现2.1 利用MapX实现GIS基本功能在进行MapX开发之前,首先要在计算机中正确的安装了MapX控件和VC+应用程序。下面就用一个具体的实例,介绍在VC+中集成MapX的方法。2.1.1 将MapX支持类库加入工程利用VC+环境下的应用程序生成向导创建一单文档界面应用程序VCDZDH。先将位于MapX的安装路径下的子目录Samples40C+Cpp中的MapX.h和MapX.cpp文件拷贝到当前应用程序所在的VCDZDH文件夹下,然后从Project菜单中选择Add to ProjectFiles命令,此时打开了Inser
23、t Files into Project对话框,选择VCDZDH文件夹下的MapX.cpp和MapX.h文件加入到工程中。2.1.2 地图的显示在VCDZDH文件夹下新建文件夹map,map中复制MapInfo格式的地图文件及Geoset(.GST)文件MY.GST。用户只需要打开Geoset文件,就可以按预先定制的方式显示各层地图。通过以下步骤,就可以实现地图的显示5。1) 在VCDZDHView.h文件中,加入MapX.h对象的头文件,并声明CMapX类型的变量m_ctrlMapX。方法如下:#include“MAPX.H”Class CVCDZDHView:publicCViewprot
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VC 电子 导航系统 毕业论文 50
限制150内