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

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

摘要

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

本文讨论了基于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.1W EB-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.1系统需求分析

为了明确系统需求,首先要对现在市面上的同类软件进行对比分析。只有对比了类似软件的功能优点和不足才能更加完善的做出自己项目的设计、开发,以达到软件符合更加人性化和合理化的要求。项目的需求分析主要是通过询问软件使用者对该项目功能上的需求和界面、数据、使用工具、操作复杂度等进行了解分析,然后从不同渠道了解同类型软件的功能状况和界面友好度得出相关信息。最后,综合这些信息确定本项目的相关需求。

本项目为基于PHP的公交信息查询后台管理软件设计与实现,系统采用PHP、Mysql 和Nginx作为项目开发环境,在PC机上进行开发、测试。因此,在硬件的要求上需要一台装有Windows系统和IE浏览器的PC机。由于系统要用到地图模块,所以要保证系统有互联网接入。

经过认真分析得出,系统的主要需求功能如下:实现页面的地图功能,包括简单的地图缩放、平移、拖拽、2D/3D地图切换,卫星图切换;实现呼和浩特市范围内某一位置的查询,并在地图上标记出来。实现公交乘车导航,输入起始点位置,在页面上实现导航线路,显示换乘方案;实现某一线路查询功能,输入某一线路,查询该线路的站点信息,显示线路运行轨迹;实现查询某辆公交车GPS数据信息,输入车辆编号,显示车辆GPS数据;实现查询某辆公交车的当前位置信息,在地图上显示出来;实现查询某辆公交车的运行轨迹,输入车牌号,在地图上动态的显示车辆的某一时间段内的运行轨迹。

1.2用户需求

要设计一个优秀的系统软件,就要明确用户对系统的实际需求,包括功能需求与操作需求。本系统对如下四个方面进行了系统的用户需求分析:

用户的信息需求:用户可以通过本系统得到如下信息,公交车线路信息,公交车换乘信息,位置查询信息,公交车GPS数据信息,公交车实时位置信息,公交车运行轨迹信息等。根据用户的需求,初步确定系统功能结构如下图:

图1-1 用户需求功能

用户的处理需求:界面友好,系统操作应简明易懂,用户无需过多的操作即可得到自己需要的查询结果,同时,功能也要完整,符合实际工作需要。

系统的适用性和通用性:系统采用B/S结构,可以避免由于操作系统的不同造成的不便,系统采用php技术,语言风格简明易懂,易于后期的系统功能的扩充与维护。

系统的安全性需求:用户操作只能执行查询操作,不能有涉及到危害数据库的操作,由于本系统主要功能为查询,所以可以保证数据库的安全,同时建议服务器端应及时对数据进行备份,防止因为某些不可抗拒因素造成的损失。

1.3系统可行性分析

现阶段国内百姓的出行方式以公共交通工具为主,绝大部分城市的公交系统都

已经完善,现在人们面临的问题是,如何提高乘车效率,减少自己的候车时间,选

择合理的换乘方式。本系统主要解决的就是这些问题。

本系统采用的是百度地图的API接口,其功能丰富,交互性强,界面友好,对

于浏览器的兼容性强。 php语言是一门功能非常强大的脚本语言,它继承了c,java

等语言的优点,功能强大,语言简洁,是目前主流的页面开发使用的脚本语言,页

面将javascript和php融合起来,功能丰富,非常适合本项目的开发。

系统可以提供基本的位置查询,公交线路查询,公交换乘查询,车辆位置、GPS

数据查询,车辆轨迹回显等功能,用户可以通过这些功能可以更好的改善自己的乘

车体验,选择自己的乘车方案,提高乘车效率。工作人员可以通过本系统对公交车

的运行情况进行管理。

第二章系统开发技术准备

2.1Web-GIS技术介绍

Web-GIS系统指的是基于internet平台,应用软件采用网络协议,运用在internet的地理信息系统。百度地图是典型的WEBGIS。Web-GIS的核心是在GIS中嵌入HTTP标准的应用能够体系,实现internet环境下的空间信息管理和发布。全球范围内任意的www节点均可访问GIS服务,是真正的大众化的GIS服务,目前广泛应用于生产生活当中。

2.1系统开发所需工具

