基于Android移動(dòng)平臺(tái)的物流信息管理系統(tǒng)設(shè)計(jì)*
李迎九
(湖南師范大學(xué)工程與設(shè)計(jì)學(xué)院,湖南 長沙 410081)
摘要:將Android移動(dòng)智能設(shè)備平臺(tái)的無線移動(dòng)訪問和電子地圖等功能應(yīng)用于物流信息管理系統(tǒng)中,提出了一種基于Android移動(dòng)設(shè)備平臺(tái)的規(guī)劃導(dǎo)航路徑算法.該物流信息管理系統(tǒng)能實(shí)現(xiàn)物流信息的采集、存儲(chǔ)、傳輸、識別、跟蹤和查詢等功能,實(shí)現(xiàn)了對車輛和貨物流動(dòng)過程的控制,提高了物流效率,降低了物流成本.
關(guān)鍵詞:Android系統(tǒng);車載智能移動(dòng)終端;物流信息化;物流規(guī)劃導(dǎo)航路徑算法
文章編號:1007-2985(2015)01-0035-05
中圖分類號:TP274文獻(xiàn)標(biāo)志碼:A
DOI:10.3969/j.issn.1007-2985.2015.01.009
收稿日期:*2014-06-21
基金項(xiàng)目:湖南省科技廳科技計(jì)劃資助項(xiàng)目(2013FJ6025)
作者簡介:李迎九(1969—),女,湖南長沙人,湖南師范大學(xué)工程與設(shè)計(jì)學(xué)院講師,主要從事計(jì)算機(jī)技術(shù)教學(xué)研究.
目前,中國現(xiàn)有物流供給能力大于物流市場需求,但規(guī)模大效率高的物流企業(yè)卻很少,物流業(yè)目前存在信息化程度不高、通訊手段和智能化技術(shù)落后等問題.隨著現(xiàn)代物流的迅速發(fā)展,物流已經(jīng)不再是單純的依靠倉儲(chǔ)和交通運(yùn)輸,而轉(zhuǎn)變?yōu)榻Y(jié)合先進(jìn)的信息化技術(shù)和手段實(shí)現(xiàn)實(shí)時(shí)物流信息采集、定位跟蹤和智能車輛調(diào)度,極大地提升物流的便捷性和效率.
隨著無線通信網(wǎng)絡(luò)技術(shù)和智能移動(dòng)設(shè)備的迅猛發(fā)展和廣泛普及,將傳統(tǒng)物流和智能移動(dòng)系統(tǒng)相結(jié)合是現(xiàn)代物流信息管理的重要發(fā)展方向之一.筆者設(shè)計(jì)物流信息管理系統(tǒng)的物理平臺(tái)為Android移動(dòng)智能設(shè)備,該系統(tǒng)能實(shí)現(xiàn)物流信息數(shù)據(jù)的收集、傳輸和存儲(chǔ),并與物流中心進(jìn)行物流數(shù)據(jù)和管理指令的交互,完成對車輛和貨物的實(shí)時(shí)跟蹤和監(jiān)控.
1硬件系統(tǒng)設(shè)計(jì)
基于Android移動(dòng)設(shè)備平臺(tái)的物流信息管理系統(tǒng)主要由物流中心、車載Android移動(dòng)設(shè)備平臺(tái)和3G無線網(wǎng)絡(luò)通訊等3個(gè)部分構(gòu)成.物流中心是整個(gè)物流信息管理系統(tǒng)的核心信息處理部分,由GIS服務(wù)處理、數(shù)據(jù)庫、跟蹤管理、調(diào)度管理和實(shí)時(shí)通信等組成.其主要功能包括:實(shí)現(xiàn)與車載Android移動(dòng)設(shè)備平臺(tái)的數(shù)據(jù)互送,對各種數(shù)據(jù)進(jìn)行存儲(chǔ)、處理和分析;對物流進(jìn)行跟蹤、監(jiān)控和調(diào)度,提高物流運(yùn)輸?shù)男?,向客戶提供便捷快速的服?wù).3G無線通信網(wǎng)絡(luò)是連接Android移動(dòng)設(shè)備平臺(tái)和物流中心進(jìn)行數(shù)據(jù)傳輸?shù)拿浇?,網(wǎng)絡(luò)通信模式可以選擇GSM、GPRS和CDMA等不同制式.
文中設(shè)計(jì)的物流信息管理系統(tǒng)實(shí)現(xiàn)了Android移動(dòng)設(shè)備平臺(tái)的數(shù)據(jù)采集和服務(wù)功能.考慮到車載Android移動(dòng)設(shè)備平臺(tái)具有無線通信、車輛貨物信息采集、訂單信息采集管理和導(dǎo)航處理等功能,通過3G無線通信網(wǎng)絡(luò)與物流中心進(jìn)行數(shù)據(jù)雙向傳輸,接收Google Maps定位數(shù)據(jù)來定位車輛的位置,向物流中心傳輸車輛和貨物狀態(tài)數(shù)據(jù),接收物流中心的各種信息并實(shí)現(xiàn)車輛的路徑導(dǎo)引.基于Android移動(dòng)設(shè)備平臺(tái)的物流信息管理系統(tǒng)設(shè)計(jì)如圖1所示.
圖1 硬件系統(tǒng)總體架構(gòu)
Android移動(dòng)設(shè)備平臺(tái)由Google Maps、通訊、車輛貨物數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、導(dǎo)航和數(shù)據(jù)指令處理等6個(gè)模塊組成.車輛貨物數(shù)據(jù)采集模塊獲得車輛和貨物狀態(tài)數(shù)據(jù),這些數(shù)據(jù)經(jīng)過數(shù)據(jù)指令處理模塊后,為駕駛員/配送人員提供實(shí)時(shí)的道路地圖顯示等導(dǎo)航服務(wù);通訊模塊負(fù)責(zé)與物流中心進(jìn)行數(shù)據(jù)的交互,一方面向物流中心傳輸獲取的狀態(tài)數(shù)據(jù)和報(bào)警信息等;另一方面接收物流中心發(fā)來的調(diào)度指令和GIS導(dǎo)航信息等;Google Maps模塊對車輛進(jìn)行實(shí)時(shí)的定位,并將位置信息發(fā)送給通訊模塊;規(guī)劃路徑導(dǎo)航模塊根據(jù)各種信息綜合對車輛路徑進(jìn)行可視化導(dǎo)航.Android移動(dòng)設(shè)備平臺(tái)的處理流程如圖2所示.
圖2 Android移動(dòng)設(shè)備平臺(tái)處理流程
2基于Android移動(dòng)設(shè)備平臺(tái)的物流規(guī)劃導(dǎo)航路徑算法
基于Android移動(dòng)設(shè)備平臺(tái)的規(guī)劃導(dǎo)航路徑的關(guān)鍵是如何給出地圖上2點(diǎn)之間的最短路徑,“最短”可以有多種含義,包括距離最短、費(fèi)用最低、路況最好等,一般采用Dijskra最短路徑算法和遺傳算法得到最優(yōu)解[5-6].在物流運(yùn)輸中,由于Android移動(dòng)設(shè)備平臺(tái)的實(shí)時(shí)位置變化以及計(jì)算存儲(chǔ)能力的限制,需要給出一種實(shí)時(shí)的算法來解決路徑規(guī)劃問題.
文中給出了一種實(shí)現(xiàn)規(guī)劃路徑導(dǎo)航的啟發(fā)式算法.定義一個(gè)當(dāng)前位置x的啟發(fā)式估值函數(shù)c(n)=s(n)+e(n),其中c(n)是從車輛起點(diǎn)位置到其終點(diǎn)位置的最小代價(jià)估值函數(shù),s(n)是從車輛起點(diǎn)位置到當(dāng)前位置的實(shí)際代價(jià)值函數(shù),e(n)是從車輛當(dāng)前位置到車輛目的地的最小代價(jià)的估計(jì)值.
物流規(guī)劃導(dǎo)航路徑算法具體如下.
(1)將車輛起點(diǎn)位置放入未擴(kuò)展位置(即車輛還未到達(dá)該位置)集合;
(2)進(jìn)行如下循環(huán):
(a)從未擴(kuò)展位置集合中找出花費(fèi)代價(jià)最小的下一個(gè)車輛位置;
(b)將該車輛位置放入已擴(kuò)展位置集合中,并且從未擴(kuò)展位置集合中刪除該位置;
(c)遍歷當(dāng)前車輛位置的所有相鄰位置:
if 某個(gè)相鄰位置不可達(dá),那么退出;
else if 該相鄰位置既不在未擴(kuò)展位置集合,也不在知已擴(kuò)展位置集合中,則將該位置放入未擴(kuò)展位置集合中,保存該位置的c,s,e值,并對前繼位置的索引進(jìn)行編號;
else該相鄰位置已在未擴(kuò)展位置集合或已擴(kuò)展位置集合中,則根據(jù)c或s的值判斷相對于已有路徑,當(dāng)前路徑是否更短;
if 否,則退出此次循環(huán);
else 將相應(yīng)的車輛位置從未擴(kuò)展位置集合或已擴(kuò)展位置集合中刪除,并且把新的s值的位置放入未擴(kuò)展位置集合或已擴(kuò)展位置集合中,保存該位置的c,s,e值以及其前繼位置的索引號;
(d)當(dāng)有以下情況發(fā)生時(shí),算法結(jié)束:
當(dāng)將車輛位置目的地放入未擴(kuò)展位置集合或已擴(kuò)展位置集合中,表明已經(jīng)獲得最短路徑,將已擴(kuò)展位置集合的元素從最后開始往前一個(gè)接一個(gè)連接起來,就得到一個(gè)路徑;
當(dāng)未擴(kuò)展位置集合為空時(shí),表明路徑搜索失敗,無法找到一條路徑.
本文算法通過對當(dāng)前車輛位置與目的地址之間的路徑長度進(jìn)行估計(jì),對車輛位置是否位于一個(gè)最優(yōu)路徑上進(jìn)行量化.使用這些啟發(fā)性信息,算法可以順著那些最有可能的方向來搜索車輛下一步的方向,從而減少搜索范圍,降低算法的復(fù)雜度.
3物流信息管理系統(tǒng)的實(shí)現(xiàn)及其分析
系統(tǒng)的車載端采用Android系統(tǒng),文中只給出和Android移動(dòng)設(shè)備平臺(tái)相關(guān)的主要設(shè)計(jì)及其測試部分,包括使用Android系統(tǒng)進(jìn)行物流信息采集和管理以及采用Google Maps進(jìn)行車輛定位和導(dǎo)航.
系統(tǒng)開發(fā)平臺(tái)如下:Windows 7 32位操作系統(tǒng);JDK 6(Java Development Kit)Java開發(fā)包;Eclipse IDE for Java Developers采用Android ADT-16.0.1;Android SDK采用Android SDK 2.3;Android NDK采用Android-ndk-r8-windows.zip;Android設(shè)備數(shù)據(jù)庫采用Android SQLite 3;后端數(shù)據(jù)庫采用SQLServer 2005;系統(tǒng)的運(yùn)行平臺(tái)的最小SDK版本為Android 2.2,目前大多數(shù)手機(jī)都支持該版本.
基于Android移動(dòng)設(shè)備平臺(tái)的物流信息系統(tǒng)主要功能包括貨物信息、運(yùn)單信息、線路信息等的管理,即對這些信息進(jìn)行更新、查詢與刪除.與基本資源模塊相比,數(shù)據(jù)的訪問權(quán)限與訪問量不同,因此將其分開管理.
圖3 系統(tǒng)主界面
系統(tǒng)主界面的UI層使用TabHost標(biāo)簽組件進(jìn)行布局.當(dāng)對不同的Activity進(jìn)行切換時(shí),能為用戶提供友好的界面,其中TabHost下的每個(gè)Tab頁能實(shí)現(xiàn)相對獨(dú)立的功能.系統(tǒng)主界面標(biāo)簽欄顯示如圖3所示.其中“更新信息”等是多組標(biāo)簽欄,每個(gè)標(biāo)簽欄下面是該標(biāo)簽欄對應(yīng)的應(yīng)用組件,這樣可以在一個(gè)窗口中顯示多組標(biāo)簽欄的內(nèi)容,方便與用戶的交互,為用戶提供友好界面.
圖4 物流訂單信息采集界面
系統(tǒng)的信息采集主要包括訂單的錄入、貨物和車輛信息的實(shí)時(shí)獲取,文中給出訂單信息的采集.為使配送員對訂單信息的錄入簡便化,通過XML配置生成方式對Android用戶界面進(jìn)行設(shè)計(jì).這種方式不但可以高效地定義用戶界面,而且利于提高代碼的可理解性和可重用性.物流訂單的信息包括訂單ID、客戶ID、貨物ID、執(zhí)行時(shí)間、發(fā)貨地點(diǎn)、收貨地點(diǎn)、備注等多種數(shù)據(jù),為使這些數(shù)據(jù)能在較小的屏幕上清晰明了地顯示出來,文中采用TableLayout(表單)布局方式設(shè)計(jì)了信息采集的用戶界面.訂單信息的采集界面如圖4所示.
Android數(shù)據(jù)的4種存儲(chǔ)方式包括SharedPreferences,SQLite,Content Provider和File.其中SQLite是一款輕量級的關(guān)系型數(shù)據(jù)庫,也是Android的標(biāo)準(zhǔn)數(shù)據(jù)庫.系統(tǒng)采用Android系統(tǒng)自帶的SQLite來存儲(chǔ)訂單錄入信息,從Android用戶界面獲取的數(shù)據(jù)保存到Android移動(dòng)設(shè)備平臺(tái)的數(shù)據(jù)庫中.
使用Google Maps位置服務(wù)對車載Android移動(dòng)設(shè)備平臺(tái)進(jìn)行實(shí)時(shí)定位,即對平臺(tái)所在車輛進(jìn)行實(shí)時(shí)定位.通過Google Maps進(jìn)行指定地點(diǎn)的尋址,規(guī)劃車輛導(dǎo)航路徑以及對車輛地理位置進(jìn)行跟蹤、監(jiān)控和顯示等,從而實(shí)現(xiàn)車輛定位和導(dǎo)航功能.
使用Google Maps服務(wù)需要向Google申請“地圖密鑰”.獲得密鑰后,由MapView控件把Google地圖嵌入到Android物流信息管理應(yīng)用程序中,從而獲得Google地圖提供的各項(xiàng)服務(wù).同時(shí),通過MapView控件可以在衛(wèi)星、街道和交通等地圖顯示模式之間進(jìn)行切換,地圖的顯示中心和縮放規(guī)模由MapController控制器控制.
使用Google提供的GPS定位獲得Android設(shè)備的坐標(biāo)位置,然后通過GeoPoint方法定位設(shè)備在地圖中的中心位置.為了使駕駛員更清楚地看到地圖上的位置,使用OverLay方法在MapView上添加覆蓋層,在指定位置添加注釋、繪制圖形和響應(yīng)觸摸點(diǎn)擊事件等.Android提供的位置服務(wù)類LocationManager用于處理位置的信息,使用LocationListener類跟蹤位置的改變.Android提供的Content.Location_Service可以得到位置服務(wù)類LocationManager,并使用LocationListener類監(jiān)聽LocationManager的變化.當(dāng)位置發(fā)生變化時(shí),調(diào)用函數(shù)onLocationChanged()進(jìn)行響應(yīng),其代碼類似于centerOnGPSPosition().
車輛軌跡跟蹤功能給出每次車輛配送物流業(yè)務(wù)的名字和描述,使用NewTrack類實(shí)現(xiàn)該功能.通過2個(gè)輸入框來輸入名字和描述,保存之后進(jìn)入ShowTrack頁面,實(shí)現(xiàn)其實(shí)時(shí)跟蹤功能.
圖5 地圖軌跡展示界面
地圖顯示是車輛軌跡管理的重要組成部分.MapView服務(wù)類表示軌跡,軌跡的顯示使用Overlay類.在Google地圖中,可以在地圖圖層上添加多個(gè)覆蓋層,每個(gè)覆蓋層都可以響應(yīng)用戶的觸屏點(diǎn)擊事件.創(chuàng)建覆蓋層通過繼承Overlay類,并通過重載類中的draw()方法為指定位置添加注釋,重載onTap()方法處理點(diǎn)擊操作.文中對draw()方法進(jìn)行了重寫,將軌跡上的每個(gè)點(diǎn)記錄在地圖上,形成路徑.定位當(dāng)前位置時(shí)使用了以下方法添加位置,用于提醒用戶.
(1)Overlay子類實(shí)現(xiàn)從數(shù)據(jù)庫中讀取數(shù)據(jù),把過去的軌跡顯示在地圖上.軌跡信息包括起點(diǎn)、終點(diǎn)、車輛最大速度和車輛平均速度等,主要使用TrackTabViewActivity類來實(shí)現(xiàn)軌跡信息顯示.
(2)OnClickListener()方法響應(yīng)用戶的點(diǎn)擊操作,把相應(yīng)的軌跡顯示出來.
地圖軌跡顯示界面如圖5所示,通過點(diǎn)擊列表上的軌跡,自動(dòng)顯示軌跡所處地圖上的信息,展現(xiàn)軌跡的位置,其中紅色線條為軌跡.
車輛位置的經(jīng)緯度查詢功能實(shí)現(xiàn)用戶輸入目的地的坐標(biāo)(經(jīng)度和緯度)后,通過GeoPoint類定位,在MapView控件上顯示目的地的正確位置,主要使用FindDestination類來實(shí)現(xiàn)通過輸入的坐標(biāo)獲得GeoPoint對象,然后在MapView上進(jìn)行定位.
通過調(diào)用Android系統(tǒng)內(nèi)置的地圖程序來實(shí)現(xiàn)路徑規(guī)劃導(dǎo)航功能.首先調(diào)用getLocationProvider()方法取得當(dāng)前位置,然后調(diào)用fromGeoPoint()方法得到當(dāng)前位置的地理坐標(biāo),界面提供EditText Widget控件,讓用戶輸入目的地址,通過查詢獲得目的地的地理坐標(biāo),這樣就得到2個(gè)GeoPoint對象.再調(diào)用Google地圖的內(nèi)置地圖程序,通過Uri.parse()方法輸入路徑規(guī)劃參數(shù).隨著車輛的移動(dòng),更新當(dāng)前GeoPoint對象的狀態(tài).當(dāng)用戶點(diǎn)擊查找按鈕時(shí),返回路徑規(guī)劃結(jié)果,如圖6所示.
進(jìn)入車載跟蹤界面后,可能會(huì)出現(xiàn)2種情況,即正常顯示和異常報(bào)錯(cuò).要保證正常顯示,首先要確保環(huán)境的支持,即網(wǎng)絡(luò)連接正常和 Google Maps服務(wù)支持.正常運(yùn)行后,用戶可以根據(jù)需要定制地圖的顯示方式和顯示界面,因?yàn)檐囕d的位置等信息是異步查詢,所以開始會(huì)出現(xiàn)“請稍等,信息正在檢索中…”的提示.查詢結(jié)束之后,會(huì)替換成對應(yīng)的位置信息,如圖7所示.
圖6 導(dǎo)航路徑界面
圖7 車載跟蹤測試
4結(jié)語
筆者設(shè)計(jì)的基于Android移動(dòng)智能設(shè)備的物流信息管理系統(tǒng),實(shí)現(xiàn)了物流信息數(shù)據(jù)的收集、傳輸和存儲(chǔ),并與物流中心實(shí)現(xiàn)物流數(shù)據(jù)和管理指令的交互,對車輛和貨物進(jìn)行跟蹤和監(jiān)控,構(gòu)建了物流信息管理應(yīng)用模型.下一步研究工作的目標(biāo)是在物流中心和Android移動(dòng)設(shè)備平臺(tái)智能化識別車輛和貨物,實(shí)現(xiàn)車載智能移動(dòng)終端對車輛和貨物信息的實(shí)時(shí)采集和處理,探討進(jìn)一步改進(jìn)已有物流中心系統(tǒng)的功能,使得物流中心能夠通過Android移動(dòng)設(shè)備平臺(tái)對車輛物流配送進(jìn)行智能化和移動(dòng)化監(jiān)控和調(diào)度.
參考文獻(xiàn):
[1]國務(wù)院.促先進(jìn)物流業(yè)健康發(fā)展政策措施的意見[EB/OL].[2014-06-20].http://www.gov.cn/zwgk/2011-08/19/content_1928314.htm.
[2]李建麗,徐凱.綠色物流理念下的第三方物流配送.綜合運(yùn)輸,2010(3):5-9.
[3]BURNETTE E.Hello,Android:Introducing Google’s Mobile Development Platform.Raleigh:Pragmatic Bookshelf,2009.
[4]速云中,張坤宣.基于Google Maps API技術(shù)的工程資料系統(tǒng)設(shè)計(jì)研究.測繪通報(bào),2009(7):143-148.
[5]陳濤.車輛導(dǎo)航系統(tǒng)中大區(qū)域路徑規(guī)劃算法的設(shè)計(jì)與實(shí)現(xiàn).鄭州:中國人民解放軍信息工程大學(xué),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地圖算法研究及實(shí)現(xiàn).計(jì)算機(jī)科學(xué),2007,34(11):211-215.
[9]張國生,高搏,姚慧敏.手機(jī)定位服務(wù)與電子地圖.繪科學(xué)技術(shù)學(xué)報(bào),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
(責(zé)任編輯陳炳權(quán))