基于 Google Earth 的车辆动态监控系统的设计与实现【毕业论文】.doc

上传人:文初 文档编号:17395 上传时间:2018-04-26 格式:DOC 页数:36 大小:1.92MB
下载 相关 举报
基于 Google Earth 的车辆动态监控系统的设计与实现【毕业论文】.doc_第1页
第1页 / 共36页
基于 Google Earth 的车辆动态监控系统的设计与实现【毕业论文】.doc_第2页
第2页 / 共36页
基于 Google Earth 的车辆动态监控系统的设计与实现【毕业论文】.doc_第3页
第3页 / 共36页
基于 Google Earth 的车辆动态监控系统的设计与实现【毕业论文】.doc_第4页
第4页 / 共36页
基于 Google Earth 的车辆动态监控系统的设计与实现【毕业论文】.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、本科毕业设计(20届)基于GOOGLEEARTH的车辆动态监控系统的设计与实现所在学院专业班级计算机科学与技术学生姓名学号指导教师职称完成日期年月I摘要【摘要】车辆实时监控是车队现代化管理的重要手段,能有效提高车队的生产力。本文基于GOOGLEEARTHCOMAPI和MFC技术在MICROSOFTVISUALC60平台上设计车辆动态监控系统,涉及实时车辆定位、车辆信息查询管理等功能的设计和实现方法,为车辆监控平台的设计提供参考。GOOGLEEARTH的车辆动态监控系统,实际上是一个简单的全球定位导航系统,它可以用于企业,家庭,军事等各个领域,对于车辆的监控与管理有着重大意义。本文第一章简要介绍

2、了GOOGLEEARTH的车辆动态监控系统设计背景、目标及系统的总体框架。第二章从系统需求角度进行分析,提出问题,对系统使用的对象、系统的需求、系统数据进行分析,为系统的建立做充分的准备。第三章为总体设计,给出系统总体架构图,及子系统的功能图,概括的说明系统如何实现。第四章为系统的详细设计及具体实现。第五章对本次数据的设计与实现进行总结,指出不足。【关键词】车辆监控GOOGLEEARTHGOOGLEEARTHCOMAPIVISUALCIIABSTRACT【ABSTRACT】VEHICLEREALTIMEMONITORINGISANIMPORTANTMEANSOFMODERNMANAGEMENT

3、TEAM,CANEFFECTIVELYENHANCETHEPRODUCTIVITYOFTEAMBASEDONTHEGOOGLEEARTHCOMAPIANDMFCTECHNOLOGYINMICROSOFTVISUALC60PLATFORMDESIGNEDVEHICLEDYNAMICMONITORINGSYSTEM,INVOLVINGREALTIMEVEHICLEORIENTATION,VEHICLEINFORMATIONQUERYMANAGEMENTFUNCTIONDESIGNANDREALIZATIONMETHODFORTHEDESIGNOFVEHICLEMONITORINGPLATFORMT

4、OPROVIDETHEREFERENCEGOOGLEEARTHVEHICLEDYNAMICMONITORINGSYSTEM,ISACTUALLYASIMPLEGPSNAVIGATIONSYSTEM,ITCANBEUSEDFORENTERPRISE,FAMILY,MILITARYANDOTHERAREAS,THEMONITORINGANDMANAGEMENTTOCARISSIGNIFICANTTHISPAPERBRIEFLYINTRODUCEDTHEFIRSTCHAPTEROFVEHICLEDYNAMICMONITORINGEARTHGOOGLESYSTEMDESIGNBACKGROUND,OB

5、JECTIVESANDSYSTEMFRAMEWORKTHESECONDCHAPTERANGLEFROMSYSTEMREQUIREMENTS,THEARTICLEANALYZESTHEPROBLEMSOFSYSTEM,THEUSEOFOBJECT,SYSTEMDEMAND,SYSTEMDATAANALYSISFORSYSTEMESTABLISHMENTDOTHOROUGHPREPARATIONTHETHIRDCHAPTERFOROVERALLDESIGN,THEOVERALLFRAMEWORKSYSTEMARE,ANDTHEFUNCTIONOFTHESUBSYSTEMGRAPHTHATGENER

6、ALGRAPH,HOWTOREALIZETHESYSTEMTHEFOURTHCHAPTERFORSYSTEMIMPLEMENTATIONDETAILEDDESIGNANDTHEFIFTHCHAPTEROFTHEDESIGNANDIMPLEMENTATIONOFTHEDATATOCARRYONTHESUMMARY,SHORTCOMINGS【KEYWORDS】MONITORINGGOOGLEEARTHGOOGLEEARTHCOMAPIVISUALCIII目录摘要IABSTRACTII目录III1引言111引言1111GOOGLEEARTH的车辆动态监控系统1112GOOGLEEARTH概述112G

