基于ARCGIS公交车辆轨迹查询毕业设计正文.docx
《基于ARCGIS公交车辆轨迹查询毕业设计正文.docx》由会员分享,可在线阅读,更多相关《基于ARCGIS公交车辆轨迹查询毕业设计正文.docx(41页珍藏版)》请在冰豆网上搜索。
基于ARCGIS公交车辆轨迹查询毕业设计正文
摘要
随着越来越多的交通事故的发生,加强交通监管将显得尤为重要。
根据车辆的行车信息进行车辆轨迹查询将在事故后续处理中发挥重要作用。
为此采用ArcGISEngine以及SQLServer数据库技术,开发出一个基于VS2008平台的公交车辆轨迹查询功能模块。
通过三层架构架构思想进行用户与数据库之间各种数据信息的交融,实现对公司运营状况的妥善管理和不同时间段的公交车辆历史轨迹的查询。
这些功能除了在交通监管中的应用,它还可以在森林防火、运钞车监护、犯罪嫌疑车辆监控也有着很好的实用性。
关键字:
ArcGISEngine;SQLServer;轨迹查询
Abstract
Withthegrowingnumberoftrafficaccidents,it’sessentialtoreinforcethetrafficsupervision.Realizingvehicletrackplaybackonthebasisofthedrivinginformationwillplayanimportantroleinthefurthertreatmentofanaccident.ForittousetheArcGISEngineandSQLServerdatabasetechnologytodevelopedaqueryfunctionmodelofpublictransportvehiclestrackbasedonVS2008platform.Through theideasof three-tier architecture ,which blends a variety of data information betweentheuserandthe databasetoachievethepropermanagementoftheoperationsofthepanyandquerythehistoricaltrajectoryofpublictransportvehiclesatdifferentperiodsoftime.Besidesthesupervisionoftransport,itwasalsousefulintheforestfireprevention,bankvehiclesguardianship,criminalvehiclemonitoring.
KeyWords:
ArcGISEngine;SQLServer; trajectory query
第一章绪论
1.1研究背景
在第十一届全国人民代表大会第四次会议上提出的十二五规划中,表示将继续完善产业发展政策,争取把地理信息产业纳入国家战略性新兴产业规划。
作为地理信息产业的重要支持,地理信息系统(GIS)就将作为一个重要的技术手段推动地理信息产业的蓬勃发展,更好更快的实现十二五规划。
地理信息系统是一种专门处理地理空间数据的计算机系统与技术,这种技术使地图这种独特的视觉化效果和地理分析功能集成在一起,为人们提供决策支持手段。
地理信息系统(GIS)具有空间数据结构和有效的数据集成、独特的地理空间分析能力、快速的空间定位搜索和复杂的空间查询功能、强大的图形生成的可视化表达手段以及地理过程的烟花模拟和空间决策支持等功能。
引用ESRI公司的一句宣传语:
没有你做不到的,只有你想不到的,地理信息系统也具有如此的魅力。
近些年来,在科学发展观理论的指导下,人们的生活水平和科学技术发展的程度达到了一个新的高度,越来越多的人们拥有了自己的汽车。
但随之而来的交通事故的频发,为了处理好这些实际问题,智能导航系统将会应用的越来越普遍。
车辆轨迹查询与回放系统作为智能导航重要的子系统,它能向人们展示被监督车辆在具体时间内的具体行程以及行车信息。
因此,车辆轨迹查询回放系统在森林防火、运钞车监护、犯罪嫌疑车辆监控、交警巡查等有着非常重要的应用。
对于这一系统的成功实现,有着很强的实用性,并能拓展地理信息系统的应用方向。
1.2研究目的与意义
目前,随着经济的发展和人民生活水平的提高,私家车也在逐渐增多。
但是伴随着私家车的无限量的扩X,我们的交通就会越来越拥挤从而导致人们无法通行,路上耗费的时间让我们越来越无法承受。
此外,我们身边的环境问题逐渐成为人们心中的一大困扰,这样结果就是空气质量直线型下降,我们再无法呼吸到新鲜空气从而又直接导致人们身体的各种疾病的产生。
除此之外,随着国际问题的不稳定性,油的价格也让人们颇不敢想象,犹如几句俗语,买的起车,开不起车啊。
基于这几点来说,公交车出行是人们必须的一项选择了。
公交车早就成为城市交通运输体系的重要组成部分。
目前,大多数公交车都可以提供18小时服务。
虽然公交车有它的方便之处,但是也体现出了很多不便,如:
上班的时候处于交通的高峰期,各种车辆相互拥挤,以至于导致公交车的到站时间加长等等问题。
随着这些问题的出现,越来越多的交通事故也是接连不断,因此加强交通监管将显得尤为重要。
根据车辆的行车信息进行车辆轨迹查询,可以实现不同时间段的车辆轨迹查询以及所行使车辆信息,这些功能将在事故后续处理中发挥极其重要作用。
针对以上所描述,因此采用二次开发语言C#,利用ArcGISEngine以及SQLServer数据库技术,开发出一个基于VisualStudio2008平台的功能模块,进行公交车辆历史轨迹的查询系统。
该系统采用ArcGISEngine开发技术、以ArcGIS9.3集成平台,实现车辆历史轨迹查询。
本系统除了在交通监管中的应用,它还可以在森林防火、运钞车监护、犯罪嫌疑车辆监控也有着很好的实用性。
第二章地理信息系统(GIS)技术
2.1GIS概念及组成
GIS是在计算机软硬件支持下,以采集、存储、管理、处理、检索、分析和显示空间物体的地理分布数据及与之相关的属性,并以回答用户问题或提供服务等为主要任务的技术系统。
图2-1地理信息系统的组成
从系统论和应用的角度出发,地理信息系统被分为四个子系统(图(a)),即计算机硬件和系统软件,数据库系统,数据库管理系统,应用人员和组织机构。
(1)计算机硬件和系统软件:
这是开发应用地理信息系统的基础。
其中,硬件主要包括计算机、打印机、绘图仪、数字化仪、扫描仪;系统软件主要指操作系统。
(2)数据库系统:
系统的功能是完成对数据的存储,它又包括几何(图形)数据和属性数据库。
几何和属性数据库也可以合二为一,即属性数据存在于几何数据中。
(3)数据库管理系统:
这是地理信息系统的核心。
通过数据库管理系统,可以完成对地理数据的输入、处理、管理、分析和输出。
(4)应用人员和组织机构:
专业人员,特别是那些复合人才(既懂专业又熟悉地理信息系统)是地理信息系统成功应用的关键,而强有力的组织是系统运行的保障。
从数据处理的角度出发,地理信息系统又被分为数据输入子系统,数据存储与检索子系统,数据分析和处理子系统,数据输出子系统(图(b))。
(1)数据输入子系统:
负责数据的采集、预处理和数据的转换。
(2)数据存储与检索子系统:
负责组织和管理数据库中的数据,以便于数据查询、更新与编辑处理。
(3)数据分析与处理子系统:
负责对数据库中的数据进行计算和分析、处理。
如面积计算,储量计算,体积计算,缓冲区分析,空间叠置分析等。
(4)数据输出子系统:
以表格、图形、图象方式将数据库中的内容和计算分析结果输出到显示器、绘图纸或透明胶片上。
2.2GIS在车辆监控系统中的作用
GIS能够把实时接收的多个车辆的位置信息显示在电子地图上,同时实现所有与GPS相关的GIS功能。
包括:
多种不同比例尺电子地图的管理与显示;地图窗口中以不同比例尺直观地查看指定车辆的位置及查询相关的信息;多窗口同时监控,并可打印当前窗口内容;监控车辆位置、状态、运动轨迹的实时显示;地图上任意位置的信息动态提示;地图的快速显示、缩放和查询。
监控车辆的远程控制,包括强制发回位置、车辆控制器控制(如:
开关门、防盗等)询问、通知信息发送等,调度指令可在车载微型打印机上打印出来,或显示在车载终端上。
基于规则的车辆预警处理系统。
用户能够对监控车辆设置各类预警条件(标记、路线、区域、时间等),一旦发现接收的监控车辆信息满足预警条件,立刻发出报警信号。
用户可根据需要,对车辆实施远程熄火,锁门等方式来控制车辆的状态。
车辆数据的各类查询和统计。
车辆信息的更新和修改。
车辆历史运行轨迹的查询与回放。
第三章系统框架的设计与实现
3.1系统设计与构想
本系统可以以不同的车辆和不同的行驶时间段为条件进行相应车辆的历史轨迹查询。
公交车车辆轨迹查询是利用车载全球定位系统终端接收机采集车辆的实时数据,在地理信息系统(GIS)平台上按多时段进行轨迹查询时效模拟,它结合了GPS(GlobalPositioningSystem)导航技术、GIS(GeographicalInformationSystem)电子地图及计算机技术,实现了从数据采集、数据存储、数据管理,最后到实际应用。
由于GPS终端接收机的相对独立性和数据的低存储量,其接收数据的可视性和可比较性需要借助于其他的可视化操作平台。
为此,该系统采用ArcGISEngine以及SQLServer数据库技术,以ArcGIS9.3集成平台,实现模拟车辆历史轨迹查询。
本系统的构想是由数据库操作和地图显示操作两部分构成,大体设计的流程如图3-1所示:
图3-1系统框架设计流程图
整个系统的功能模块大致可由三个部分组成:
信息管理功能模块、信息查询功能模块、GIS功能模块。
框架整体设计效果如图3-2所示:
图3-2系统框架设计效果图
3.2系统开发环境
本系统主要做的方面是基于ArcGIS公交车辆轨迹查询和各种信息的管理与查询,因此所引用的开发环境如下所示:
Ø系统开发平台:
VisualStudio2008
Ø系统开发语言:
C#、XML
Ø数据库:
SQlServer2005
Ø二次开发引擎:
ArcGISEngine
3.3数据库
数据库操作部分由信息管理功能模块和信息查询功能模块组成,这两个功能模块的工作主要是采用三层架构的思想实现。
通过三层架构这个思想对数据库和模块之间进行合理地信息添加、更改、删除和查询等操作。
3.3.1三层架构
“三层架构”中的“三层”是指:
表示层(UserInterfaceLayer-UI)、业务逻辑(BussinessLogicLayer-BLL)、数据访问层(DataAccessLayer-DAL)。
三层架构的结构可以用图3-3表示:
图3-3三层架构之间的关系
表示层(UI):
位于系统的最外层(最上层),离用户最近。
用于显示数据和接收用户输入的数据,只提供软件系统与用户交互的界面。
其职责是只接收用户输入的数据,并将业务逻辑层处理的数据结果显示给用户。
业务逻辑层(BLL):
位于表示层和数据访问层之间,专门负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是通过数据访问层从数据库读出这些数据。
该层可以包括一些对“商业逻辑”描述的代码在里面。
业务逻辑层是表示层和数据访问层之间的桥梁,负责数据处理和传递。
此层只负责对数据的业务处理,不需要在业务逻辑层里写访问数据库的SQL语句。
业务逻辑层可以验证用户输入的数据、缓存从数据库中读取的数据等等。
数据访问层(DAL):
仅实现对数据的保存和读取操作。
数据访问包括访问数据库系统、二进制文件、文本文档或是XML文档。
在此层最好不要出现任何与业务逻辑和界面设计相关的代码。
也就是说,要保证数据访问层中方法的功能仅负责存储或读取数据就可以了。
使用三层架构的优点:
可以充分把软件开发任务分解,有利于团队合作开发。
例如,表示层的开发人员只需关注用户界面的设计和数据的输入和显示,他们不需要了解数据的存取和处理逻辑;业务逻辑层的开发人员则关注系统的数据处理逻辑,而不需要关心界面的设计、数据的存取和显示;而数据访问层的开发人员只需关注数据的存取操作,无需了解界面设计、数据的输入、显示和业务处理。
这样分层团队开发更利于控制软件质量,充分发挥版本控制和单元测试。
三层构架的软件适应性很强,一旦有什么需求变动可以很快的进行代码更改,因而代码的复用性很高。
其中一层的代码改变不影响其他层。
例如,用户界面的改变并不影响业务逻辑层和数据访问层,甚至访问不同数据库管理系统也只改变数据访问层的代码而不会影响业务逻辑层和表示层的代码。
3.3.2数据库设计
数据库设计是把现实世界中一定X围内存在的应用处理和数据抽象成一个数据库的具体结构的过程。
具体地讲,就是对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立能反映现实世界信息与信息间的联系、满足用户要求、能被某个数据库管理系统(DBMS)所接受、能实现系统目标并有效存取数据的数据库。
数据库设计是信息系统开发和建设的重要组成部分,其质量好坏直接影响到系统各个处理过程的性质和质量。
好的数据库设计是有效、准确操作数据库的基石。
GIS数据库设计取决于目标、用户要求、功能和如何处理数据。
它通常包括:
制定整个数据库的使用目的和目标,分析和评价各种设计方案和雏形试验。
GIS数据库的设计要有更多的考虑,因为地理数据有矢量和栅格之分,各种数据又同时具有空间和属性特征,有的还有时间上的信息特征,各种特征的信息,可能要用不同的结构来表达。
各类数据库的开发可能是使用不同的GIS软件来完成的,这样数据的格式也各不相同,一个数据库可能要求容纳各种各样的数据类型和格式。
如何有机地将这些考虑结合起来,也是一个GIS数据库设计成功与否的关键因素之一。
GIS数据库的设计应该既考虑数据的特征,又兼顾应用目的。
这样可以使设计出的数据库既充分利用技术上的优势,又兼顾用户的应用目的。
3.3.3数据库选择
SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
与MicrosoftVisualStudio、MicrosoftOfficeSystem以及新的开发工具包(包括BusinessIntelligenceDevelopmentStudio)的紧密集成使SQLServer2005与众不同。
无论是开发人员、数据库管理员、信息工作者还是决策者,SQLServer2005都可以为您提供创新的解决方案,帮助您从数据中更多地获益。
SQLServer2005就是关系数据库管理工具,数据库能汇集各种信息以供查询、存储和检索。
SQL的优点在于它能使用数据表示图或自定义窗体收集信息。
数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。
另外,SQL允许创建自定义报表用于打印或输出数据库中的信息。
SQL也提供了数据存储库,可以使用桌面数据库文件把数据文件置于网络文件服务器,与其他网络用户共享数据库。
SQL是一种关系数据库管理工具,关系数据库是已开发的最通用的数据库之一。
如上所述,SQL作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
因此,选择SQLServer2005数据库作为此系统的数据库不失为一个很好的选择。
3.3.4数据表设计
在信息管理功能模块和信息查询功能模块主要设计了五个数据表,分别为人员(RenYuan)、车辆(CL)、线路(AllXll)、站点和GPS数据表。
1、人员信息表(RenYuan)
人员信息表的设计主要是存储公司所有人员资料信息的一个表,公司的人员信息大致可以认为由以下几类组成,分别是人员id、所归属的线路id、所在的车队id、人员编号、人员XX、XX简拼、性别、XX号、职位、司机驾驶号、联系地址和联系等,如图3-4所示:
图3-4人员信息表
2、车辆信息表(CL)
车辆信息表的设计主要是对车辆资料信息的存储,包括车辆id、所行使的路线、行驶的路线名称、所归属的车队id、车辆编号、车牌号和车载SIM卡号等,如图3-5所示:
图3-5车辆信息表
3、线路信息表(ALLXL)
线路信息表的设计主要是针对所有线路信息资料进行相应的记录,如线路id、线路名称、线路编号、车队、始发站、末发站、始发站首班时间、首发站末班时间、末发站首班时间和末发站末班时间等,如图3-6所示:
图3-6路线信息表
4、站点信息(ZD)
站点信息表的设计主要就是记录某条线路上的所有站点的信息,如站点id、站点名称、站点号、站点坐标和所归属的线路id等等,如图3-7所示:
图3-7站点点位信息表
5、GPS数据表(GPS)
GPS数据表的设计主要就是用来通过车辆的信息记录该车辆实时位置信息和获取该位置信息的时间等等。
如记录id、记录时间、经纬度坐标、GPS获取时间(gpstime)和对应车辆的车载SIM卡号等信息。
通过以上信息表的设计可以合理地记录各种信息以便能够为以后的服务提供更多的详细信息,同时也能够为公司的运营进行妥善管理。
3.3.5信息管理与查询功能模块
信息管理与查询功能模块的基本功能就是对数据库的操作:
添加、修改、删除和查询等。
信息管理功能模块主要是针对公司运营管理机制而建立的一个功能模块。
在这个功能模块里面可以完善公司的管理机制,如公司人员的调动、信息的更改等问题都可以实时地进行更替,以便能够灵活地掌握公司人员的当前状况(离职或是在职等信息),为下一步的工作分配创造了有利条件,经过这样的动态管理对于公司的内部运营维护起到了一些关键性的作用。
信息查询功能模块主要是能够对所需要的信息通过指定的条件进行查询,将查询出来的结果进行校对:
是否将这个信息进一步加以更改或是删除此信息等问题。
这方面功能的制定对信息管理功能模块有一定的改善作用。
除此之外,也能够为用户提供他们想要了解的信息等问题,如用户想了解某条公交线路的信息,他们只需要根据某条线路的id或是线路名称就可以查询到他们所需要的信息了。
这两个功能模块的操作主要就是通过上面介绍的三层架构为中介,通过这个中介对数据库进行各种信息的调用,之后把符合条件的信息再通过这个中介显示给用户,让用户能够非常清楚的看到自己所要了解的信息。
关于这方面的具体代码详见附录A,操作前后的结果如下所示:
1、添加
公司都会有新成员入职、新车辆引进等情况,那么这些新成员、新车辆的信息就要进行妥善管理,因此,添加功能就可以完全实现这些信息的录入,方便于公司运营管理。
具体思路是首先打开对应的添加菜单并填写相关对应信息,如图3-8所示:
图3-8信息添加功能
添加完人员信息之后,现在来查看一下添加完之后的结果,查询结果如下:
图3-9信息添加后结果
从查询的结果之中可以看出来,上面所添加的人员信息已经完全地添加进数据库中的RenYuan数据表当中了,也就实现了公司新成员等信息的妥善管理。
2、修改
公司运营管理中,可能会出现人员变动等信息,因此,对于这种信息的变动,公司应当进行及时的更改,以便于公司运营管理不会出现差错,因此,修改功能实现了此方面的工作。
修改功能的具体实现思路是首先根据某个信息的某一个字段进行查询,把所要查询的所有信息在窗体中对应的控件中显示出来,之后根据具体的正确信息进行修改,如图3-10所示:
图3-10信息修改功能
修改信息之后,如果确认无错,即可单击更新按钮,单击完更新按钮之后,所对应的人员信息即可被修改。
修改后的人员信息如图3-11所示:
图3-11信息修改后结果
如上图所示,线路id、车队id、性别、职位、驾驶号和联系地址已经被成功修改了。
3、删除
很多时候,公司员工因为某些原因而离职,车辆达到报废要求而不得不进行报废,这些问题的出现对于公司运营情况来说,它们已经没有什么用途了,所以公司应当随时对这些无用的信息进行删除,以达到良好地运营管理,因此,删除功能在这方面体现的就尤为重要了。
删除信息的具体思路是先通过具体信息的某一个字段进行查询,把想要删除的记录查询出来,之后再进行删除操作,这样才不会删除错误的信息。
如图3-12所示:
图3-12删除功能
删除后的信息在数据库中会被永久的删除不能恢复,所以进行删除操作的时候需要谨慎,删除后的结果如下图所示:
图3-13删除后结果
从图中可以清晰地看出,当我们把人员id为“1111”的信息查询出来并进行删除操作,之后此信息在数据库中就被永久地删除了,如上图所示,人员id为“1111”的信息已经不存在了,说明删除操作成功。
4、查询
对于用户来说,主要进行的就是查询操作,通过查询,用户可以很清晰地了解到自己想要知道的信息,所以说查询功能在数据操作方面也是一个不可或缺的重要功能。
查询操作可以分为两部分进行查询:
其一,可以把所有的信息一次性全部查询出来,如图3-14所示:
图3-14所有站点信息查询结果
考虑另一方面的问题是数据库中存储的数据量是非常庞大的,当查询所有的数据的时候,软件反应的速度往往也会变得非常缓慢,并且这样的查询结果对我们日常生活也没有太大的意义。
因此要根据我们想要的某条信息的一个字段进行查询,这样查询的结果不但有实际意义,而且反映的速度也相当快。
下面我们以线路id进行查询,查询结果如图3-15所示:
图3-15按条件查询信息结果
从上图中我们可以看出,根据线路id查询的结果已经显示出来了。
这也就是我们想要的结果。
至此,信息管理功能模块和信息查询功能模块已经全部做完了,这个部分的关键技术就是三层架构的使用,通过三层架构我们可以非常简单的调用数据库获得我们想要的信息,其次,数据库的各种相关语句都可以写在二进制文件、文本文档或是XML文档中,这样的好处就是数据库的操作语句全都在二进制文件、文本文档或是XML文档中,当发生需要修改问题的时候不用再去更改程序的中的代码而只需要更改二进制文件、文本文档或是XML文档中的代码就可以了。
3.4GIS功能模块
GIS功能模块是本系统的重要模块,在这个模块中主要设计轨迹查询显示功能和实体对象属性信息查询显示功能两个方面的内容。
公交车辆历史轨迹查询显示功能主要思路如下:
首先,通过公交车辆的车牌信息选取公交车,其次通过一个可选择的时间段,之后以这两个选择条件为基础进行公交车的历史点位绘制即公交车轨迹显示。
这些公交车的历史点位信息主要就是来源于上面介绍的数据库中GPS数据表中的对应的经纬度坐标等信息,通过这个对应的经纬度坐标信息进行相应公交车辆的历史点位绘制。
实体对象属性信息查询显示功能是以轨迹显示功能为前提,对所绘制公交车辆的历史点位进行属性查询,如查询的点位所对应的公交车辆、该车辆所对应的线路信息、经纬度坐标和GPS事件的获取等有关属性信息。
3.4.1轨迹查询显示
公交车历史轨迹查询显示的具体实现思路如下:
首先就调用数据库中获取的GPS数据,其次就是根据ArcGISEngine开发组件进行画点函数的编写,之后再根据相关的条件调用画点函数,通过这样一系列操作,最终在地图上进行公交车辆历史点对象的绘制。
轨迹显示的大致流程图如图3-16所示:
图3-16公交车轨迹显示流程
首先利用车载全球