本系统采用php+mysql+nginx作为开发环境,所使用的工具如下:PHP Version 5.2.17压缩版,nginx-1.2.9,mysql-5.6.11,UtraEdit编辑器,Firework,Internet Explorer浏览器等。

PHP全拼为Hypertext Preprocessor,中文名为超文本预处理器,是一种通用的开源脚本语言,由于吸收了c,java等语言特点,非常适用于B/S结构。

MySQL是关系型数据库管理系统,它的特点是体积小,速度快,成本低,开放源码,因此在中小型项目中使用较多。

Nginx为高性能的HTTP和反向代理服务器,同样开放源代码,而且稳定性好,功能丰富,系统资源消耗低。

UtraEdit是一个强大的文本编辑器,能突出php语言指令,实现html的标签颜色显示,因此使用本软件进行项目代码编写。

Firework是一个常用的图片处理工具,使用简便,适用于网页所用图片的裁剪以及渲染等操作。

Internet Explorer为用户量最大的浏览器之一,因兼容性强而著称。本系统使用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 --install mysql --defaults-file = “d:\nginx\mysql\my.ini”到这里,mysql数据库安装完成,启动服务,执行:net start mysql,以后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 / {

root www;

index index.html index.htm index.php;

}

以及

location ~ \.php$ {

root www;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME

$document_root$fastcgi_script_name;

include fastcgi_params;

}

最后生成的目录如下:

图2-1.系统开发环境目录

4.下载RunHiddenConsole.exe,编写批处理文件

start_nginx.bat

@echo off

REM Windows 下无效

REM set PHP_FCGI_CHILDREN=5

REM 每个进程处理的最大请求数,或设置为 Windows 环境变量

set PHP_FCGI_MAX_REQUESTS=1000

echo Starting PHP FastCGI...

RunHiddenConsole D:/nginx/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/nginx/php/php.ini

echo Starting nginx...

RunHiddenConsole D:/nginx/nginx.exe -p D:/nginx

stop_nginx.bat

@echo off

echo Stopping nginx...

taskkill /F /IM nginx.exe > nul

echo Stopping PHP FastCGI...

taskkill /F /IM php-cgi.exe > nul

exit

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

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

图2-2测试环境截图

第三章系统设计

3.1 系统总体结构设计

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

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

地图控件的添加:为了方便地图的使用,需要在地图上添加操作控件。

查询某一线路信息:输入线路名称,查询线路详细的站点信息,以及该线路在地图上的运行轨迹。

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

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

查询车辆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位置信息,通过该数据可以查询车辆在某一时刻的运行信息,如所处的位置,车辆的运行方向等,通过车辆连续的位置数据可以粗略的绘制出车辆的运行轨迹。

2.车辆实时信息表gpsdata

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

3.线路表lineid

表格说明:此表主要记录了现有的线路信息,以及所属的公交公司的信息,方便查询车辆的线路。

4.车辆表(busid)

表格说明:本表格主要记录了车辆的一些信息,包括车辆的编号、名称、所属线路编号、线路名称等,通过这些信息可以了解车辆与线路之间的关系。

第四章系统实施

4.1程序设计

4.1.1连接数据库模块设计

本系统使用的是MySQL数据库,使用的脚本语言为php,所以此模块主要是通过php语言访问数据库,数据库用户名为root,密码为tianxunceshi,要连接的数据库为zsgj,连接数据库流程图如下:

图4-1 连接数据库流程

首先验证输入的用户名和密码是否正确,如果不正确则提示错误,返回重新输入,如果正确则验证所连接的数据库是否存在,如果数据库不存在,则提示错误,

如果正确则连接数据库成功,至此,数据库连接模块完成。将这一模块代码写入conn.php中,其他页面如需使用数据库,只需要在页面中写入

include("conn/conn.php");

即可引用该文件,达到连接数据库的目的,增强代码的可重用性。

4.1.2地图模块实现

本系统使用百度地图作为地图展示页面,百度地图javascript API是一套由javascript语言编写的应用程序接口,能帮助用户在网站中构建功能丰富、交互性强的地图应用,包含构建地图的基本功能的各种接口,提供本地搜索、线路规划等数据服务,在互联网领域被广泛的应用,同时百度地图API推出了开源的类库,方便开发人员学习使用百度地图API。用户在注册百度地图API的密钥后,可以免费使用百度地图的功能。关键代码如下: