基于PHP的车辆GPS轨迹回放软件设计与实现

更新时间:2024-05-02 15:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘 要

随着国内经济的迅猛增长,人民的生活水平显著提高,而一些其他问题也随之而来,私家车的数目的增多导致了交通的拥堵,绿色出行的理念慢慢被人们接受并提倡。使用公共交通工具既缓解了交通的压力,使得出行更为便捷,又减少了对环境的污染。

本文讨论了基于PHP+MySQL的公交轨迹回放系统软件的设计与实现,其中重点描述了系统软件的实现,包括系统分析、系统调查、数据流程分析、功能设计、数据库设计等。系统采用Web-GIS技术,通过百度地图和php实现对公交车的GPS位置信息管理。本系统的主要功能模块如下:查询公交车的线路信息、提供车辆换乘导航服务。查询某一辆公交车的实时GPS信息、车辆当前位置、车辆运行轨迹。系统通过浏览器实现公交车轨迹的回放、当前位置显示等功能,方便了百姓乘坐公交车以及工作人员管理公交车。

关键词:GPS;轨迹回放;WebGIS。

Abstract

With the rapid growth of the domestic economy and people's living standards improved significantly, while some other problem has cropped up, the increasing number of private cars has led to traffic jams, the concept of green travel slowly being accepted and promoted. Using public transport both to ease the pressure of traffic, making travel more convenient, but also reduce environmental pollution.

This paper discussed the design and implementation of PHP + MySQL bus track playback system, which focuses describes the implementation of system software, including system analysis, system survey, data flow analysis, functional design, database design. System uses Web-GIS Baidu Maps and php technology to realize the bus GPS location information management. The main functional blocks of the system are as follows: Query bus line information, providing transfer vehicle navigation services. Check a bus in a real-time GPS information, the current position of the vehicle, the vehicle trajectory. System through the browser implementations bus track playback, the current position display function to facilitate the people to take the bus and the bus staff management.

Keywords: GPS;track playback;WebGIS

目录

引言 ....................................................................................................................................... 1 第一章 系统分析 ................................................................................................................. 2 1.1系统需求分析 .............................................................................................................. 2 1.2用户需求 ...................................................................................................................... 2 1.3系统可行性分析 .......................................................................................................... 3 第二章 系统开发技术准备 ................................................................................................. 4 2.1WEB-GIS技术介绍 ........................................................................................................ 4 2.1系统开发所需工具 ...................................................................................................... 4 2.2开发环境的搭建 .......................................................................................................... 4 第三章 系统设计 ................................................................................................................. 8 3.1 系统总体结构设计 ..................................................................................................... 8 3.2.数据库设计 .................................................................................................................. 9 3.2.1数据库的完整性 ................................................................................................... 9 3.2.2数据库设计 ........................................................................................................... 9 第四章 系统实施 ............................................................................................................... 13 4.1程序设计 .................................................................................................................... 13 4.1.1连接数据库模块设计 ......................................................................................... 13 4.1.2地图模块实现 ..................................................................................................... 14 4.1.3菜单模块 ............................................................................................................. 14 4.1.4系统的数据传输 ................................................................................................. 15 4.1.5查询公交线路信息 ............................................................................................. 15 4.1.6查询位置信息 ..................................................................................................... 16 4.1.7公交换乘方案查询 ............................................................................................. 17 4.1.8车辆轨迹数据 ..................................................................................................... 18 4.1.9车辆实时位置信息查询 ..................................................................................... 20 4.1.10车辆轨迹回放 ................................................................................................... 20

4.2系统测试 .................................................................................................................... 21 第五章 结论 ....................................................................................................................... 26 参考文献 ............................................................................................................................. 27 致谢 ..................................................................................................... 错误!未定义书签。

引言

信息化时代的来临使得人们对信息的需求与日俱增,人们的衣食住行已经都与之息息相关。现在人们越来越重视效率,人们已经开始掌握最新最快的的消息,传统的行业的执行方式面临着挑战,公交系统同样如此。人们可以通过网络了解到自己想要知道的资料,可以通过网络了解最新发生的新闻事件,但是,人们为什么不可以通过网络来了解自己在等待的公交车现在到底在哪里,还要等多久。

本系统的开发可以解决这一问题,通过访问本系统,人们可以知道自己去某一位置应该如何乘车,知道某一路公交车现在到了什么地方,还有多久能到站,知道自己距离目的地还有多远。这些系统功能的实现大大的提升了人们乘坐公交车的效率。例如上班族下班后通过使用本软件,可以知道车辆的位置,就可以决定自己什么时候离开公司,减少自己的候车时间;外来务工人员通过使用本软件可以更容易的在一个陌生的城市里出行;工作人员通过本系统,可以直观的了解某一线路的某一辆车的运行情况,根据需要进行车辆的管理和调度,方便乘车人员,为公司赢得好评。

本系统使用Web-GIS技术实现车辆位置信息的管理,使用百度地图API实现位置轨迹在地图上的回放如何查询车辆的运行信息,以及百度地图基本功能的实现。主要研究内容是根据公交车终端返回的数据得到公交车GPS位置、公交车的运行轨迹、公交车的运行情况等信息,然后通过使用Web-GIS技术, php+Nginx+MySQL技术以及使用百度地图的API接口将车辆的位置信息和轨迹信息在地图上显示出来,方便百姓使用,同时让管理人员更加直观的了解公交车的运行情况,通过本系统查看公交车的当前位置,运行轨迹,运行参数等信息,方便公交车的管理与调动,并对公交车有一定的监控功能,包括车速是否超速,车辆的运行线路是否正确,车辆是否有拒载的行为等。

1

这样,php和nginx服务就会同时启动了。

这时可以做一下测试,编写index.php,内容为,在浏览器上输入http://localhost:8088/index.php,如果访问到的页面是关于php的版本信息介绍页面则环境搭建成功。

图2-2测试环境截图

7

第三章 系统设计

3.1 系统总体结构设计

需求分析部分已将系统功能大致罗列出来,根据需求分析的结果,再对这些功能分类、模块化,经过整理分析,确定系统功能如下:

地图初始化:系统需要使用地图展示查询结果,所以需要使用地图模块,本系统使用的是百度地图。

地图控件的添加:为了方便地图的使用,需要在地图上添加操作控件。 查询某一线路信息:输入线路名称,查询线路详细的站点信息,以及该线路在地图上的运行轨迹。

查询某一位置信息:输入要查询的位置名称,查询该位置在地图上的位置,并在地图上标注出来。

查询公交换乘方案:输入起始点和终点的位置,查询两地之间的公交换乘方案,在地图上展示出来,并在界面右侧描述详细的换乘方案。

查询车辆GPS数据:输入要查询的线路名,选择某一车辆,在数据库中查询该车辆的历史GPS数据,并实现将结果分页显示。

查询车辆当前位置:输入要查询的线路名,选择某一车辆,在数据库中查询该车辆的当前GPS数据,并将该数据运用到地图模块,在地图上显示出来。

查询车辆运行轨迹:输入要查询的线路名,选择某一车辆,在数据库中查询该车辆的历史GPS数据,将这组数据传送至地图模块,在地图上动态的展示车辆的运行轨迹。

功能模块图如下:

8

车辆轨迹回放系统地图模块查询线路轨迹回放地图初始化地图控件添加查询某一线路信息查询某一位置信息查询公交换乘方案查询车辆GPS数据查询车辆当前位置查询车辆轨迹

图3-1.系统功能模块图

3.2.数据库设计

3.2.1数据库的完整性

数据库设计既要全面的涵盖系统的所有功能模块,又要保证数据的完整性和可操作性。数据库设计要根据系统的需求设计出相应数据表,明确数据表之间的关系,按照要求定义数据表中的字段属性,设置好各个表字段的主键外键关系,减少由于操作不当造成的系统数据错误,删除异常等现象。

