文/蔣東玉 田英鑫
移動物聯(lián)網(wǎng)的快速發(fā)展,尤其是在智能家居和智能交通等領(lǐng)域,移動物聯(lián)網(wǎng)正在不斷提高人們的生活品質(zhì)。智能交通應(yīng)用更多的是汽車導(dǎo)航,而行車其他方面的應(yīng)用卻非常少,以致于行車中的各種有效信息無法交互與共享。行車助手APP不同于以往的導(dǎo)航應(yīng)用,它實(shí)時(shí)收集路況信息進(jìn)行路徑規(guī)劃,避開相對擁堵的路口,獲得最優(yōu)行駛路線,車耗油量,節(jié)省了使用者的時(shí)間和燃油消耗等,減少城市擁堵或者緩解擁堵路面的車流量,而且符合節(jié)能減排、低碳生活的要求,具有一定的實(shí)用價(jià)值和社會意義。
通過對行車用戶需求分析,基于Android平臺下的行車助手APP主要分為歸屬地查詢、車流量信息查看、路況查詢、救援常識查詢和耗油量信息查詢等功能。
(1)歸屬地查詢:用戶通過車牌來查詢該車牌所屬的歸屬地,或者通過對歸屬地來查詢該地方的車牌號相關(guān)信息。
(2)車流量查看:查看某路段一公里內(nèi)比較擁堵的道路。
(3)救援常識查詢:查看一些常見的緊急救援常識以及尋找最近汽車維修中心。
(4)路徑規(guī)劃:根據(jù)道路的路況和歷史車流量信息對每一段道路進(jìn)行車流量預(yù)測和路況分析,給出一條最優(yōu)路徑。
(5)耗油量信息查詢:耗油基本信息維護(hù)、根據(jù)公式來估算某段時(shí)間或路程內(nèi)的耗油量和平時(shí)耗油量的統(tǒng)計(jì)與分析。
本系統(tǒng)架構(gòu)分為四個層次,從上到下依次是應(yīng)用層(Applications)、應(yīng)用框架層(ApplicationFramework)、系統(tǒng)運(yùn)行庫層(Lib和Runtime)、Linux內(nèi)核層(linux kernel)。其中應(yīng)用層包含數(shù)據(jù)處理、地圖設(shè)置、控件顯示和網(wǎng)絡(luò)連接,屬于上層的操作。Android依賴Linux內(nèi)核2.6來提供核心服務(wù),比如進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧、硬件驅(qū)動。Linux內(nèi)核則作為硬件層和系統(tǒng)軟件棧層之間的一個抽象層,這個操作系統(tǒng)并非類GNU/Linux的,系統(tǒng)初始化和編程接口都和標(biāo)準(zhǔn)的Linux系統(tǒng)是有所不同的。如圖1所示。
圖1:車行助手系統(tǒng)架構(gòu)圖
百度提供了一套完整的地圖開發(fā)API,通過導(dǎo)入具體的包來布置地圖。百度地圖Android SDK是一套基于Android 2.1及以上版本設(shè)備的應(yīng)用程序接口。該套SDK開發(fā)適用于Android系統(tǒng)移動設(shè)備的地圖應(yīng)用,通過調(diào)用地圖SDK接口,可以輕松訪問百度地圖服務(wù)和數(shù)據(jù),構(gòu)建功能豐富、交互性強(qiáng)的地圖類應(yīng)用程序。百度地圖Android SDK提供的所有服務(wù)是免費(fèi)的,接口使用無次數(shù)限制。申請密鑰(key)后,就可以使用百度地圖Android SDK。
在行車最優(yōu)路徑規(guī)劃中,除行駛距離外還需要考慮其它的因素,若在搜索路徑時(shí)把全部道路都考慮進(jìn)去,不但浪費(fèi)時(shí)間,而且其結(jié)果往往不能使駕駛員所接受。根據(jù)出行者的出行特點(diǎn)和道路特征,改進(jìn)最短路徑的搜索策略,把某個時(shí)段的某一段道路擁擠程度分為五個等級應(yīng)用到最短路徑算法當(dāng)中,使算法更加合理,找到更符合駕駛員意愿的最短路徑,從而使算法更人性化。也使所得到的最短路徑更符合行車意義上的最優(yōu)路徑要求。
在路徑規(guī)劃中,最短路徑算法是非常重要的環(huán)節(jié),它決定了是否能準(zhǔn)確、快速地給出一條合理到達(dá)目的地的路徑。因此,在最短路徑算法的設(shè)計(jì)中必須遵循運(yùn)算速度快、路徑規(guī)劃合理的原則。因此在行車助手中提出了一種新的最優(yōu)路徑算法,這種算法是基于經(jīng)典最短路徑Dijkstra的算法。算法的基本思想就是不斷使用直接插入排序方法對最短路徑值數(shù)組進(jìn)行“動態(tài)地址數(shù)組排序”,使臨時(shí)標(biāo)記節(jié)點(diǎn)始終處于有序狀態(tài),在求解最短路徑的過程中,容易從臨時(shí)標(biāo)注節(jié)點(diǎn)集合中求出下一權(quán)值最小節(jié)點(diǎn),從而節(jié)約了算法執(zhí)行時(shí)間,使算法更加合理化。
本文基于Android平臺和Java技術(shù),設(shè)計(jì)了一款行車助手APP軟件,實(shí)現(xiàn)了智能收集交通狀況信息和規(guī)避擁堵狀況的線路規(guī)劃功能,結(jié)果表明,該軟件界面簡單易用,操作便捷,為人們出行帶來了方便。