7、OOGLEEARTH的接口2121KML文件2122COM编程结构213GOOGLEEARTH的数据库与界面2131GOOGLEEARTH的数据源2132GOOGLEEARTH的启动界面2133GOOGLEEARTHCOMAPI的类库1314车辆动态监控系统的平台设计415项目预期4151项目预期目标4152项目预期效果416系统体系结构417论文结构描述52车辆动态监控系统需求分析621系统需求分析背景622车辆动态监控系统需求分析6221功能需求6222性能需求6223可靠性和可用性需求6224接口需求6225将来可能提出的要求723数据库需求分析724系统功能需求分析103车辆动态监控系

8、统的总体设计1231系统设计1232数据库设计12321关系模式12322逻辑结构信息1233软件结构设计13331系统总体设计134车辆动态监控系统的详细设计和具体实现1441详细设计14411出错信息处理1442程序用到的GOOGLEEARTHCOMAPI类库中的类14421IAPPLICATIONGE类14IV422ICAMERAINFOGE类16423IFEATUREGE类1643程序实现过程16431启动客户端功能实现16432地图定位功能的实现17433文件操作功能实现20434数据库的链接22435测试285总结30参考文献31致谢错误未定义书签。11引言11引言随着科学技术的不

9、断进步和通信技术的飞速发展,车辆越来越多,我们赖以生存的空间正在不断缩水,人与人之间的交际关系变得更加紧密。地球上任何一个地方的人类活动都有可能影响到整个世界。各种媒介诸如报纸、新闻媒体、电视、网络等,向我们传播来自世界各地的新闻消息。但是,这些还不够。怎么样才能轻松、快捷、直观地获取这些信息呢GOOGLE为我们提供了一个更为出色的信息平台GOOGLEEARTH。本文将通过GOOGLEEARTHCOMAPI和MFC技术在MICROSOFTVISUALC60平台上设计车辆动态监控系统,涉及实时车辆定位、轨迹回放等功能的设计和实现方法,为车辆动态监控系统的设计提供参考。111GOOGLEEARTH

10、的车辆动态监控系统GOOGLEEARTH的车辆动态监控系统,实际上是一个简单的全球定位导航系统,它可以用于企业,家庭,军事等各个领域,对于车辆的监控与管理有着重大意义。通过本系统可以对车辆进行实时监控和交互,帮助企事业单位加强车辆管理,提高单位车辆的运营效率,加强单位的车辆安全,全面提升单位车队的生产力。112GOOGLEEARTH概述GOOGLEEARTH是谷歌推出的一款虚拟地球软件。它把航拍照片、卫星图像和GIS数据整合在一起,形成了一个地球的三维模型,使用户足不出户就可以将全球尽收眼底。丰富的数据量加上强大的数据分析能力,GOOGLEEARTH也将为出行者提供有力的帮助。通过GOOGLE

11、EARTH,我们可以轻松地获取世界上任何一处的地理信息,GOOGLEEARTH为我们创造了一个数字化的地球,为整个人类营造了一个梦幻般的虚拟世界。GOOGLEEARTH之所以能够拥有庞大而又令人振奋的应用前景,主要是因为GOOGLEEARTH是个很优秀的地图平台,不仅能够提供优异的地图图像传输功能,而且还提供了开发的API接口,能够基于API控制地图的显示,操作地图要素,并且完成一定的空间分析。加上自己的业务代码,完全可以架构一个满足日常业务需要的普通GIS系统。基于GOOGLEEARTH的应用程序,可以充分利用GOOGLE的免费卫星图片,而且其中的地图还无须自己维护,可节约大量的数据维护成本

12、。GOOGLEEARTH还提供了不少三维空间操控视点和地图要素的方法,稍加综合就可以做出超炫的效果,这是一般的地图软件平台所不具备的。但是基于GOOGLEEARTH为平台做开发也有一定的风险,如政策因素。国家测绘管理部门对于2GOOGLEEARTH提供的卫星图片的态度还不够明朗。目前GOOGLEEARTH在政策上处于一个灰色地带,是否开放商业领域应用还需要时间的验证。再如GOOGLEEARTH应用的另一大方向GIS系统,GIS的各种地图数据库建设的国家标准目前还没有涉及GOOGLEEARTH地图的方方面面,因此GOOGLEEARTH的应用在某一个特定行业的内部容易被边缘化。但是有理由相信,随着