本系统通过设置表字段的主键外键达到约束数据的唯一性和相互依赖的目的,使以后系统表数据的增删改查操作更加简单、安全。

3.2.2数据库设计

本系统的数据库设计主要为数据表的设计,系统所需的数据表有车辆位置信息数据表gpsdata,车辆历史GPS表gpshistory,车辆表busid,线路表lineid。数据表之间的关系如下:

9

车辆表PK线路表PK 线路编号线路名称公司编号发车间隔公司编号 车辆自编号车辆名称线路编号线路名称是否检测大间隔PK GPS历史数据车辆编号线路名称线路编号终端号GPS时间日期时间经度纬度速度方向海拔运行状态中门后门前门运行下一站编号距离历史数据保存的数据发送用时接受用时总行程PK GPS数据车辆编号线路编号GPS数据日期经度纬度速度偏移角下一站编号人数发送时间方向运行状态离开标志图3-2 数据库关系图

线路表以线路编号为主键,车辆表、GPS历史数据表、GPS数据表主键均为车辆编号,这样可以方便查询,通过车辆编号可以查询到车辆所属线路,车辆GPS历史数据,车辆GPS数据等信息。 1.GPS历史数据表(gpshistory)

表格说明:该表格记录了公交车运行的相关信息的历史数据。主要为车辆在某一时刻的GPS位置信息,通过该数据可以查询车辆在某一时刻的运行信息,如所处的位置,车辆的运行方向等,通过车辆连续的位置数据可以粗略的绘制出车辆的运行轨迹。

字段名称 O_LINENAME O_LINENO O_TERMINALNO O_BUSNAME O_GPSDATETIME O_DATE O_TIME

表3-1 gpshistory表 字段含义 字段类型 数据长度 线路名称 线路编号 终端号 车辆名 GPS时间 日期 时间 varchar varchar varchar varchar datetime Date Time 10

备注 50 3 10 10

O_LONGITUDE O_LATITUDE O_SPEED O_DIRECTION O_HEIGHT O_RUNSTATUS O_MIDDOOR O_REARDOOR O_FRONTDOOR O_RUN 经度 纬度 速度 方向 海拔 运行状态 中门 后门 前门 运行 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 15 15 3 3 5 3 3 3 3 3 3 3 50 50 20 20 10 数据单位为分 数据单位为分 O_NEXTSTATIONNO 下一站编号 O_DISTANCE O_HISTORYDATA O_RESERVED O_SENDTIME O_RECEIVETIME O_TOTALMILE 距离 历史数据 保存的数据 发送用时 接受用时 总行程 2.车辆实时信息表gpsdata

表格说明:此表记录了车辆的实时信息,主要包括车辆编号,所属线路编号,GPS数据的日期,车辆的经纬度数据,车速,下一站编号,车辆上下行等数据,根据查询此表所得的数据,可以在地图上显示出车辆的当前位置,此表中的数据时刻在更新,保证查询结果的准确性。 字段名称 BusNO LineNo GPSDATE Longitude Latitude Speed

表3-2 gpsdata表 字段含义 字段类型 车辆编号 线路编号 GPS数据日期 经度 纬度 速度 varchar(6) varchar(3) datetime varchar(10) varchar(10) smallint(5) 11

数据长度 6 3 10 10 5 备注 数据单位为分 数据单位为分

开始输入要查询的位置名数据提交到功能实现页面N查询位置信息检查是否有此信息Y显示结果结束

图4-3 查询位置信息流程图

用户选择查询位置信息功能,输入某一位置名称,点击确定按钮,通过form表单传入wzcxmap.php中,将数据通过php技术传入到javascript中,调用百度地图的LocalSearch方法查询位置信息,并将结果在地图上标注出来。如果查询到结果,则在地图上标注出该位置,如果没有查询到,则返回重新输入。

4.1.7公交换乘方案查询

