电动自行车租赁系统监管平台设计与实现第4章下.docx
- 文档编号:1461907
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:12
- 大小:113.76KB
电动自行车租赁系统监管平台设计与实现第4章下.docx
《电动自行车租赁系统监管平台设计与实现第4章下.docx》由会员分享,可在线阅读,更多相关《电动自行车租赁系统监管平台设计与实现第4章下.docx(12页珍藏版)》请在冰豆网上搜索。
电动自行车租赁系统监管平台设计与实现第4章下
4.3.5车辆定位追踪模块
在本设计中,每辆电动自行车均配置车载终端设备,包含能够检测车辆位置的GPS模块,为保证对车辆的实时追踪,同时节约存储空间,本文设计每隔3分钟对已租车辆进行GPS信息采集、处理和存储[41]。
此环节主要分成两步,首先是监管平台接收GPS信息存储到数据库,第二步是调用数据库中的车辆经纬度,显示在地图上。
具体实现流程是监管平台监听车载终端的请求,通过ServerSocket类中的accept()函数完成请求连接的功能;连接成功后,车载终端通过OutputStream()输出流发送GPS信息至监管平台,监管平台调用InputStream()将数据接收到缓冲字符数组inBufferStr[]中;处理inBufferStr[]中的数据,提取出参数信息存储到MySQL数据库。
以重庆为试点城市,首先确定该市经纬度范围,对于明显不在此范围内的GPS信息,进行过滤,并编写PreOperateGPS()类,实现对原始GPS信息的判断和过滤,对于处在该范围内的有效GPS信息,根据帧格式,编写FirstParseGPS()类对GPS信息进行解析、提取出每条有效记录中的车辆ID、经度、纬度、电量、状态信息,分别存放在BicycleId、Longitude、Latitude、Power、BicycleStateId变量中,之后对应每个BicycleId,调用Insert函数,将数据插入到数据库中的BicycleGPS和BicycleState表中,分别存放其位置和状态信息。
由于GPS测定的坐标是WGS-84坐标系坐标,需要进行坐标系转换,此过程通过translateGPS()函数实现,通过Search()查找数据库,结合GIS技术,调用ShowGPS()函数将转换后的经纬度显示在地图上,实现车辆的实时定位追踪[42]。
具体处理流程如图4.9(a),图4.9(b)所示。
(a)车辆定位信息采集(b)车辆定位信息显示
图4.9车辆定位跟踪流程图
上述步骤用到了PreOperateGPS()、FirstParseGPS()、translateGPS()、Search()和ShowGPS(),本文以FirstParseGPS()、translateGPS()为例,介绍其实现的具体代码。
FirstParseGPS()核心代码如下:
privatestaticvoidFirstParseGPS(stringstringGPS)
{
string[]stringSeparators=newstring[]{","};
string[]strs=stringGPS.Split(stringSeparators,stringSeparators.None);
stringBicycleId=strs[0];
stringSendTime=strs[1];
stringLongitude=strs[2];
stringLatitude=strs[3];
stringPower=strs[4];
stringBicycleStateId=strs[5];}
translateGPS()类的核心代码如下:
privatestaticvoidtranslateGPS(stringLongitude,stringLatitude)
{
stringlongitude1=(Decimal.Parse(Longitude)/100).ToString();
stringlongitude2=(Decimal.Parse(Longitude)%100/60).ToString();
stringlongitude=(Decimal.Parse(longitude1)+Decimal.Parse(longitude2)).ToString();
stringlatitude1=(Decimal.Parse(Latitude)/100).ToString();
stringlatitude2=(Decimal.Parse(Latitude)%100/60).ToString();
stringlatitude=(Decimal.Parse(latitude1)+Decimal.Parse(latitude2)).ToString();
}
4.4车辆调度的分析与设计
为解决实际运营中出现的“借车难、还车难”问题,本文根据大量GPS定位信息、站点租车还车记录信息,结合聚类算法,获取车辆调度的最短路径。
本小节是重点研究内容,将详细介绍其设计和实现过程。
4.4.1数据存储格式分析与设计
监管平台对车辆定位信息的存储分为两类,一类存储在MySQL中,另一类存储在Hadoop中。
在MySQL数据库中创建有关车辆实时位置的BicycleGPS表,为保证实时性,存储每辆被租车辆的最近一次的租借信息;针对历史信息,以文本形式保存在Hadoop中,为后期车辆调度提供数据基础。
其中,BicycleGPS表和文本记录包含信息格式相同,每条记录均由以下字段组成:
车辆ID、发送时间、纬度值、经度值,电量、车行速度、车辆状态,具体如表4.4所示。
表4.4GPS信息帧格式
6字节
20字节
10字节
10字节
3字节
4字节
4字节
车辆ID
发送时间
纬度值
经度值
电量
车行速度
车辆状态
考虑到车辆定位的准确性以及传统关系型数据库的存储空间,本文设计每隔3分钟对GPS数据进行采集。
根据项目规模、电动自行车数量、平均每天每辆车被租赁次数预测,如果数据不压缩,30天可产生20G字节左右的数据。
为此,在存储车辆GPS信息前,需对数据进行预处理,本文主要涉及两种,即数据过滤和数据裁剪,具体设计在下一节进行详细阐述。
在实际测试中,本文以重庆市为例进行设计和调试,如图4.10所示。
图4.10车辆行驶轨迹信息
图4.10为重庆市2014年3月19日下午四公里到六公里的一段路程,车辆ID为“300005”的电动自行车的行驶轨迹,每一行信息代表一条GPS定位信息,每条记录均按照时间顺序进行存储。
4.4.2原始数据预处理的过程
由于车载终端上传到监管平台可能存在错误、不完整等无效定位数据,为提高数据存储和数据处理效率,首先使用数据过滤和数据裁剪两种方式实现对原始数据的预处理。
1.数据过滤
分析可知,收集到的GPS信息可能存在两种错误情况,分别是区域错误和轨迹错误。
所谓区域错误也包含两种情况,一是GPS信息中包含的经纬度超出所在城市或省市的范围;二是经纬度位于不可能的位置,如河流、山川等。
轨迹错误是指电动自行车的行驶路径和速度与实际严重不符,如车速大于40km/h。
以重庆市为例,分析错误信息来源,在保证数据过滤的正确性和覆盖率的前提下,本文设计了两种对原始GPS信息的过滤条件,一是根据重庆市所在经纬度范围,过滤明显超出其范围的GPS信息,重庆市经度范围是(105°17'-110°11'),纬度范围是(28°10′-32°13′);二是过滤电动自行车速度大于40km/h的信息。
通过上述两条过滤条件,能够达到滤除错误信息的目的,具体实现过程如图4.11所示。
图4.11数据过滤流程图
根据一条租借记录中的GPS信息,依次提取GPS信息中的每条记录,首先判断该记录中的车辆行驶速度,若大于40km/h,则直接丢弃,继续轮询提取下一条记录;若行驶速度在0到40km/h之间,则依次判断该记录中的经纬度,判断其是否处于重庆市经纬度范围内,若不在,丢弃提取下一次记录,若满足则保存为一次正确数据;重复上述步骤,依次处理GPS数据,直到所有记录均被处理。
2.数据裁剪
通过过滤方法,可滤除原始GPS信息中的错误和冗余数据,针对具体应用和需求,设计一种裁剪方法,去除原始数据中的无关数据,进一步提高结果的准确性和数据处理效率。
参照第三章的需求分析可知,车辆调度功能所需数据是数据库中有效的GPS数据。
本文通过对原始信息的分析,设计了有效数据需要满足的条件。
有效数据需满足两个条件:
车辆状态处于“在租”的数据;用户从一个站点直接到达另一站点的路径,对于用户其他行为活动而导致的车辆长时间停放的GPS信息为无效数据。
为获取有效数据,本文采用以下裁剪方法,去除无效数据,具体实现过程是:
针对每辆车的每次租借记录,若行驶过程中监管平台采集到的GPS信息中,存在连续的、相同的GPS定位数据,则将此连续的GPS信息的第一条作为有效数据,其余为无效数据,并将真实的行驶时间计为用户此次租赁的总时间减去重复GPS数据次数的三倍。
通过车辆状态判断信息的开始和结束,开始即为车辆状态从“待租”到“在租”,结束点是车辆状态由“在租”到“待租”,这之间的GPS信息代表“路径”。
分离出子路径后,根据用户实际行驶的时间、租借站点和归还站点间的距离,得出电动自行车车速。
上述所说“路径”是指一条租借记录中的所有GPS点组成的行驶路径,“子路径”是指一条租借记录中的有效GPS点组成的有效行驶路径。
上述数据裁剪过程如图4.12所示。
图4.12数据裁剪流程图
获取上述“子路径”后,为保证后期数据处理需要,将这些子路径单独存放到一个文件中,包括GPS点及其所在的路径集。
4.4.3调度最短路径的分析与设计
完成数据预处理和存储后,本节详细阐述车辆调度最短路径的分析与设计。
首先将车辆GPS信息以文件形式存储在Hadoop中,根据上述过滤、裁剪等预处理方式,除去错误、不完整、无效的信息,然后采用基于密度的聚类算法实现调度最短路径选择。
参照数据挖掘步骤和实际应用,在对GPS定位信息进行挖掘和提取时,主要包括模型建立、算法分析和车辆调度设计三个过程。
1.建立基于GPS路径的距离模型
为提取GPS有效路径中的最短路径,结合数据特征和具体应用,首先建立基于路径的距离模型。
具体实现方法是确定、两条路径,其中代表路径,表示路径中包含的GPS点。
按照上述对路径和GPS点的定义可知表示路径中包含个GPS点、表示路径中包含个GPS点,表示它们之间的距离。
模型包含的参数的具体定义如表4.5所示。
表4.5模型中的基本参数定义
序号
参数名称
定义
1
路径
定义为,表示一条有效电动自行车路径,表示GPS定位点数,分别是,点与点之间均是按照时间排列。
每一个GPS均包含其所在的经纬度,即,该GPS点数据传送的时间戳是
2
线段
每一条路径上的相邻两点之间的连线用线段表示,用来预测车辆行驶轨迹
3
多线段
多个连续的上述组成多线段,用表示,其中线段的终点同时也是线段的起点
4
点-线段距离
点到线段上所包含的所有GPS点中距离最小值即为此点到该线段的距离,如图4.13所示
5
点-多线段距离
一条路径上的一个GPS点到另一路径上的多线段的所有线段中距离最小值,路径上点到路径中多线段的距离,表示为
6
点集-多线段距离
路径上的点集,即包含个有效GPS点,该点集与另一路径中多线段的距离表示为,即此点集所包含的所有GPS点到此多路径线段距离的平均值
计算两条路径、之间距离的方法如下,首先将看做点集,看做多线段,按照表4.5对点集-多线段的距离定义,计算出;之后交换两条路径,
使用上述相同的计算方法,计算出,那么、之间的距离就是上述距离中的较小值。
图4.13聚类算法距离定义
为保证模型更加接近实际,对模型进行多次验证,具体表现在两个方面,首先使用软件模拟实际中位置较近的两条路径,利用上述模型,计算出路径的距离近似为零;对于路径中的异常点,采用多次求均值的方法,降低其对结果的影响。
2.GPS路径聚类算法的分析与设计
由前文可知,基于GPS数据特征和聚类算法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电动自行车 租赁 系统 监管 平台 设计 实现