13、地图产业的发展,GOOGLE地图的触角会伸入到这个行业的每一个角落2。12GOOGLEEARTH的接口GOOGLEEARTH软件为用户提供2种扩展接口一种是KMLKEYHOLEMARKUPLANGUAGE文件形式,另一种是组件COMAPI形式。KML文件是基于XML语法格式的文件3。121KML文件KML文件采用了XML文件的语法和文件结构。用户可以通过KML文件在GOOGLEEARTH客户端中显示丰富的内容。KML文件是基于XML语法格式的文件5,可以按照KML语法在记事本中进行代码的编写,并以KML格式进行保存,该文件可以由GOOGLEEARTH客户端对其进行解析,显示KML文件内的地标信

14、息122COM编程结构GOOGLEEARTH的客户端是基于组件技术的。GOOGLEEARTHCOMAPI是GOOGLEEARTH组件的公用接口1。GOOGLEEARTH提供了COM接口,开发人员可以使用支持COM的可视化编程语言工具进行开发。GOOGLE并没有提供给用户独立的COM组件,而是在用户安装了GOOGLEEARTH程序之后,程序会将自带的动态链接库注册到用户的操作系统上,这时就可以调用GOOGLEEARTHAPI了。任何支持COM规范的语言都可以编写COM组件并调用其接口,GOOGLEEARTH的API也同样如此。开发人员可以用目前常见的任何一种支持COM的语言来调用,如DELPHI

15、、VISUALBASCI、VISUALC、JAVA、PYTHON等2。13GOOGLEEARTH的数据库与界面131GOOGLEEARTH的数据源GOOGLEEARTH的栅格数据大都来源于美国国家航空航天局(NASA)的卫星图像。GOOGLEEARTH的矢量数据则主要来源于已有的矢量数据库。为方便服务不同的用户,GOOGLEEARTH还支持本地矢量数据的采集与应用,用户可以方便的从GOOGLEEARTH的遥感影像中采集矢量数据并进行分析1。132GOOGLEEARTH的启动界面GOOGLEEARTH的启动界面如图11所示3图11GOOGLEEARTH的启动界面133GOOGLEEARTHCOM

16、API的类库1COM即组件技术,API即应用编程接口。GOOGLEEARTH为用户提供了GOOGLEEARTHCOMAPI的类库,其意义在于用户可以在各种外部程序中调用GOOGLEEARTH的功能。用户通过COLEDISPATCHDRIVER类的函数创建了GOOGLEEARTH的对象,进而可以使用GOOGLEEARTHCOMAPI的类库。GOOGLEEARTHCOMAPI类库的11个类中,IAPPLICATIONGE类最为重要。GOOGLEEARTHCOMAPI类库中的其他类的使用,都会涉及IAPPLICATIONGE类中的属性或函数。这些类的简单介绍,如表11所示表11GOOGLEEARTH

17、COMAPI类库中的类1IAPPLICATIONGE入口类,通过该类,用户进一步调用其他类ICAMERAINFOGE相机类,通过该类,用户可以调整观看当前视图的方式IFEATUREGE要素类,通过该类,用户可以控制要素的属性IFEATURECOLLECTIONGE要素集合类,通过该类,用户进一步获取要素IPOINTONTERRAINGE地理坐标点类,通过该类,用户获取屏幕点的地理坐标IVIEWEXTENTSGE视口类,通过该类,用户可以控制当前视口ISEARTHCONTROLLERGESEARTCH面板类,通过该类,用户可以完成相应的搜索功能ITOURCONTROLLERGETOUR面板类,通

18、过该类,用户可以动态播放当前的要素IANIMATIONCONTROLLERGEANIMATION面板类,通过该类,用户可以动态播放当前的时间要素ITIMEGE时间类,通过该类,用户可以获取和设置要素的时间属性ITIMEINTERVALGE时间间隔类,通过该类,用户可以获取要素的时间间隔属性414车辆动态监控系统的平台设计车辆动态监控系统在现在的软件应用中,主要是结合GOOGLEMAP、GIS、GPS导航系统来设计的,基于GOOGLEEARTH的车辆动态监控系统由于航拍图像的不清晰以及路线选择的误差较大,很难做到比较完善的车辆管理系统设计。因此,本设计中的软件结合GOOGLEEARTH客户端以及

