基于Android移动平台的物流信息管理系统设计
2016-01-08李迎九
基于Android移动平台的物流信息管理系统设计*
李迎九
(湖南师范大学工程与设计学院,湖南 长沙 410081)
摘要:将Android移动智能设备平台的无线移动访问和电子地图等功能应用于物流信息管理系统中,提出了一种基于Android移动设备平台的规划导航路径算法.该物流信息管理系统能实现物流信息的采集、存储、传输、识别、跟踪和查询等功能,实现了对车辆和货物流动过程的控制,提高了物流效率,降低了物流成本.
关键词:Android系统;车载智能移动终端;物流信息化;物流规划导航路径算法
文章编号:1007-2985(2015)01-0035-05
中图分类号:TP274文献标志码:A
DOI:10.3969/j.issn.1007-2985.2015.01.009
收稿日期:*2014-06-21
基金项目:湖南省科技厅科技计划资助项目(2013FJ6025)
作者简介:李迎九(1969—),女,湖南长沙人,湖南师范大学工程与设计学院讲师,主要从事计算机技术教学研究.
目前,中国现有物流供给能力大于物流市场需求,但规模大效率高的物流企业却很少,物流业目前存在信息化程度不高、通讯手段和智能化技术落后等问题.随着现代物流的迅速发展,物流已经不再是单纯的依靠仓储和交通运输,而转变为结合先进的信息化技术和手段实现实时物流信息采集、定位跟踪和智能车辆调度,极大地提升物流的便捷性和效率.
随着无线通信网络技术和智能移动设备的迅猛发展和广泛普及,将传统物流和智能移动系统相结合是现代物流信息管理的重要发展方向之一.笔者设计物流信息管理系统的物理平台为Android移动智能设备,该系统能实现物流信息数据的收集、传输和存储,并与物流中心进行物流数据和管理指令的交互,完成对车辆和货物的实时跟踪和监控.
1硬件系统设计
基于Android移动设备平台的物流信息管理系统主要由物流中心、车载Android移动设备平台和3G无线网络通讯等3个部分构成.物流中心是整个物流信息管理系统的核心信息处理部分,由GIS服务处理、数据库、跟踪管理、调度管理和实时通信等组成.其主要功能包括:实现与车载Android移动设备平台的数据互送,对各种数据进行存储、处理和分析;对物流进行跟踪、监控和调度,提高物流运输的效率,向客户提供便捷快速的服务.3G无线通信网络是连接Android移动设备平台和物流中心进行数据传输的媒介,网络通信模式可以选择GSM、GPRS和CDMA等不同制式.
文中设计的物流信息管理系统实现了Android移动设备平台的数据采集和服务功能.考虑到车载Android移动设备平台具有无线通信、车辆货物信息采集、订单信息采集管理和导航处理等功能,通过3G无线通信网络与物流中心进行数据双向传输,接收Google Maps定位数据来定位车辆的位置,向物流中心传输车辆和货物状态数据,接收物流中心的各种信息并实现车辆的路径导引.基于Android移动设备平台的物流信息管理系统设计如图1所示.
图1 硬件系统总体架构
Android移动设备平台由Google Maps、通讯、车辆货物数据采集、数据存储、导航和数据指令处理等6个模块组成.车辆货物数据采集模块获得车辆和货物状态数据,这些数据经过数据指令处理模块后,为驾驶员/配送人员提供实时的道路地图显示等导航服务;通讯模块负责与物流中心进行数据的交互,一方面向物流中心传输获取的状态数据和报警信息等;另一方面接收物流中心发来的调度指令和GIS导航信息等;Google Maps模块对车辆进行实时的定位,并将位置信息发送给通讯模块;规划路径导航模块根据各种信息综合对车辆路径进行可视化导航.Android移动设备平台的处理流程如图2所示.
图2 Android移动设备平台处理流程
2基于Android移动设备平台的物流规划导航路径算法
基于Android移动设备平台的规划导航路径的关键是如何给出地图上2点之间的最短路径,“最短”可以有多种含义,包括距离最短、费用最低、路况最好等,一般采用Dijskra最短路径算法和遗传算法得到最优解[5-6].在物流运输中,由于Android移动设备平台的实时位置变化以及计算存储能力的限制,需要给出一种实时的算法来解决路径规划问题.
文中给出了一种实现规划路径导航的启发式算法.定义一个当前位置x的启发式估值函数c(n)=s(n)+e(n),其中c(n)是从车辆起点位置到其终点位置的最小代价估值函数,s(n)是从车辆起点位置到当前位置的实际代价值函数,e(n)是从车辆当前位置到车辆目的地的最小代价的估计值.
物流规划导航路径算法具体如下.
(1)将车辆起点位置放入未扩展位置(即车辆还未到达该位置)集合;
(2)进行如下循环:
(a)从未扩展位置集合中找出花费代价最小的下一个车辆位置;
(b)将该车辆位置放入已扩展位置集合中,并且从未扩展位置集合中删除该位置;
(c)遍历当前车辆位置的所有相邻位置:
if 某个相邻位置不可达,那么退出;
else if 该相邻位置既不在未扩展位置集合,也不在知已扩展位置集合中,则将该位置放入未扩展位置集合中,保存该位置的c,s,e值,并对前继位置的索引进行编号;
else该相邻位置已在未扩展位置集合或已扩展位置集合中,则根据c或s的值判断相对于已有路径,当前路径是否更短;
if 否,则退出此次循环;
else 将相应的车辆位置从未扩展位置集合或已扩展位置集合中删除,并且把新的s值的位置放入未扩展位置集合或已扩展位置集合中,保存该位置的c,s,e值以及其前继位置的索引号;
(d)当有以下情况发生时,算法结束:
当将车辆位置目的地放入未扩展位置集合或已扩展位置集合中,表明已经获得最短路径,将已扩展位置集合的元素从最后开始往前一个接一个连接起来,就得到一个路径;
当未扩展位置集合为空时,表明路径搜索失败,无法找到一条路径.
本文算法通过对当前车辆位置与目的地址之间的路径长度进行估计,对车辆位置是否位于一个最优路径上进行量化.使用这些启发性信息,算法可以顺着那些最有可能的方向来搜索车辆下一步的方向,从而减少搜索范围,降低算法的复杂度.
3物流信息管理系统的实现及其分析
系统的车载端采用Android系统,文中只给出和Android移动设备平台相关的主要设计及其测试部分,包括使用Android系统进行物流信息采集和管理以及采用Google Maps进行车辆定位和导航.
系统开发平台如下:Windows 7 32位操作系统;JDK 6(Java Development Kit)Java开发包;Eclipse IDE for Java Developers采用Android ADT-16.0.1;Android SDK采用Android SDK 2.3;Android NDK采用Android-ndk-r8-windows.zip;Android设备数据库采用Android SQLite 3;后端数据库采用SQLServer 2005;系统的运行平台的最小SDK版本为Android 2.2,目前大多数手机都支持该版本.
基于Android移动设备平台的物流信息系统主要功能包括货物信息、运单信息、线路信息等的管理,即对这些信息进行更新、查询与删除.与基本资源模块相比,数据的访问权限与访问量不同,因此将其分开管理.
图3 系统主界面
系统主界面的UI层使用TabHost标签组件进行布局.当对不同的Activity进行切换时,能为用户提供友好的界面,其中TabHost下的每个Tab页能实现相对独立的功能.系统主界面标签栏显示如图3所示.其中“更新信息”等是多组标签栏,每个标签栏下面是该标签栏对应的应用组件,这样可以在一个窗口中显示多组标签栏的内容,方便与用户的交互,为用户提供友好界面.
图4 物流订单信息采集界面
系统的信息采集主要包括订单的录入、货物和车辆信息的实时获取,文中给出订单信息的采集.为使配送员对订单信息的录入简便化,通过XML配置生成方式对Android用户界面进行设计.这种方式不但可以高效地定义用户界面,而且利于提高代码的可理解性和可重用性.物流订单的信息包括订单ID、客户ID、货物ID、执行时间、发货地点、收货地点、备注等多种数据,为使这些数据能在较小的屏幕上清晰明了地显示出来,文中采用TableLayout(表单)布局方式设计了信息采集的用户界面.订单信息的采集界面如图4所示.
Android数据的4种存储方式包括SharedPreferences,SQLite,Content Provider和File.其中SQLite是一款轻量级的关系型数据库,也是Android的标准数据库.系统采用Android系统自带的SQLite来存储订单录入信息,从Android用户界面获取的数据保存到Android移动设备平台的数据库中.
使用Google Maps位置服务对车载Android移动设备平台进行实时定位,即对平台所在车辆进行实时定位.通过Google Maps进行指定地点的寻址,规划车辆导航路径以及对车辆地理位置进行跟踪、监控和显示等,从而实现车辆定位和导航功能.
使用Google Maps服务需要向Google申请“地图密钥”.获得密钥后,由MapView控件把Google地图嵌入到Android物流信息管理应用程序中,从而获得Google地图提供的各项服务.同时,通过MapView控件可以在卫星、街道和交通等地图显示模式之间进行切换,地图的显示中心和缩放规模由MapController控制器控制.
使用Google提供的GPS定位获得Android设备的坐标位置,然后通过GeoPoint方法定位设备在地图中的中心位置.为了使驾驶员更清楚地看到地图上的位置,使用OverLay方法在MapView上添加覆盖层,在指定位置添加注释、绘制图形和响应触摸点击事件等.Android提供的位置服务类LocationManager用于处理位置的信息,使用LocationListener类跟踪位置的改变.Android提供的Content.Location_Service可以得到位置服务类LocationManager,并使用LocationListener类监听LocationManager的变化.当位置发生变化时,调用函数onLocationChanged()进行响应,其代码类似于centerOnGPSPosition().
车辆轨迹跟踪功能给出每次车辆配送物流业务的名字和描述,使用NewTrack类实现该功能.通过2个输入框来输入名字和描述,保存之后进入ShowTrack页面,实现其实时跟踪功能.
图5 地图轨迹展示界面
地图显示是车辆轨迹管理的重要组成部分.MapView服务类表示轨迹,轨迹的显示使用Overlay类.在Google地图中,可以在地图图层上添加多个覆盖层,每个覆盖层都可以响应用户的触屏点击事件.创建覆盖层通过继承Overlay类,并通过重载类中的draw()方法为指定位置添加注释,重载onTap()方法处理点击操作.文中对draw()方法进行了重写,将轨迹上的每个点记录在地图上,形成路径.定位当前位置时使用了以下方法添加位置,用于提醒用户.
(1)Overlay子类实现从数据库中读取数据,把过去的轨迹显示在地图上.轨迹信息包括起点、终点、车辆最大速度和车辆平均速度等,主要使用TrackTabViewActivity类来实现轨迹信息显示.
(2)OnClickListener()方法响应用户的点击操作,把相应的轨迹显示出来.
地图轨迹显示界面如图5所示,通过点击列表上的轨迹,自动显示轨迹所处地图上的信息,展现轨迹的位置,其中红色线条为轨迹.
车辆位置的经纬度查询功能实现用户输入目的地的坐标(经度和纬度)后,通过GeoPoint类定位,在MapView控件上显示目的地的正确位置,主要使用FindDestination类来实现通过输入的坐标获得GeoPoint对象,然后在MapView上进行定位.
通过调用Android系统内置的地图程序来实现路径规划导航功能.首先调用getLocationProvider()方法取得当前位置,然后调用fromGeoPoint()方法得到当前位置的地理坐标,界面提供EditText Widget控件,让用户输入目的地址,通过查询获得目的地的地理坐标,这样就得到2个GeoPoint对象.再调用Google地图的内置地图程序,通过Uri.parse()方法输入路径规划参数.随着车辆的移动,更新当前GeoPoint对象的状态.当用户点击查找按钮时,返回路径规划结果,如图6所示.
进入车载跟踪界面后,可能会出现2种情况,即正常显示和异常报错.要保证正常显示,首先要确保环境的支持,即网络连接正常和 Google Maps服务支持.正常运行后,用户可以根据需要定制地图的显示方式和显示界面,因为车载的位置等信息是异步查询,所以开始会出现“请稍等,信息正在检索中…”的提示.查询结束之后,会替换成对应的位置信息,如图7所示.
图6 导航路径界面
图7 车载跟踪测试
4结语
笔者设计的基于Android移动智能设备的物流信息管理系统,实现了物流信息数据的收集、传输和存储,并与物流中心实现物流数据和管理指令的交互,对车辆和货物进行跟踪和监控,构建了物流信息管理应用模型.下一步研究工作的目标是在物流中心和Android移动设备平台智能化识别车辆和货物,实现车载智能移动终端对车辆和货物信息的实时采集和处理,探讨进一步改进已有物流中心系统的功能,使得物流中心能够通过Android移动设备平台对车辆物流配送进行智能化和移动化监控和调度.
参考文献:
[1]国务院.促先进物流业健康发展政策措施的意见[EB/OL].[2014-06-20].http://www.gov.cn/zwgk/2011-08/19/content_1928314.htm.
[2]李建丽,徐凯.绿色物流理念下的第三方物流配送.综合运输,2010(3):5-9.
[3]BURNETTE E.Hello,Android:Introducing Google’s Mobile Development Platform.Raleigh:Pragmatic Bookshelf,2009.
[4]速云中,张坤宣.基于Google Maps API技术的工程资料系统设计研究.测绘通报,2009(7):143-148.
[5]陈涛.车辆导航系统中大区域路径规划算法的设计与实现.郑州:中国人民解放军信息工程大学,2005.
[6]ZHAO Yilin.Standardization of Mobile Phone Positioning for 3G Systems.Communications Magazine,2002,40(7):108-116
[7]SQLite官方主页.SQLite Home Page[EB/OL].[2014-06-20].http://www.sqlite.org.
[8]崔金红,王旭.Google地图算法研究及实现.计算机科学,2007,34(11):211-215.
[9]张国生,高搏,姚慧敏.手机定位服务与电子地图.绘科学技术学报,2007,24(3):216-218.
Logistics Information Management System Based on
Android Mobile Platform
LI Yingjiu
(School of Engineering and Design,Hunan Normal University,Changsha 410006,China)
Abstract:Android mobile intelligent device platforms are applied to logistics procedure.A logistics routing planning algorithm based on mobile platforms is proposed.A corresponding logistics information management system is researched and implemented.The logistics information is collected,saved,transferred,identified,tracked and queried using wireless mobile access and electronic map provided by Android system.This method can control logistics procedure of vehicle and cargo,achieving efficiency and cost reduction.
Key words:Android system;vehicle intelligent mobile terminal;logistics information;logistics routing planning algorithm
(责任编辑陈炳权)