基于PHP的车辆GPS轨迹回放软件设计与实现.docx
- 文档编号:14251685
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:37
- 大小:2.21MB
基于PHP的车辆GPS轨迹回放软件设计与实现.docx
《基于PHP的车辆GPS轨迹回放软件设计与实现.docx》由会员分享,可在线阅读,更多相关《基于PHP的车辆GPS轨迹回放软件设计与实现.docx(37页珍藏版)》请在冰点文库上搜索。
基于PHP的车辆GPS轨迹回放软件设计与实现
摘要
随着国内经济的迅猛增长,人民的生活水平显著提高,而一些其他问题也随之而来,私家车的数目的增多导致了交通的拥堵,绿色出行的理念慢慢被人们接受并提倡。
使用公共交通工具既缓解了交通的压力,使得出行更为便捷,又减少了对环境的污染。
本文讨论了基于PHP+MySQL的公交轨迹回放系统软件的设计与实现,其中重点描述了系统软件的实现,包括系统分析、系统调查、数据流程分析、功能设计、数据库设计等。
系统采用Web-GIS技术,通过XX地图和php实现对公交车的GPS位置信息管理。
本系统的主要功能模块如下:
查询公交车的线路信息、提供车辆换乘导航服务。
查询某一辆公交车的实时GPS信息、车辆当前位置、车辆运行轨迹。
系统通过浏览器实现公交车轨迹的回放、当前位置显示等功能,方便了百姓乘坐公交车以及工作人员管理公交车。
关键词:
GPS;轨迹回放;WebGIS。
Abstract
Withtherapidgrowthofthedomesticeconomyandpeople'slivingstandardsimprovedsignificantly,whilesomeotherproblemhascroppedup,theincreasingnumberofprivatecarshasledtotrafficjams,theconceptofgreentravelslowlybeingacceptedandpromoted.Usingpublictransportbothtoeasethepressureoftraffic,makingtravelmoreconvenient,butalsoreduceenvironmentalpollution.
ThispaperdiscussedthedesignandimplementationofPHP+MySQLbustrackplaybacksystem,whichfocusesdescribestheimplementationofsystemsoftware,includingsystemanalysis,systemsurvey,dataflowanalysis,functionaldesign,databasedesign.SystemusesWeb-GISBaiduMapsandphptechnologytorealizethebusGPSlocationinformationmanagement.Themainfunctionalblocksofthesystemareasfollows:
Querybuslineinformation,providingtransfervehiclenavigationservices.Checkabusinareal-timeGPSinformation,thecurrentpositionofthevehicle,thevehicletrajectory.Systemthroughthebrowserimplementationsbustrackplayback,thecurrentpositiondisplayfunctiontofacilitatethepeopletotakethebusandthebusstaffmanagement.
Keywords:
GPS;trackplayback;WebGIS
引言
信息化时代的来临使得人们对信息的需求与日俱增,人们的衣食住行已经都与之息息相关。
现在人们越来越重视效率,人们已经开始掌握最新最快的的消息,传统的行业的执行方式面临着挑战,公交系统同样如此。
人们可以通过网络了解到自己想要知道的资料,可以通过网络了解最新发生的新闻事件,但是,人们为什么不可以通过网络来了解自己在等待的公交车现在到底在哪里,还要等多久。
本系统的开发可以解决这一问题,通过访问本系统,人们可以知道自己去某一位置应该如何乘车,知道某一路公交车现在到了什么地方,还有多久能到站,知道自己距离目的地还有多远。
这些系统功能的实现大大的提升了人们乘坐公交车的效率。
例如上班族下班后通过使用本软件,可以知道车辆的位置,就可以决定自己什么时候离开公司,减少自己的候车时间;外来务工人员通过使用本软件可以更容易的在一个陌生的城市里出行;工作人员通过本系统,可以直观的了解某一线路的某一辆车的运行情况,根据需要进行车辆的管理和调度,方便乘车人员,为公司赢得好评。
本系统使用Web-GIS技术实现车辆位置信息的管理,使用XX地图API实现位置轨迹在地图上的回放如何查询车辆的运行信息,以及XX地图基本功能的实现。
主要研究内容是根据公交车终端返回的数据得到公交车GPS位置、公交车的运行轨迹、公交车的运行情况等信息,然后通过使用Web-GIS技术,php+Nginx+MySQL技术以及使用XX地图的API接口将车辆的位置信息和轨迹信息在地图上显示出来,方便百姓使用,同时让管理人员更加直观的了解公交车的运行情况,通过本系统查看公交车的当前位置,运行轨迹,运行参数等信息,方便公交车的管理与调动,并对公交车有一定的监控功能,包括车速是否超速,车辆的运行线路是否正确,车辆是否有拒载的行为等。
第一章系统分析
1.1系统需求分析
为了明确系统需求,首先要对现在市面上的同类软件进行对比分析。
只有对比了类似软件的功能优点和不足才能更加完善的做出自己项目的设计、开发,以达到软件符合更加人性化和合理化的要求。
项目的需求分析主要是通过询问软件使用者对该项目功能上的需求和界面、数据、使用工具、操作复杂度等进行了解分析,然后从不同渠道了解同类型软件的功能状况和界面友好度得出相关信息。
最后,综合这些信息确定本项目的相关需求。
本项目为基于PHP的公交信息查询后台管理软件设计与实现,系统采用PHP、Mysql和Nginx作为项目开发环境,在PC机上进行开发、测试。
因此,在硬件的要求上需要一台装有Windows系统和IE浏览器的PC机。
由于系统要用到地图模块,所以要保证系统有互联网接入。
经过认真分析得出,系统的主要需求功能如下:
实现页面的地图功能,包括简单的地图缩放、平移、拖拽、2D/3D地图切换,卫星图切换;实现呼和浩特市范围内某一位置的查询,并在地图上标记出来。
实现公交乘车导航,输入起始点位置,在页面上实现导航线路,显示换乘方案;实现某一线路查询功能,输入某一线路,查询该线路的站点信息,显示线路运行轨迹;实现查询某辆公交车GPS数据信息,输入车辆编号,显示车辆GPS数据;实现查询某辆公交车的当前位置信息,在地图上显示出来;实现查询某辆公交车的运行轨迹,输入车牌号,在地图上动态的显示车辆的某一时间段内的运行轨迹。
1.2用户需求
要设计一个优秀的系统软件,就要明确用户对系统的实际需求,包括功能需求与操作需求。
本系统对如下四个方面进行了系统的用户需求分析:
用户的信息需求:
用户可以通过本系统得到如下信息,公交车线路信息,公交车换乘信息,位置查询信息,公交车GPS数据信息,公交车实时位置信息,公交车运行轨迹信息等。
根据用户的需求,初步确定系统功能结构如下图:
图1-1用户需求功能
用户的处理需求:
界面友好,系统操作应简明易懂,用户无需过多的操作即可得到自己需要的查询结果,同时,功能也要完整,符合实际工作需要。
系统的适用性和通用性:
系统采用B/S结构,可以避免由于操作系统的不同造成的不便,系统采用php技术,语言风格简明易懂,易于后期的系统功能的扩充与维护。
系统的安全性需求:
用户操作只能执行查询操作,不能有涉及到危害数据库的操作,由于本系统主要功能为查询,所以可以保证数据库的安全,同时建议服务器端应及时对数据进行备份,防止因为某些不可抗拒因素造成的损失。
1.3系统可行性分析
现阶段国内百姓的出行方式以公共交通工具为主,绝大部分城市的公交系统都已经完善,现在人们面临的问题是,如何提高乘车效率,减少自己的候车时间,选择合理的换乘方式。
本系统主要解决的就是这些问题。
本系统采用的是XX地图的API接口,其功能丰富,交互性强,界面友好,对于浏览器的兼容性强。
php语言是一门功能非常强大的脚本语言,它继承了c,java等语言的优点,功能强大,语言简洁,是目前主流的页面开发使用的脚本语言,页面将javascript和php融合起来,功能丰富,非常适合本项目的开发。
系统可以提供基本的位置查询,公交线路查询,公交换乘查询,车辆位置、GPS数据查询,车辆轨迹回显等功能,用户可以通过这些功能可以更好的改善自己的乘车体验,选择自己的乘车方案,提高乘车效率。
工作人员可以通过本系统对公交车的运行情况进行管理。
第二章系统开发技术准备
2.1Web-GIS技术介绍
Web-GIS系统指的是基于internet平台,应用软件采用网络协议,运用在internet的地理信息系统。
XX地图是典型的WEBGIS。
Web-GIS的核心是在GIS中嵌入HTTP标准的应用能够体系,实现internet环境下的空间信息管理和发布。
全球范围内任意的www节点均可访问GIS服务,是真正的大众化的GIS服务,目前广泛应用于生产生活当中。
2.1系统开发所需工具
本系统采用php+mysql+nginx作为开发环境,所使用的工具如下:
PHPVersion5.2.17压缩版,nginx-1.2.9,mysql-5.6.11,UtraEdit编辑器,Firework,InternetExplorer浏览器等。
PHP全拼为HypertextPreprocessor,中文名为超文本预处理器,是一种通用的开源脚本语言,由于吸收了c,java等语言特点,非常适用于B/S结构。
MySQL是关系型数据库管理系统,它的特点是体积小,速度快,成本低,开放源码,因此在中小型项目中使用较多。
Nginx为高性能的HTTP和反向代理服务器,同样开放源代码,而且稳定性好,功能丰富,系统资源消耗低。
UtraEdit是一个强大的文本编辑器,能突出php语言指令,实现html的标签颜色显示,因此使用本软件进行项目代码编写。
Firework是一个常用的图片处理工具,使用简便,适用于网页所用图片的裁剪以及渲染等操作。
InternetExplorer为用户量最大的浏览器之一,因兼容性强而著称。
本系统使用IE浏览器作为测试工具可以避免由于浏览器的差异造成的页面显示异常等现象。
2.2开发环境的搭建
1.安装mysql,解压到d:
\nginx\mysql。
在系统属性中配置环境变量,path路径添加如下信息:
D:
\nginx\mysql\bin。
修改mysql目录下的my.ini文件
basedir=d:
\\nginx\\mysql
datadir=d:
\\nginx\\mysql\\data
port=3306
character_set_server=utf8
点击开始菜单,输入cmd进入控制台:
mysqld--installmysql
--defaults-file=“d:
\nginx\mysql\my.ini”到这里,mysql数据库安装完成,启动服务,执行:
netstartmysql,以后mysql会在windows启动时自动启动。
2.配置php
修改php-recomcond.ini为php.ini,修改
extension_dir="D:
/nginx/php/ext"
extension=php_mysql.dll
extension=php_mysqli.dll
cgi.fix_pathinfo=1
date.timezone=Asia/Shanghai
fastcgi.impersonate=1
cgi.rfc2616_headers=1
将enable_dl=Off改为enable_dl=On将php目录下的libmysql.dll放到c:
/windows下,至此,php配置完成
3.nginx配置
打开conf目录下的nginx.conf,修改:
location/{
rootwww;
indexindex.htmlindex.htmindex.php;
}
以及
location~\.php${
rootwww;
fastcgi_pass127.0.0.1:
9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}
最后生成的目录如下:
图2-1.系统开发环境目录
4.下载RunHiddenConsole.exe,编写批处理文件
start_nginx.bat
@echooff
REMWindows下无效
REMsetPHP_FCGI_CHILDREN=5
REM每个进程处理的最大请求数,或设置为Windows环境变量
setPHP_FCGI_MAX_REQUESTS=1000
echoStartingPHPFastCGI...
RunHiddenConsoleD:
/nginx/php/php-cgi.exe-b127.0.0.1:
9000-cD:
/nginx/php/php.ini
echoStartingnginx...
RunHiddenConsoleD:
/nginx/nginx.exe-pD:
/nginx
stop_nginx.bat
@echooff
echoStoppingnginx...
taskkill/F/IMnginx.exe>nul
echoStoppingPHPFastCGI...
taskkill/F/IMphp-cgi.exe>nul
exit
这样,php和nginx服务就会同时启动了。
这时可以做一下测试,编写index.php,内容为
phpphpinfo();?
>,在浏览器上输入http:
//localhost:
8088/index.php,如果访问到的页面是关于php的版本信息介绍页面则环境搭建成功。
图2-2测试环境截图
第三章系统设计
3.1系统总体结构设计
需求分析部分已将系统功能大致罗列出来,根据需求分析的结果,再对这些功能分类、模块化,经过整理分析,确定系统功能如下:
地图初始化:
系统需要使用地图展示查询结果,所以需要使用地图模块,本系统使用的是XX地图。
地图控件的添加:
为了方便地图的使用,需要在地图上添加操作控件。
查询某一线路信息:
输入线路名称,查询线路详细的站点信息,以及该线路在地图上的运行轨迹。
查询某一位置信息:
输入要查询的位置名称,查询该位置在地图上的位置,并在地图上标注出来。
查询公交换乘方案:
输入起始点和终点的位置,查询两地之间的公交换乘方案,在地图上展示出来,并在界面右侧描述详细的换乘方案。
查询车辆GPS数据:
输入要查询的线路名,选择某一车辆,在数据库中查询该车辆的历史GPS数据,并实现将结果分页显示。
查询车辆当前位置:
输入要查询的线路名,选择某一车辆,在数据库中查询该车辆的当前GPS数据,并将该数据运用到地图模块,在地图上显示出来。
查询车辆运行轨迹:
输入要查询的线路名,选择某一车辆,在数据库中查询该车辆的历史GPS数据,将这组数据传送至地图模块,在地图上动态的展示车辆的运行轨迹。
功能模块图如下:
图3-1.系统功能模块图
3.2.数据库设计
3.2.1数据库的完整性
数据库设计既要全面的涵盖系统的所有功能模块,又要保证数据的完整性和可操作性。
数据库设计要根据系统的需求设计出相应数据表,明确数据表之间的关系,按照要求定义数据表中的字段属性,设置好各个表字段的主键外键关系,减少由于操作不当造成的系统数据错误,删除异常等现象。
本系统通过设置表字段的主键外键达到约束数据的唯一性和相互依赖的目的,使以后系统表数据的增删改查操作更加简单、安全。
3.2.2数据库设计
本系统的数据库设计主要为数据表的设计,系统所需的数据表有车辆位置信息数据表gpsdata,车辆历史GPS表gpshistory,车辆表busid,线路表lineid。
数据表之间的关系如下:
图3-2数据库关系图
线路表以线路编号为主键,车辆表、GPS历史数据表、GPS数据表主键均为车辆编号,这样可以方便查询,通过车辆编号可以查询到车辆所属线路,车辆GPS历史数据,车辆GPS数据等信息。
1.GPS历史数据表(gpshistory)
表格说明:
该表格记录了公交车运行的相关信息的历史数据。
主要为车辆在某一时刻的GPS位置信息,通过该数据可以查询车辆在某一时刻的运行信息,如所处的位置,车辆的运行方向等,通过车辆连续的位置数据可以粗略的绘制出车辆的运行轨迹。
表3-1gpshistory表
字段名称
字段含义
字段类型
数据长度
备注
O_LINENAME
线路名称
varchar
50
O_LINENO
线路编号
varchar
3
O_TERMINALNO
终端号
varchar
10
O_BUSNAME
车辆名
varchar
10
O_GPSDATETIME
GPS时间
datetime
O_DATE
日期
Date
O_TIME
时间
Time
O_LONGITUDE
经度
varchar
15
数据单位为分
O_LATITUDE
纬度
varchar
15
数据单位为分
O_SPEED
速度
varchar
3
O_DIRECTION
方向
varchar
3
O_HEIGHT
海拔
varchar
5
O_RUNSTATUS
运行状态
varchar
3
O_MIDDOOR
中门
varchar
3
O_REARDOOR
后门
varchar
3
O_FRONTDOOR
前门
varchar
3
O_RUN
运行
varchar
3
O_NEXTSTATIONNO
下一站编号
varchar
3
O_DISTANCE
距离
varchar
3
O_HISTORYDATA
历史数据
varchar
50
O_RESERVED
保存的数据
varchar
50
O_SENDTIME
发送用时
varchar
20
O_RECEIVETIME
接受用时
varchar
20
O_TOTALMILE
总行程
varchar
10
2.车辆实时信息表gpsdata
表格说明:
此表记录了车辆的实时信息,主要包括车辆编号,所属线路编号,GPS数据的日期,车辆的经纬度数据,车速,下一站编号,车辆上下行等数据,根据查询此表所得的数据,可以在地图上显示出车辆的当前位置,此表中的数据时刻在更新,保证查询结果的准确性。
表3-2gpsdata表
字段名称
字段含义
字段类型
数据长度
备注
BusNO
车辆编号
varchar(6)
6
LineNo
线路编号
varchar(3)
3
GPSDATE
GPS数据日期
datetime
Longitude
经度
varchar(10)
10
数据单位为分
Latitude
纬度
varchar(10)
10
数据单位为分
Speed
速度
smallint(5)
5
Angle
偏移角
smallint(5)
5
NextStationNo
下一站编号
smallint(5)
5
ManNum
人数
smallint(5)
5
SLFlag
tinyint(3)
3
SendDateTime
发送日期
datetime
Direction
方向
tinyint(3)
3
RunStatus
运行状态
tinyint(3)
3
LeaveFlag
离开标志
int
3.线路表lineid
表格说明:
此表主要记录了现有的线路信息,以及所属的公交公司的信息,方便查询车辆的线路。
表3-3lineid表
字段名称
字段含义
字段类型
数据长度
备注
O_LINENO
线路编号
varchar(3)
3
O_LINENAME
线路名称
varchar(50)
50
O_FILIALENO
公司编号
varchar(6)
6
O_FILIALENAME
公司名称
varchar(50)
50
O_CANCEL_TIME
收车时间
smallint(5)
5
4.车辆表(busid)
表格说明:
本表格主要记录了车辆的一些信息,包括车辆的编号、名称、所属线路编号、线路名称等,通过这些信息可以了解车辆与线路之间的关系。
表3-4busid表
字段名称
字段含义
字段类型
数据长度
备注
O_BUSNO
车辆自编号
varchar(6)
-
-
O_BUSNAME
车辆名称
varchar(6)
-
-
O_LINENO
线路编号
varchar(3)
-
-
O_LINENAME
线路名称
varchar(20)
-
-
O_ISSINGLEUPDATE
是否检测大间隔
smallint(5)
-
-
第四章系统实施
4.1程序设计
4.1.1连接数据库模块设计
本系统使用的是MySQL数据库,使用的脚本语言为php,所以此模块主要是通过php语言访问数据库,数据库用户名为root,密码为tianxunceshi,要连接的数据库为zsgj,连接数据库流程图如下:
图4-1连接数据库流程
首先验证输入的用户名和密码是否正确,如果不正确则提示错误,返回重新输入,如果正确则验证所连接的数据库是否存在,如果数据库不存在,则提示错误,如果正确则连接数据库成功,至此,数据库连接模块完成。
将这一模块代码写入conn.php中,其他页面如需使用数据库,只需要在页面中写入include("conn/conn.php");
即可引用该文件,达到连接数据库的目的,增强代码的可重用性。
4.1.2地图模块实现
本系统使用XX地图作为地图展示页面,XX地图javascriptAPI是一套由javascript语言编写的应用程序接口,能帮助用户在网站中构建功能丰富、交互性强的地图应用,包含构建地图的基本功能的各种接口,提供本地搜索、线路规划等数据服务,在互联网领域被广泛的应用,同时XX地图API推出了开源的类库,方便开发人员学习使用XX地图API。
用户在注册XX地图API的密钥后,可以免费使用XX地图的功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PHP 车辆 GPS 轨迹 回放 软件设计 实现