19、MICROSOFTVISUALC60设计实现的程序依然比较粗糙,基本实现功能。本软件主要利用KML与MFC在MICROSOFTVISUALC60平台上对GOOGLEEARTH进行二次开发。在GOOGLEEARTH基础上,添加一个车辆管理系统,实现与管理各项功能,首先,这个系统我需要能够应用在各个行业车辆管理中,要做到让企业随时对车辆进行实时监控和交互,帮助加强车辆管理,提高单位车辆的运营效率,加强管理的车辆安全。15项目预期151项目预期目标目标是可以做到以下功能1)由车辆动态监控系统的发送操作命令到GOOGLEEARTH客户端,由客户端请求GOOGLEEARTH服务器端。2)模拟车载控件的能

20、够接收车辆动态监控系统的信息和发送信息到车辆动态监控系统。3)车辆动态监控系统可以调出存储在数据库中的车辆信息,如驾驶员信息、车辆编号、车牌号码等。4)对车辆的坐标,区域,能够实现定位、坐标获取、搜索、视图放大缩小和绘制轨迹基本功能。152项目预期效果基本实现目标功能,可以对GOOGLEEARTH操作。16系统体系结构本软件才用的是C/S的体系结构,即客户机和服务器结构。这种体系结构模式是以客户机为网络基础,以数据库服务器为中心,在信息系统软件支持下的两层结构模型。这种体系结构中,用户操作模块布置在客户机上,数据存储在服务器上的数据库中。客户机依靠服务器获得所需要的网络资源,而服务器为客户机提

21、供网络必须的资源4。如图12所示5图12系统层次图(1)数据层运行的是ACCESS数据库,用于存储车辆的相关信息。(2)功能层用于连接GOOGLEEARTH客户端以及MICROSOFTVISUALC60,利用MFC与数据库连接执行各种服务器指令,并对数据进行处理操作。(3)表示层位于客户端,显示在GOOGLEEARTH客户端。为用户提供直观、形象的操作界面。17论文结构描述本文第一章简要介绍了GOOGLEEARTH的车辆动态监控系统设计背景、目标及系统的总体框架。第二章从系统需求角度进行分析,提出问题,对系统使用的对象、系统的需求、系统数据进行分析,为系统的建立做充分的准备。第三章为总体设计,

22、给出系统总体架构图,及子系统的功能图,概括的说明系统如何实现。第四章为系统的详细设计及具体实现。第五章对本次数据的设计与实现进行总结,指出不足。62车辆动态监控系统需求分析21系统需求分析背景随着车辆越来越多,如何掌握车辆的动态信息成为车辆管理部门要解决的问题,如何管理好车辆,对物流车辆、企业车辆来说,可以产生更多的经济效益。车辆动态监控系统是针对企业的大量车辆信息处理工作而开发的管理软件。根据用户的要求,实现对车辆基本信息、驾驶员、坐标位置、行车路线、天气、车辆安全、事故记录管理几个方面的功能。该系统应用在各个行业车辆管理中,要做到让企业随时对车辆进行实时监控和交互,帮助加强车辆管理,提高单

23、位车辆的运营效率,加强管理的车辆安全。22车辆动态监控系统需求分析221功能需求车辆动态监控系统的总目标是在MICROSOFTVISUALC60开发平台上,结合GOOGLEEARTH客户端,GOOGLEEARTHCOMAPI,以及ACCESS数据库,实现对指定车辆的动态监控,为企业单位提供准确、迅速、动态的车辆信息。222性能需求本车辆动态监控系统是针对车辆在GOOGLEEARTH客户端的基础上,对车辆进行动态定位,以及反馈车辆信息,要求快速准确。223可靠性和可用性需求车辆动态监控系统是针对企业对车辆的动态信息进行查询了解情况设计的,其准确度有待提高,由于时间和技术原因,无法做到精确快速,以

24、及三维模型自动反馈信息等功能。本系统可应用于各个领域,如物流、GPS车载、家用车辆定位等,拥有很高的可用性。224接口需求GOOGLEEARTH是个很优秀的地图平台,不仅能够提供优异的地图图像传输功能,而且还提供了开发的API接口,能够基于API控制地图的显示,操作地图要素,并且完成一定的空间分析。GOOGLEEARTH提供了COM接口,开发人员可以使用支持COM的可视化编程语言工具进行开发。GOOGLE并没有提供给用户独立的COM组件,而是在用户安装了GOOGLEEARTH程序之后,程序会将自带的动态链接库注册到用户的操作系统上,这时就可以调用GOOGLEEARTHAPI了。WINDOWS操

