基于ARCGIS公交车辆轨迹查询毕业设计正文.docx
-
资源ID:1667627
资源大小:494.20KB
全文页数:35页
- 资源格式: DOCX
下载积分:16金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于ARCGIS公交车辆轨迹查询毕业设计正文.docx
目 录第一章 绪论11.1 研究背景11.2研究目的与意义1第二章 地理信息系统(GIS)技术32.1 GIS概念及组成32.2 GIS在车辆监控系统中的作用4第三章 系统框架的设计与实现53.1 系统设计与构想53.2系统开发环境63.3 数据库63.3.1 三层架构63.3.2 数据库设计73.3.3 数据库选择83.3.4 数据表设计93.3.5 信息管理与查询功能模块103.4 GIS功能模块143.4.1 轨迹查询显示143.4.2 实体对象属性信息查询18第四章 结论20附录A21附录B27参考文献31摘 要随着越来越多的交通事故的发生,加强交通监管将显得尤为重要。根据车辆的行车信息进行车辆轨迹查询将在事故后续处理中发挥重要作用。为此采用ArcGIS Engine以及SQL Server数据库技术,开发出一个基于VS2008平台的公交车辆轨迹查询功能模块。通过三层架构架构思想进行用户与数据库之间各种数据信息的交融,实现对公司运营状况的妥善管理和不同时间段的公交车辆历史轨迹的查询。这些功能除了在交通监管中的应用,它还可以在森林防火、运钞车监护、犯罪嫌疑车辆监控也有着很好的实用性。关键字:ArcGIS Engine;SQL Server;轨迹查询AbstractWith the growing number of traffic accidents, its essential to reinforce the traffic supervision .Realizing vehicle track playback on the basis of the driving information will play an important role in the further treatment of an accident. For it to use the ArcGIS Engine and SQL Server database technology to developed a query function model of public transport vehicles track based on VS2008 platform . Through the ideas of three-tier architecture ,which blends a variety of data information between the user and the database to achieve the proper management of the operations of the company and query the historical trajectory of public transport vehicles at different periods of time . Besides the supervision of transport, it was also useful in the forest fire prevention, bank vehicles guardianship, criminal vehicle monitoring.KeyWords: ArcGIS Engine; SQL Server; trajectory query第一章 绪论1.1 研究背景在第十一届全国人民代表大会第四次会议上提出的十二五规划中,表示将继续完善产业发展政策,争取把地理信息产业纳入国家战略性新兴产业规划。作为地理信息产业的重要支持,地理信息系统(GIS ) 就将作为一个重要的技术手段推动地理信息产业的蓬勃发展,更好更快的实现十二五规划。地理信息系统是一种专门处理地理空间数据的计算机系统与技术,这种技术使地图这种独特的视觉化效果和地理分析功能集成在一起,为人们提供决策支持手段。地理信息系统(GIS) 具有空间数据结构和有效的数据集成、独特的地理空间分析能力、快速的空间定位搜索和复杂的空间查询功能、强大的图形生成的可视化表达手段以及地理过程的烟花模拟和空间决策支持等功能。引用ESRI 公司的一句宣传语:没有你做不到的,只有你想不到的,地理信息系统也具有如此的魅力。近些年来,在科学发展观理论的指导下,人们的生活水平和科学技术发展的程度达到了一个新的高度,越来越多的人们拥有了自己的汽车。但随之而来的交通事故的频发,为了处理好这些实际问题,智能导航系统将会应用的越来越普遍。车辆轨迹查询与回放系统作为智能导航重要的子系统,它能向人们展示被监督车辆在具体时间内的具体行程以及行车信息。因此,车辆轨迹查询回放系统在森林防火、运钞车监护、犯罪嫌疑车辆监控、交警巡查等有着非常重要的应用。对于这一系统的成功实现,有着很强的实用性,并能拓展地理信息系统的应用方向。1.2研究目的与意义 目前,随着经济的发展和人民生活水平的提高,私家车也在逐渐增多。但是伴随着私家车的无限量的扩张,我们的交通就会越来越拥挤从而导致人们无法通行,路上耗费的时间让我们越来越无法承受。此外,我们身边的环境问题逐渐成为人们心中的一大困扰,这样结果就是空气质量直线型下降,我们再无法呼吸到新鲜空气从而又直接导致人们身体的各种疾病的产生。除此之外,随着国际问题的不稳定性,油的价格也让人们颇不敢想象,犹如几句俗语,买的起车,开不起车啊。基于这几点来说,公交车出行是人们必须的一项选择了。公交车早就成为城市交通运输体系的重要组成部分。目前,大多数公交车都可以提供18小时服务。虽然公交车有它的方便之处,但是也体现出了很多不便,如:上班的时候处于交通的高峰期,各种车辆相互拥挤,以至于导致公交车的到站时间加长等等问题。随着这些问题的出现,越来越多的交通事故也是接连不断,因此加强交通监管将显得尤为重要。根据车辆的行车信息进行车辆轨迹查询,可以实现不同时间段的车辆轨迹查询以及所行使车辆信息,这些功能将在事故后续处理中发挥极其重要作用。针对以上所描述,因此采用二次开发语言C#,利用ArcGIS Engine以及SQL Server数据库技术,开发出一个基于Visual Studio 2008平台的功能模块,进行公交车辆历史轨迹的查询系统。该系统采用ArcGIS Engine开发技术、以ArcGIS 9.3集成平台,实现车辆历史轨迹查询。本系统除了在交通监管中的应用,它还可以在森林防火、运钞车监护、犯罪嫌疑车辆监控也有着很好的实用性。第二章 地理信息系统(GIS)技术2.1 GIS概念及组成GIS是在计算机软硬件支持下,以采集、存储、管理、处理、检索、分析和显示空间物体的地理分布数据及与之相关的属性,并以回答用户问题或提供服务等为主要任务的技术系统。图2-1 地理信息系统的组成从系统论和应用的角度出发,地理信息系统被分为四个子系统(图 (a)),即计算机硬件和系统软件,数据库系统,数据库管理系统,应用人员和组织机构。(1)计算机硬件和系统软件:这是开发应用地理信息系统的基础。其中,硬件主要包括计算机、打印机、绘图仪、数字化仪、扫描仪;系统软件主要指操作系统。(2)数据库系统:系统的功能是完成对数据的存储,它又包括几何(图形)数据和属性数据库。几何和属性数据库也可以合二为一,即属性数据存在于几何数据中。(3)数据库管理系统:这是地理信息系统的核心。通过数据库管理系统,可以完成对地理数据的输入、处理、管理、分析和输出。(4)应用人员和组织机构:专业人员,特别是那些复合人才(既懂专业又熟悉地理信息系统)是地理信息系统成功应用的关键,而强有力的组织是系统运行的保障。从数据处理的角度出发,地理信息系统又被分为数据输入子系统,数据存储与检索子系统,数据分析和处理子系统,数据输出子系统(图 (b)。(1)数据输入子系统:负责数据的采集、预处理和数据的转换。(2)数据存储与检索子系统:负责组织和管理数据库中的数据,以便于数据查询、更新与编辑处理。(3)数据分析与处理子系统:负责对数据库中的数据进行计算和分析、处理。如面积计算,储量计算,体积计算,缓冲区分析,空间叠置分析等。(4)数据输出子系统:以表格、图形、图象方式将数据库中的内容和计算分析结果输出到显示器、绘图纸或透明胶片上。2.2 GIS在车辆监控系统中的作用GIS能够把实时接收的多个车辆的位置信息显示在电子地图上,同时实现所有与GPS相关的GIS功能。包括:多种不同比例尺电子地图的管理与显示;地图窗口中以不同比例尺直观地查看指定车辆的位置及查询相关的信息;多窗口同时监控,并可打印当前窗口内容;监控车辆位置、状态、运动轨迹的实时显示;地图上任意位置的信息动态提示;地图的快速显示、缩放和查询。监控车辆的远程控制,包括强制发回位置、车辆控制器控制(如:开关门、防盗等) 询问、通知信息发送等,调度指令可在车载微型打印机上打印出来,或显示在车载终端上。基于规则的车辆预警处理系统。用户能够对监控车辆设置各类预警条件(标记、路线、区域、时间等),一旦发现接收的监控车辆信息满足预警条件,立刻发出报警信号。用户可根据需要,对车辆实施远程熄火,锁门等方式来控制车辆的状态。车辆数据的各类查询和统计。车辆信息的更新和修改。车辆历史运行轨迹的查询与回放。第三章 系统框架的设计与实现3.1 系统设计与构想本系统可以以不同的车辆和不同的行驶时间段为条件进行相应车辆的历史轨迹查询。公交车车辆轨迹查询是利用车载全球定位系统终端接收机采集车辆的实时数据,在地理信息系统(GIS)平台上按多时段进行轨迹查询时效模拟,它结合了GPS(Global Positioning System)导航技术、GIS(Geographical Information System)电子地图及计算机技术,实现了从数据采集、数据存储、数据管理,最后到实际应用。由于GPS终端接收机的相对独立性和数据的低存储量,其接收数据的可视性和可比较性需要借助于其他的可视化操作平台。为此,该系统采用ArcGIS Engine以及SQL Server数据库技术,以ArcGIS 9.3集成平台,实现模拟车辆历史轨迹查询。本系统的构想是由数据库操作和地图显示操作两部分构成,大体设计的流程如图3-1所示:图3-1 系统框架设计流程图整个系统的功能模块大致可由三个部分组成:信息管理功能模块、信息查询功能模块、GIS功能模块。框架整体设计效果如图3-2所示:图3-2 系统框架设计效果图3.2系统开发环境本系统主要做的方面是基于ArcGIS公交车辆轨迹查询和各种信息的管理与查询,因此所引用的开发环境如下所示:Ø 系统开发平台:Visual Studio 2008Ø 系统开发语言:C#、XMLØ 数据库:SQl Server 2005Ø 二次开发引擎:ArcGIS Engine3.3 数据库数据库操作部分由信息管理功能模块和信息查询功能模块组成,这两个功能模块的工作主要是采用三层架构的思想实现。通过三层架构这个思想对数据库和模块之间进行合理地信息添加、更改、删除和查询等操作。3.3.1 三层架构“三层架构”中的“三层”是指:表示层(User Interface Layer-UI) 、业务逻辑(BussinessLogic Layer-BLL)、数据访问层(Data Access Layer-DAL)。三层架构的结构可以用图3-3表示:图3-3 三层架构之间的关系表示层(UI):位于系统的最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,只提供软件系统与用户交互的界面。其职责是只接收用户输入的数据,并将业务逻辑层处理的数据结果显示给用户。业务逻辑层(BLL):位于表示层和数据访问层之间,专门负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是通过数据访问层从数据库读出这些数据。该层可以包括一些对“商业逻辑”描述的代码在里面。业务逻辑层是表示层和数据访问层之间的桥梁,负责数据处理和传递。此层只负责对数据的业务处理,不需要在业务逻辑层里写访问数据库的SQL语句。业务逻辑层可以验证用户输入的数据、缓存从数据库中读取的数据等等。数据访问层(DAL):仅实现对数据的保存和读取操作。数据访问包括访问数据库系统、二进制文件、文本文档或是XML文档。在此层最好不要出现任何与业务逻辑和界面设计相关的代码。也就是说,要保证数据访问层中方法的功能仅负责存储或读取数据就可以了。使用三层架构的优点:可以充分把软件开发任务分解,有利于团队合作开发。例如,表示层的开发人员只需关注用户界面的设计和数据的输入和显示,他们不需要了解数据的存取和处理逻辑;业务逻辑层的开发人员则关注系统的数据处理逻辑,而不需要关心界面的设计、数据的存取和显示;而数据访问层的开发人员只需关注数据的存取操作,无需了解界面设计、数据的输入、显示和业务处理。这样分层团队开发更利于控制软件质量,充分发挥版本控制和单元测试。三层构架的软件适应性很强,一旦有什么需求变动可以很快的进行代码更改,因而代码的复用性很高。其中一层的代码改变不影响其他层。例如,用户界面的改变并不影响业务逻辑层和数据访问层,甚至访问不同数据库管理系统也只改变数据访问层的代码而不会影响业务逻辑层和表示层的代码。3.3.2 数据库设计数据库设计是把现实世界中一定范围内存在的应用处理和数据抽象成一个数据库的具体结构的过程。具体地讲,就是对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立能反映现实世界信息与信息间的联系、满足用户要求、能被某个数据库管理系统(DBMS)所接受、能实现系统目标并有效存取数据的数据库。数据库设计是信息系统开发和建设的重要组成部分,其质量好坏直接影响到系统各个处理过程的性质和质量。好的数据库设计是有效、准确操作数据库的基石。GIS数据库设计取决于目标、用户要求、功能和如何处理数据。它通常包括:制定整个数据库的使用目的和目标,分析和评价各种设计方案和雏形试验。GIS数据库的设计要有更多的考虑,因为地理数据有矢量和栅格之分,各种数据又同时具有空间和属性特征,有的还有时间上的信息特征,各种特征的信息,可能要用不同的结构来表达。各类数据库的开发可能是使用不同的GIS软件来完成的,这样数据的格式也各不相同,一个数据库可能要求容纳各种各样的数据类型和格式。如何有机地将这些考虑结合起来,也是一个GIS数据库设计成功与否的关键因素之一。GIS数据库的设计应该既考虑数据的特征,又兼顾应用目的。这样可以使设计出的数据库既充分利用技术上的优势,又兼顾用户的应用目的。3.3.3 数据库选择SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。 与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 SQL Server 2005 与众不同。无论是开发人员、数据库管理员、信息工作者还是决策者,SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。SQL Server2005 就是关系数据库管理工具,数据库能汇集各种信息以供查询、存储和检索。SQL 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel的电子表格,可以使数据库一目了然。另外,SQL允许创建自定义报表用于打印或输出数据库中的信息。SQL也提供了数据存储库,可以使用桌面数据库文件把数据文件置于网络文件服务器,与其他网络用户共享数据库。SQL 是一种关系数据库管理工具,关系数据库是已开发的最通用的数据库之一。如上所述,SQL 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。 因此,选择SQL Server 2005数据库作为此系统的数据库不失为一个很好的选择。3.3.4 数据表设计在信息管理功能模块和信息查询功能模块主要设计了五个数据表,分别为人员(RenYuan)、车辆(CL)、线路(AllXll)、站点和GPS数据表。1、人员信息表(RenYuan)人员信息表的设计主要是存储公司所有人员资料信息的一个表,公司的人员信息大致可以认为由以下几类组成,分别是人员id、所归属的线路id、所在的车队id、人员编号、人员姓名、姓名简拼、性别、身份证号、职位、司机驾驶号、联系地址和联系电话等,如图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.4 GIS功能模块 GIS功能模块是本系统的重要模块,在这个模块中主要设计轨迹查询显示功能和实体对象属性信息查询显示功能两个方面的内容。公交车辆历史轨迹查询显示功能主要思路如下:首先,通过公交车辆的车牌信息选取公交车,其次通过一个可选择的时间段,之后以这两个选择条件为基础进行公交车的历史点位绘制即公交车轨迹显示。这些公交车的历史点位信息主要就是来源于上面介绍的数据库中GPS数据表中的对应的经纬度坐标等信息,通过这个对应的经纬度坐标信息进行相应公交车辆的历史点位绘制。实体对象属性信息查询显示功能是以轨迹显示功能为前提,对所绘制公交车辆的历史点位进行属性查询,如查询的点位所对应的公交车辆、该车辆所对应的线路信息、经纬度坐标和GPS事件的获取等有关属性信息。3.4.1 轨迹查询显示公交车历史轨迹查询显示的具体实现思路如下:首先就调用数据库中获取的GPS数据,其次就是根据ArcGIS Engine开发组件进行画点函数的编写,之后再根据相关的条件调用画点函数,通过这样一系列操作,最终在地图上进行公交车辆历史点对象的绘制。轨迹显示的大致流程图如图3-16所示:图3-16 公交车轨迹显示流程首先利用车载全球定位系统终端接收机采集公交车辆的实时数据,之后把采集完的GPS实时数据直接记录在相对应的GPS数据表中,所采集的GPS数据包括车辆的经纬度坐标等信息;在显示系统上主要通过ArcGIS Engine开发组件触动相应的控件来进行相对应的功能的实现。公交车辆历史轨迹查询显示主要就是在ArcGIS的基础上,通过Visual Studio 2008进行二次开发,本系统主要运用ArcGIS Engine开发组件的功能建立画点函数,之后通过获取数据库中的经纬度坐标调用画点函数进行相应点位的绘制。进行画点函数编写之前首先要了解一些ArcGIS Engine开发组件的概念与功能。本公交车辆历史轨迹查询显示主要运用了ArcGIS Engine开发组件的几个相关的接口,如图3-16所示,轨迹显示大概应用了五个接口,通过这些接口的相互作用,最终在地图上显示公交车辆历史点位。地图(Map)是ArcGIS Engine 的主要组成部分。Map对象既是数据的管理容器,同时也是数据显示的主要载体。Map对象的主要接口有IMap、IGraphicsContainer、IActiveView等。Map对象可以装载地理数据,这些数据是以图层的形式放入地图对象的,Layer作为装载的单位,当第一个图层装载进Map对象时,Map对象自动设置空间坐标系为当前图层的空间坐标系,以后再装载的图层都将使用 Map对象已经设置的空间参考。Layer对象本身没有装载数据,其作用是获得数据的引用,用于管理数据源的连接,数据始终在GeoDatabase或地图文件中。 1.IMap接口IMap接口主要用于管理Map对象中的layer对象、要素选择集、MapSoourround对象和标注等。Map对象通过图层的方式管理地理数据。在IMap接口中定义了大量的方法来操作其中的图层对象,如AddLayer、AddLayers,这两个方法分别是将一个、多个图层加载进Map对象;ClearLayers是清除Map中所有图层;LayerCount则是Map中的图层计数器,计算Map中有多少个图层;SelectFeature是获取选择实体的个数。当图层添加进Map对象时,最先添加的图层放在最下面,后添加的图层则依次叠加在原有图层上。2.IGraphicsContainer接口Map对象通过IGraphicsContainer接口来管理图形元素(包括图形元素和框架元素)。接口提供了添加、更新、删除元素的方法:AddElement、UpdateElement、DeleteElement,以及选择元素的方法,如LocateElement方法。使用一个点来选择元素,它需要传入一个点和一个容差值;LocateElmentsByEnvelope方法,通过在Map上拖拽一个矩形区域,然后根据举行区域选择区域内的元素。3.IActiveView接口IActiveView接口是Map对象最主要、最常用接口之一,该接口定义了Map对象的数据显示功能。通过该接口,可以在Map上绘制图形、改变视图范围、获取ScreenDisplay对象的指针、显示或隐藏标尺和滚动条,也可以刷新视图。IActiveView接口提供了几个重要的方法和属性,如Extent属性,该属性用于返回Map对象当前视图的范围,是一个Envelope对象;FullExtent属性,用于返回视图的全局范围。 4.IFeatureLayer接口IFeatureLayer接口用于管理要素图层的数据源,即要素类(FeatureClass)。DataSourceType属性用于返回图层的数据源类型。Search方法通过两个参数,一个是过滤器,它是一个IQueryFilter类型的对象;一个是布尔值,用于说明返回的要素游标是否循环,返回一个ICursor类型的对象。5.Point对象点(Point)代表了一个0维的具有X、Y坐标的几何对象。点是没有任何形状的,可用于描述点类型的要素,而且Geometry中的任何类型都是用点来产生的。构成几何形状的顶点存在着3种可以选择的属性,即Z、M和ID。Z值在大多数情况下都可用于表示一个点的Z坐标,还可以将Z值作为一个点的辅助值来使用;M即度量值,可以是一个路径对象的线性度量,用于交通工程中一条公路的不同点的位置;ID值即为一个点点的唯一标识值。点集(Multipoint)是具有形同属性的点的集合,用于构成高级集合对象、集合对象动态模拟等。IPoint接口定义了Point对象的属性和方法,点(Point)可以使用PutCoords方法创建,也可以使用IConstructPoint接口来创建。画点对象主要就是基于以上的几种接口以及接口中的方法去实现。在本系统中画点的基本思路是首先要创建一个空的点图层,之后要在此空的点图层中调用画点函数进行点对象的绘制。画点之前首先要考虑的一个问题就是要从数据库中提取大量的经纬度坐标数据点(即公交车实时位置),所以考虑的就是希望能够根据所设定的条件把这些经纬度的坐标点数据依次放到一个点集或是一个数据表中,之后再调用画点函数把这些点位置在地图图层上绘制出来即公交车历史点位。因此,基于这个思路,自己首先创建一个画点函数,其参数是一个表。画点之前要考虑的另一个问题是,我们可能会多次查询不同车辆的的轨迹。基于这个想法,在画另一个公交车辆历史点对象的时候,应该首先清除之前的公交车历史点对象,之后再根据所设定的条件进行点对的绘制,这样的好处就是我们每次查询公交车轨迹的时候,总是显示我们当前要了解的公交车轨迹,而不会把不属于这辆公交车的轨迹显示在当前我们查询后的地图上。画点函数如图3-17所示:图3-17 画点函数进行公交车辆历史轨迹查询时,主要根据设定的车辆、时间段,通过程序实现操作。(代码见附录B)比如查询车辆的车牌号为:A/B2006,且指定时间处于2011-12-28 08:00:00和2011-12-28 08:50:00之间的数据,查询车辆历史轨迹的结果如图3-18所示:图3-18 公交车轨迹显示结果3.4.2 实体对象属性信息查询 实体对象属性信息查询是在轨迹显示的基础上对其公交车辆历史轨迹点位进行属性查询,其基本思路是根据数据库中数据表的字段信息进行设计。实体对象属性信息查询结果如图3-19所示:图3-19 实体对象属性查询结果从图3-19中可以看出,我们查询了车牌号为“京A/B2006”的实体对象信息,实体对象分别为7和76,从中可以了解到,该车所走的线路为“300快内”、车辆编号为“84006”、车载SIM卡号为“13910249295”、车辆行驶速度分别为“14.0km/h”和“28.4km/h”、获取的时间分别为“08:04:18”和“08:39:52”。至此,GIS功能模块部分的功能已经全部设计完成,在这个部分中主要就是相关接口之间的相互作用,最后在地图上绘制出点对象即公交车的历史点位。其次就是实体对象属性信息的设计,实体对象属性信息的设计主要是根据公交车在公路上的实际地理位置和其公交车的基本信息进行设计,这个属性信息的设计具有实际意义。第四章 结论本公交车辆历史轨迹查询是基于ArcGIS 9.3开发引擎并利用C#语言开发出的公交车轨迹查询显示系统,经过虚拟验证,该程序可以在不同时间段内实现轨迹查询。它结合了GPS导航技术、GIS电子地图及计算机技术,是一种跨平台的GIS技术,对日常生活有很大的帮助,并为GIS和GPS的多系统集成实现提供了实例帮助。所以本文首先介绍了这方面方面的一点点知识,GPS的运用主要是通过GPS接收机接收车载GPS终端所有时段的数据,其次是根据这些数据和给定的条件在GIS二次开发的程序中进行相关功能的实现,之后便开始了此系统主要功能方面的介绍即系统框架中主要的三个模块的系统讲述,分别是信息管理功能模块、信息查询功能模块和GIS功能模块。信息管理功能模块和信息查询功能模块主要是对各种信息的管理和对用户的要求进行查询,如人员、车辆等问题,可以增加新来的职员,删除已经不在单位工作的职员,职员信息改变的可以进行志愿信息修改等等。除了此项功能之外还可以根据用户所要查询的信息,进行相关性查询,如线路的信息,站点信息等等。这两项完成了公司管理和用户的实际问题的妥善处置,为以后公交车辆的管理系统研发提供前提。GIS功能模块主要研究了公交车辆历史轨迹查询的结果显示和公交车车辆的属性信息查询等,为用户进一步了解公交车在实际中的应用提供重要依据。开发此系统的关键技术就是数据库中三层架构思想的运用,通过这种三层架构的运用可以很轻松地进行数据库操作语句的编写,并且不需要关心程序界面的设计、数据的存取显示等问题,除此之外,一旦有什么需求变动可以很快的进行代码的更改,基于这个原因,其代码的复用性很高(其中一层的代码不会影响其它层)。其次就是公交车辆点位绘制时几种接口之间的作用,通过这几种接口之间的接连性很轻松地绘制出点对象,最后是实体对象属性信息查询功能的实现,这个功能从很大一部分上体现了它的实际意义点对象真实的具体属性信息。本系统的整体框架是以公交管理系统为主框架的基础上进行特定车辆轨迹查询方面的一个开发程序,本系统也为公交车辆动态轨迹回放系统做出了进一步的铺垫作用。因其自己的能力水平有限,本系统还需要很多地方的改善和提高,例如,目前自己只能研发到把公交车历史点位画出来,不能动态地实现轨迹显示、车辆和地图匹配等问题,希望在以后的工作中能够大力加以改善,把这个系统的功能运用到公交车辆管理系统中,使其功能更加完善,为社会提供重要价值。附录Ausing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using RunBusTrackMonitor.Components ;using RunBusTrackMonitor.DAO;namespace RunBusTrackMonitor.BLL class BusBLL #region"添加一条人员信息" / <summary> / 添加一条人员信息