公交换乘方案查询功能模块的流程图如下:

17

开始输入起始点,终点位置数据提交到功能实现页面N查询换乘方案检查目的地是否可达Y显示结果结束

图4-4 公交换乘模块流程图

选择公交换乘导航模块,输入起始点、终点位置,确定提交。将数据传入到javascript的地图实现模块中,通过百度地图的TransitRoute方法进行路径查询,通过policy:BMAP_TRANSIT_POLICY_AVOID_SUBWAYS方法设置换乘方案,根据本系统的需要设置为只乘坐公交车。如果查询到可行的换乘方案,则在地图上显示换乘路径,页面右侧显示详细的换乘方法,如果没有可行的换乘方案,则返回重新输入。

4.1.8车辆轨迹数据

显示某一辆公交车的GPS数据信息模块的流程图如下:

18

开始输入要查询车辆的车牌号数据提交到功能实现页面N访问数据库,查询该车辆的GPS数据检查数据库中是否有此数据Y显示结果结束

图4-5 查询车辆GPS数据流程图

输入车辆的车牌号,通过func.php的form表单将数据传入table.php中,执行查询语句:

select * from gps where O_BUSNAME = $BusNO

如果查询到此记录的信息,将得到的结果在table表单中显示出来,这里设置为分页显示,每页显示5条数据,通过php技术实现分页操作;如果没有查到此信息,则显示暂无记录,重新输入。

分页显示功能中首先通过声明变量并赋值pagesize实现每页数据大小的设置,然后通过查询数据库中该记录的总数量,并通过与pagesize之间的运算得出数据应该划分的总页数。在数据显示时通过在select语句中添加limit限制其输出数据的数量,通过设置page实现数据上一页、下一页、首页和尾页的跳转,并输出当前页数和总页数信息。

19

4.1.9车辆实时位置信息查询

查询某辆公交车实时位置信息功能模块的流程图如下:

开始输入要查询车辆的车牌号数据提交到功能实现页面N访问数据库,查询该车辆的GPS数据检查数据库中是否有此数据Y绘制当前位置结束

图4-6 查询车辆实时位置流程图

用户输入要查询的线路,然后选择要查询的车辆,确定提交后,在cxclwz.php页面中实现功能,首先根据输入的车辆信息查询数据库

select Longitude,Latitude from gpsdata where BusNO = $busno $busno为定义的php变量,被赋值为$_POST[BusNO],如果查询到结果,则将这条信息记录里的经纬度信息提取出来,传入到地图模块,通过百度API中的

map.addOverlay(marker1)

添加marker1的标注点,如果查询不到,则提示输入有误。

4.1.10车辆轨迹回放

显示某一辆公交车在地图上的轨迹信息功能模块的流程图如下:

20

开始输入要查询车辆的车牌号数据提交到功能实现页面N访问数据库,查询该车辆的GPS数据检查数据库中是否有此数据Y绘制运行轨迹结束

图4-7 车辆轨迹回放模块流程图

用户输入要查询的车牌号,确认提交后,在gjhxmap.php中查询gpshistory数据库中是否有此记录,查询语句为:

select Longitude,Latitude from gpshistory where BUSNO = $busno 如果可以查询到此记录信息,则将查询到的GPS数据通过php技术传入javascript的地图实现模块中,调用百度地图API的Polyline方法在地图上显示出轨迹,再调用DrivingRoute方法将车辆的运行动态的在地图上显示出来。通过button控制轨迹回放是否开始;如果未查询到此信息,则返回重新输入。

4.2系统测试

软件测试的目的主要是对系统的功能模块是否能正常工作进行验证,尽量减少由于系统的原因对用户在实际应用过程中造成的损失,当然,由于测试用例的限制,这里只是初步测试,更多的问题可能要在系统测试运行中被发掘。

这里主要是验证本系统的功能是否实现,测试结果如下:

21