25、作平台提供了有关COM的一系列代码,这一系列代码组成了COM库,COM库实现了很多功能,用户通过调用COM库的函数来完成组件的相关操作,一般用户创建一个组件对象,用来调用组7件的接口成员函数,然后释放组件对象,整个过程围绕COM库展开。过程如图21所示图21用户调用组件的过程用户首先调用COINITIALIZE函数初始化COM库。然后在注册表中,COM库根据组件名称查找组件对象标识符CLSID。根据获得的CLSID,COM库函数COGETCLASSOBJECT创建对象的类厂。进而由类厂完成组件对象的创建,并返回对象的指针。在用户不再使用组件资源时,COM库调用COUNINITIALIZE()函

26、数释放资源1。225将来可能提出的要求由于技术限制,本系统基于GOOGLEEARTH的车辆动态监控系统只是初具规模,功能还不完善。如果条件允许的话,该系统应该可以添加更多功能,比如说基于GOOGLEEARTH的GPS导航系统,并且数据库可以做到实时反馈信息等。23数据库需求分析复杂的数据有许多基本的数据元素组成数据结构表示数据元素之间的逻辑关系。任何一款软件系统本质上都是信息处理系统,系统必须处理的信息在很大程度上决定了系统的面貌,对软件设计有深远的影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务8。8本系统采用ACCESS数据库管理系统,用户可以使用计算机访问存储在表中的信

27、息或数据,即可以通过数据输入窗口向表中输入数据和使用查询来检索数据。数据库是一个数据及其相关对象的容器,数据库对象包括表、查询、窗体、报表、数据访问页、宏和模块。本车辆管理系统的数据调用流程是从VC60平台MFC窗口通过GOOGLEEARTHCOMAPI的调用代码启动GOOGLEEARTH客户端,并启动窗口下的车辆动态监控系统模块(如图22、图23),图22启动车辆监控系统9图23车辆动态监控系统界面然后通过发送信息至信息反馈模块(模拟车载控件),由车载控件发送坐标信息返回监控系统,然后获取数据库中存储的数据信息,由GOOGLEEARTHCOMAPI的类库中的类定位车辆坐标并将视图缩进。关系图

28、如图24图24车辆动态监控系统数据库关系图图25车辆动态监控系统元素图10图26坐标关系图图27车辆动态监控系统数据库实体图24系统功能需求分析车辆动态监控系统用MFC界面设计。启动GOOGLEEARTH客户端,用于启动和连接GOOGLEEARTH客户端。GOOGLEEARTH操作,用于对GOOGLEEARTH客户端当前视图信息进行保存及打开KML文件。退出GOOGLEEARTH,用于GOOGLEEARTH客户端的断开连接操作。车辆动态监控系统数据库驾驶员信息车辆编号所属公司车辆类型车牌号码11车辆动态监控系统,用于启动监控系统操作界面。模拟车载终端,用于接收信号和发送坐标信息。发送信号,发送

29、信号到信息反馈模块(模拟手机),发送信息为车辆编号。由反馈模块返回信息,发送信息为车辆坐标。获取车辆信息,通过提取数据库中的数据,显示到车辆动态监控系统操作框里。定位车辆位置,通过已知坐标定位车辆所在位置,并将视图缩进到定位地区。123车辆动态监控系统的总体设计31系统设计车辆动态监控系统的具体实现方案是,软件通过GOOGLEEARTH的COM接口,对GOOGLEEARTH客户端进行访问,然后由GOOGLEEARTH客户端发送请求到GOOGLEEARTH服务器,我们就可以操作下去了。软件通过发送信息请求至模拟的车载系统,由车载返回其坐标信息,然后进行坐标定位和视图缩进操作,用户可以通过软件查询

30、车辆的信息。32数据库设计关系数据库的关系模型中,实体和实体间的联系的都是用实体间的关系表示的。321关系模式车辆信息(车辆编号、车牌号码、驾驶员姓名、驾驶员驾龄、所属公司、车辆类型、坐标位置)。322逻辑结构信息将上述关系模式在ACCESS数据库中建表,结构如下车辆信息表,用来存储管理车辆的信息,见图31图31车辆信息表其中表的功能如表31表31车辆信息表功能字段名称意义CARID车辆编号CARNO车牌号码NAME驾驶员姓名AGE驾驶员驾龄COM所属公司PINPAI车辆品牌13COLOR车辆颜色33软件结构设计为了实现车辆动态监控系统,必须设计出组成这个系统的所有功能模块和数据库。首先在总体

31、设计阶段通过结构设计确定模块组成及它们之间的关系。通过描绘层次图将功能模块形象的表示出来。331系统总体设计本系统的设计思想是采用了VC、GOOGLEEARTH客户端与ACCESS数据库相结合,利用MFC设计监控系统的操作界面,并通过GOOGLEEARTHCOMAPI对GOOGLEEARTH客户端进行操作,并通过GOOGLEEARTH客户端链接GOOGLEEARTH服务器;利用ACCESS数据库的数据库支持特性,建立系统的数据库体系,方便数据查询与写入。本系统的功能模块,分为车辆监控系统模块,模拟车载控件模块两个部分,系统的总功能图见图32。图32系统总功能图车辆动态监控系统监控系统界面模拟车

32、载控件地图的显示与定位接收信号发送坐标信息连接GOOGLEEARTH客户端发送信号接收坐标地图定位144车辆动态监控系统的详细设计和具体实现41详细设计MFC面向对象设计将将WINDOWSAPI中的相关部分组合到C类或对象中。本系统才用MFC结合C语言设计人机交互界面。411出错信息处理本系统设计由于技术有限,代码本身可能有缺陷,加上GOOGLEEARTH客户端反应时间问题,若操作不当,可能会出现程序出错跳出的情况。所以操作时一定要谨慎,因为出错后程序跳出,自动断开与GOOGLEEARTH的客户端的联系,所以GOOGLEEARTH的客户端不会因为程序出错而一起关闭,出错后要关闭GOOGLEEA

33、RTH的客户端,然后重新启动程序。42程序用到的GOOGLEEARTHCOMAPI类库中的类GOOGLEEARTHCOMAPI是一个包括11个类的类库,GOOGLEEARTHCOMAPI内所有的类的使用都是围绕GOOGLEEARTHCOMAPI的入口类IAPPLICATIONGE类中的属性或函数展开的。421IAPPLICATIONGE类IAPPLICATIONGE类是GOOGLEEARTHCOMAPI的主要入口点。这个类提供了应用程序访问GOOGLEEARTH的接口,我们通过引入它,才能来启动GOOGLEEARTH的客户端,并进行二次开发。通过调用IAPPLICATIONGE的成员函数,可以

34、获得其他类的接口,用于对其他类进行调用。用户在客户端中进行的大部分操作,都需要通IAPPLICATIONGE类或借助IAPPLICATIONGE类来实现。IAPPLICATIONGE类的属性,如表41所示表41IAPPLICATIONGE的常用属性1属性名作用VIEWEXTENTSIAPPLICATIONGE类型描述了客户端视图窗口4条边的经纬度值,IAPPLICATIONGE类型AUTIPILOTSPEED表示窗口中心移动到用户指定地点的速度,DOUBLE类型ELEEVATIONEXAGGERATION用来突出显示地形的高程特征,DOUBLE类型STREAMINGPROGRESSPERCEN

35、TAGE表示客户端完成用户某一操作的进度,LONG类型TOUYCONTROLLER用来获取客户端的TOUR面板,ITOURCONTROLLERGE类型SEARCHCONTROLLER用来获取客户端的SEARCH面板,ISEARCHCONTROLLERGE类型ANIMATIONCONTROLLER用来获取客户端的ANIMATION面板,IANIMATIONCONTROLLERGE15类型VERSIONMAJOR表示客户端版本号的一部分,INT类型VERSIONMINOR表示客户端版本号的一部分,INT类型VERSIONBUILD表示客户端版本号的一部分,INT类型VERSIONAPPTYPE表示

36、客户端的版本,APPTYPEGE类型因为对GOOGLEEARTH客户端的操作都是围绕IAPPLICATIONGE类展开的,因此IAPPLICATIONGE类的成员函数较多,所以在这里把常用的几个函数进行简单介绍,如表42所示表42IAPPLICATIONGE类常用函数1函数名称功能简介GETCAMERA用来获取当前视图的视高、视底点等相关信息SETCAMERA将视图中心移动到用户指定的位置SETCAMERAPARAMS用来设置视高、视底点等相关信息GETFEATUREBYNAME通过KML文件名获取该要素的指针GETFEATUREBYHREF通过KML文件名和要素ID获取要素的指针SETFEA