图4-8为地图模块,显示的是以呼和浩特市为中心,缩放级别为12的地图,在此页面上可以通过鼠标操作实现地图的拖拽、缩放、平移、切换2D/3D图、查看卫星图等功能。

图4-8地图模块

图4-9为菜单模块,显示系统主要功能目录,在此页面可实现每一个菜单的折叠功能,减少对页面布局的占用,使页面更加简洁,方便用户使用。

图4-9.菜单模块

图4-10为查询公交线路信息结果截图,用户按照提示输入要查询的线路,例如查询79路公交车,提交后查询结果如图:在地图部分显示出该线路的运行轨迹,在地图右侧显示详细的站点信息,方便用户直观的了解线路信息。

22

图4-10.查询公交线路信息

图4-11为查询位置信息结果截图,如要查询内蒙古工业大学,在输入框输入提交后,系统执行查询,将查询结果的位置在地图上标注出来,如果查询结果不唯一,则用字母A,B,C等进行区分,并显示该地点的地址信息、电话信息等。

图4-11 查询位置信息结果

图4-12为公交换乘导航结果截图,如要查询从内蒙古工业大学到内蒙古农业大学的换乘方案,在输入框输入起点和终点信息,执行查询,将换乘轨迹在页面上显示出来,右侧显示多种详细换乘方案,用户根据自己需要选择方案。

图4-12 公交换乘导航结果

图4-13为查询车辆GPS数据成功结果截图,图4-14为查询失败截图。例如用

23

户输入要查询车牌号为4252的车辆GPS数据,系统在页面下方显示车辆的GPS数据,分页显示,每页显示五行,方便用户查看数据。

图4-13 查询车辆GPS数据结果

图4-14 查询车辆GPS数据失败

图4-15为查询位置结果截图,例如用户查询编号为1007的车辆的当前位置信息,在输入框中输入确定后,系统执行查询,在地图上显示出查询结果,通过本功能可以方便用户了解某一车辆的当前动态。

图4-15 查询结果截图

图4-16为车辆轨迹回放结果截图,例如要查询编号为0001的车辆的运行轨迹,提交查询请求后,系统执行查询,将结果在地图上显示出来,首先显示出该车辆在过去的时间在地图上的运行轨迹,然后点击开始按钮,动态的在地图上描绘出车辆的运行轨迹,方便用户掌握某一车辆的运行状况。

24

图4-16 车辆轨迹回放结果

25

第五章 结论

本系统设计内容为车辆位置信息管理系统,系统实现的功能有呼和浩特市范围内位置信息查询,并将查询结果在地图上显示出来;根据输入的线路名查询该线路的轨迹以及站点信息;根据输入的起始点及终点位置查询换乘方案;对某一车辆GPS数据等信息查询;查询某一辆公交车的实时位置;对某一车辆的轨迹在地图动态回放轨迹。

系统开发采用php+nginx+mysql结构,由于php和nginx版本的升级,在搭建环境的时候遇到过些问题,后来在老师的帮助下完成系统搭建。系统中的地图实现功能使用的是百度地图的javascript API,项目开发重点在于如何使用百度地图的API实现系统需求的功能。由于之前没有做过类似的项目,本次开发参考了一些百度地图的API文档,以及一些示例demo,经过认真的研究学习后完成本模块。百度地图API是国内地图服务中的比较普及的模块,它提供了很多基本功能,开发者可以通过这些基本功能的拓展实现自己需要的功能,适合二次开发使用。

由于本系统是第一个版本,虽然经过初步测试,但是可能还会有一些问题存在,所以在以后的运行中应将这些需要改进的问题记录下来,然后进行修订,完善系统的功能。

26

参考文献

[1]王缓缓,李虎,张友纯;基于GPS的车辆管理系统的难点及解决方案[J];计算机应用;2003年S2期

[2]王勃;北京市公路WebGIS系统设计与实现[D];大连理工大学;2006年