37、TUREVIEW将视图中心移动到该要素所在位置OPENKMLFILE通过KML文件名打开该文件LOADKMLDATA通过KML字符串装载文件SAVESCREENSHOT保存当前视图GETPOINTONTERRAINFROMSCREENCOORDS将屏幕坐标转换为经纬度的形式ISINITIALIZED判断客户端是否初始化成功ISONLINE判断客户端是否连接上服务器SHOWDESCRIPTIONBALLOONS显示提示框HIDEDESCRIPTIONBALLOONS隐藏提示框GETHIGHLIGHTEDFEATURE获取当前选中的要素GETMYPLACES获取MYPLACES文件夹GETLATE

38、RSDATABASES获取服务器的KML文件数据库GETTEMPORARYPLACES获取TEMPORARYPLACES文件夹GETMAINHWND获取客户端的框架窗口句柄16GETRENDERHWND获取客户端的各子窗口句柄422ICAMERAINFOGE类ICAMERAINFOGE类主要用来控制客户端视图,通过类的成员函数,可以对视高、方位角、视底点、倾斜角这些属性进行相关操作。与IAPPLICATIONGE类的成员函数SETCAMERAPARAMS()的不同在于SETCAMERAPARAMS()只能设置当前视图的属性,而ICAMERAINFOGE类可以获取当前视图的属性。423IFEAT

39、UREGE类IFEATUREGE类主要用来协助用户来获取GOOGLEEARTH客户端中的数据,整个GOOGLEEARTH客户端的数据构成一个本地数据库,用户通过该类,可以访问其中的任何数据。这些数据的最小单位被称为要素,许多要素组合在一起就构成一个要素集,许多要素集结合在一起就形成一个数据库。43程序实现过程431启动客户端功能实现启动客户端流程图如图41图41启动GOOGLEEARTH客户端流程图客户端初始化主要完成客户端的启动工作,通过IAPPLICATIONGE的函数ISINITIALIZED和ISONLINE()进行判断,用户是否启动了客户端并连接上GOOGLEEARTH的服务器。如果

40、未启动和连接,17则调用COM库的函数CREATEDISPATCH()创建GOOGLEEARTH客户端的实例。调用函数CREATEDISPATCH()相当于用户双击GOOGLEEARTHEXE,程序自动完成启动和连接的操作。ISINITIALIZED和ISONLINE()函数都没有输入参数,返回值都是BOOL型。调用函数的语法分别为BOOLISINITIALIZED;和BOOLISONLINE();,前者用来判断客户端是否启动,如果返回TRUE,则表明客户端已经启动;后者用来判断客户端是否连接上服务器,如果返回TRUE,则表明客户端已经连接上服务器。CREATEDISPATCH()通过IAPP

41、LICATIONGE类调用,从COLEDISPATCHDRIVER类继承,是COLEDISPATCHDRIVER类的构建实例函数。函数返回值为BOOL型,创建成功返回TRUE。该函数接受一个主要的输出参数CLSID类型值,即COM组件对象标识符。代码如下STATICCONSTCLSIDCLSID_APPLICATIONGE0X8097D7E9,0XDB9E,0X4AEF,0X9B,0X28,0X61,0XD8,0X2A,0X1D,0XF7,0X84/定义一个静态的CLSID常量另外一个输入参数为COLEEXCEPTION类的指针,用于异常处理,一般设为NULL。432地图定位功能的实现地图定位

42、,根据用户指定位置,在GOOGLEEARTH客户端实时显示该位置的地图。通过接收用户输入的经纬度,传递给SETCAMERAPARAMS()函数,完成地图定位操作。调用SETCAMERAPARAMS()函数的语法BOOLSETCAMERAPARAMSDOUBLELAT,DOUBLELON,DOUBLEALT,ALTITUDEMODEGEALTMODE,DOUBLERANGE,DOUBLETILT,DOUBLEAZIMUTH,DOUBLESPEEDSETCAMERAPARAMS()函数返回值为BOOL型。接收8个输入参数,除ALTMODE,其他都是DOUBLE型。参数功能如表43所示表43SETC

43、AMERAPARAMS()参数功能表参数名功能LAT表示视图中心的经度LON表示视图中心的纬度ALT表示视图中心的海拔高程RANGE表示视高SPEED表示试图中心移动到客户端的速度TILT表示用户视线方向和垂直地平线方向的夹角AZIMUTH表示用户视线方向和正北方向的夹角18ALTMODE表示高程值以什么形式描述下面的代码就是地图定位的主要代码,这部分代码首先检查用户输入的经纬度是否正确,然后将输入值转换为小数形式,最后利用SETCAMERAPARAMS()函数完成地图定位。DOUBLEDLON,DLATINTILON,ILAT/定义常量GEPI,用于把经纬度转换为小数形式CONSTDOUBL