[3]何小兵,韩雪琴,文亚星;基于GIS/GPRS的城市交通决策指挥系统模型研究[J];重庆交通学院学报;2005年02期

[4]张立东,贾磊,潘景山;城市公交信息化系统[J];信息技术与信息化;2005年04期 [5]唐章英;GIS技术在车辆导航系统中的应用[D];西南交通大学;2005年 [6]侯仰杰;车辆监控调度系统中心监控软件研究与开发[D];清华大学;2004年 [7]王晓飞;车辆监控系统中Web GIS子系统的研究[D];南京理工大学;2007年 [8]黄青萍;王伟;基于GPRS的GPS车辆定位监控系统[J];微计算机信息;2007年13期

[9]于明飞;车辆监控系统中的定位技术分析[J];科技信息(学术研究);2007年16期 [10]余阳;基于GPS/GIS/3G技术的警用车辆监控系统[A];第十六届全国青年通信学术会议论文集(上)[C];2011年

[11]余镜周;基于WebGIS的物流配送车辆监控系统研究与实现[D];北京邮电大学;2010年

[12] 《百度地图JavaScript_API_v2.0开发指南》 [13] 《百度地图JavaScript_API_v2.0类参考》

[14] 蒋波涛,朱强,钱旭东 《WebGIS开发实践手册》.2009

[15] Dirk Schaefer: The Application of Web-GIS in the Bus Information and Transfer System: Department of Geography University Mainz

[16] Lukas Kleppin,Winfried Schroder,Roland Pesch,Gunther Schmidt; Development and Application of the WebGIS ‘MossMet’; GI-Days 2007 - Young Researchers Forum

[17] M.Griesemer,D.Hasler; On the Smooth Feshbach-Schur Map; Fachbereich Mathematik, Universitat Stuttgart; Department of Mathematics, University of Virginia;2007

27

参考文献

[1]王缓缓,李虎,张友纯;基于GPS的车辆管理系统的难点及解决方案[J];计算机应用;2003年S2期

[2]王勃;北京市公路WebGIS系统设计与实现[D];大连理工大学;2006年

[3]何小兵,韩雪琴,文亚星;基于GIS/GPRS的城市交通决策指挥系统模型研究[J];重庆交通学院学报;2005年02期

[4]张立东,贾磊,潘景山;城市公交信息化系统[J];信息技术与信息化;2005年04期 [5]唐章英;GIS技术在车辆导航系统中的应用[D];西南交通大学;2005年 [6]侯仰杰;车辆监控调度系统中心监控软件研究与开发[D];清华大学;2004年 [7]王晓飞;车辆监控系统中Web GIS子系统的研究[D];南京理工大学;2007年 [8]黄青萍;王伟;基于GPRS的GPS车辆定位监控系统[J];微计算机信息;2007年13期

[9]于明飞;车辆监控系统中的定位技术分析[J];科技信息(学术研究);2007年16期 [10]余阳;基于GPS/GIS/3G技术的警用车辆监控系统[A];第十六届全国青年通信学术会议论文集(上)[C];2011年

[11]余镜周;基于WebGIS的物流配送车辆监控系统研究与实现[D];北京邮电大学;2010年

[12] 《百度地图JavaScript_API_v2.0开发指南》 [13] 《百度地图JavaScript_API_v2.0类参考》

[14] 蒋波涛,朱强,钱旭东 《WebGIS开发实践手册》.2009

[15] Dirk Schaefer: The Application of Web-GIS in the Bus Information and Transfer System: Department of Geography University Mainz

[16] Lukas Kleppin,Winfried Schroder,Roland Pesch,Gunther Schmidt; Development and Application of the WebGIS ‘MossMet’; GI-Days 2007 - Young Researchers Forum

[17] M.Griesemer,D.Hasler; On the Smooth Feshbach-Schur Map; Fachbereich Mathematik, Universitat Stuttgart; Department of Mathematics, University of Virginia;2007

27

本文来源:https://www.bwwdw.com/article/5i1g.html

Top