44、EGEPI36000CHARCHLON110,CHLON210,CHLON310CHARCHLAT110,CHLAT210,CHLAT310/将文本编辑框中的数据传递给字符串变量GETDLGITEMIDC_JING1GETWINDOWTEXTCHLON1,10GETDLGITEMIDC_JING2GETWINDOWTEXTCHLON2,10GETDLGITEMIDC_JING3GETWINDOWTEXTCHLON3,10GETDLGITEMIDC_WEI1GETWINDOWTEXTCHLAT1,10GETDLGITEMIDC_WEI2GETWINDOWTEXTCHLAT2,10GETDLGIT

45、EMIDC_WEI3GETWINDOWTEXTCHLAT3,10/将字符串变量转换为整数变量LON1ATOICHLON1LON2ATOICHLON2LON3ATOICHLON3LAT1ATOICHLAT1LAT2ATOICHLAT2LAT3ATOICHLAT3/对文本编辑框的输入进行检查IFABSLON1179AFXMESSAGEBOX“经度”非法输入,请输入180和180之间的整数“IFABSLAT18919AFXMESSAGEBOX“纬度”非法输入,请输入90和90之间的整数“IFLON259|LON259|LAT259|LON359|LAT30DLONILON/GEPIILATLAT13

46、600LAT260LAT3DLATILAT/GEPI/调用SETCAMERAPARAMS函数IFM_GEAPPLICATIONISINITIALIZEDM_GEAPPLICATIONCREATEDISPATCHCLSID_APPLICATIONGE,NULLIFM_GEAPPLICATIONISONLINEAFXMESSAGEBOX“已经连接上服务器“M_GEAPPLICATIONSETCAMERAPARAMSDLAT,DLON,1000,1,513,00,00,2020如果输入不合法,就会弹出检查对话框,如下图所示图42检查对话框非法输入点击“定位车辆位置”按钮,GOOGLEEARTH客户端

47、迅速将视图中心移动到反馈位置。如图43所示图43车辆定位结果433文件操作功能实现文件操作基本的就是打开和保存。在打开操作中,用户首先获取用户输入的文件名,这里用到了MFC提供的CFILEDIALOG类,然后调用GOOGLEEARTH入口类IAPPLICATIONGE的OPENKMLFILE()函数打开文件。保存操作的话,GOOGLEEARTHCOMAPI中并未提供KML的函数,但提供了SAVESCREENSHOT函数保存当前视图的图像。界面如图44所示21图44文件操作框打开KML文件的代码如下IFFALSEM_ACTIVEAFXMESSAGEBOX“客户端未启动“RETURNCFILEDI

48、ALOGGEOPENDLGTRUE/初始化一个打开对话框的对象GEOPENDLGM_OFNLPSTRTITLE“GOOLGEEARTH文件打开对话框“GEOPENDLGM_OFNLPSTRFILTER“KMLFILESKML0KML0ALLFILES000“/完成KML文件的打开操作IFIDOKGEOPENDLGDOMODALM_GEAPPLICATIONOPENKMLFILEGEOPENDLGGETPATHNAME,TRUE保存图像代码IFFALSEM_ACTIVE22AFXMESSAGEBOX“客户端未启动“RETURNCFILEDIALOGGESAVEDLGFALSE/初始化一个保存对话

49、框的对象GESAVEDLGM_OFNLPSTRTITLE“GOOLGEEARTH图象保存对话框“GESAVEDLGM_OFNLPSTRFILTER“JPGFILESJPG0JPG0ALLFILES000“GESAVEDLGM_OFNLPSTRDEFEXT“JPG“/将当前视图保存为JPEG格式的黑白图象IFIDOKGESAVEDLGDOMODALM_GEAPPLICATIONSAVESCREENSHOTGESAVEDLGGETPATHNAME,100434数据库的链接数据库管理界面如图45图45数据库管理界面通过数据库管理按钮进行添加记录和读取数据库操作,由于时间问题和软件自身问题,删除和修改功能没有做,只能在数据库表内进行直接删除操作。获取车辆信息是查询数据库创建的表,如图46,图4723图46监控系统通过车载控件返回车辆坐标后点击获取车辆信息图47获取的车辆信息本系统的数据库操作代码如下VOIDDIALOG_ACCESSONBUTTONADD24/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHERECSTRINGSFILECSTRINGSQLCMDIFSFILE“SFILE“ACCESSDBMDB“ELSESFILE“MDB“CF

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。