張旭春,董貴勝
(濰坊工程職業(yè)學(xué)院,山東 青州 262500)
隨著城市化進(jìn)程的進(jìn)一步加快,道路交通建設(shè)成為城鎮(zhèn)化發(fā)展的關(guān)鍵環(huán)節(jié),近年來(lái)我國(guó)路網(wǎng)里程不斷增加,據(jù)最新資料顯示截止至2018年年底已超過484.65萬(wàn)km,處世界第一位.與此同時(shí),路網(wǎng)密度也在不斷提升,據(jù)悉我國(guó)36個(gè)主要城市的平均路網(wǎng)密度為5.96 km/km2,較2017年增長(zhǎng)了1.24%[1].交通線路的密集與延伸也為人們的交通出行帶來(lái)了挑戰(zhàn),交通壓力日趨嚴(yán)重,如何有效解決人們的交通出行問題是智慧城市建設(shè)的重點(diǎn)內(nèi)容.在互聯(lián)網(wǎng)全面發(fā)展的時(shí)代下,交通出行服務(wù)需緊密結(jié)合“共享”“聚合”等關(guān)鍵詞,深化“互聯(lián)網(wǎng)+交通”來(lái)緩解交通壓力,提升出行服務(wù)效率,實(shí)現(xiàn)現(xiàn)代化公路管理.
隨著城市交通建設(shè)的發(fā)展,越來(lái)越多人們關(guān)注公共交通出行,西方發(fā)達(dá)國(guó)家建立交通信息服務(wù)系統(tǒng),如美國(guó)的511交通信息系統(tǒng)、日本的VICS信息系統(tǒng)為出行者們提供道路路況、公交等查詢信息查詢服務(wù),從而方便人們出行[2].我國(guó)也不例外,研究者們對(duì)智能交通出行服務(wù)展開了豐富的研究,白罩峰與曹靜(2017)利用動(dòng)態(tài)分段技術(shù)與空間數(shù)據(jù)庫(kù)開發(fā)了一款公共公交查詢系統(tǒng),其研究成果顯示有效減少了數(shù)據(jù)冗余問題,還提供了優(yōu)秀的可視化出行服務(wù)規(guī)劃[3];翁劍成與王月玥等人(2017)基于個(gè)人出行的數(shù)據(jù)構(gòu)建了公共交通出行鏈信息模型,結(jié)果顯示模型判別準(zhǔn)確率高達(dá)100%,這為人們交通出行奠定了數(shù)據(jù)基礎(chǔ)[4];王芳杰與王雨晨等人(2019)則基于LightGBM算法構(gòu)建了公交行程時(shí)間預(yù)測(cè)模型,提供更高效的出行服務(wù)[5].可以看到研究者們從算法、技術(shù)等多角度來(lái)進(jìn)行了交通出行系統(tǒng)構(gòu)架研究,但是采用聚合數(shù)據(jù)構(gòu)建交通出行系統(tǒng)JP的研究并不多見,對(duì)此本文提出了基于聚合數(shù)據(jù)的交通出行查詢系統(tǒng),使得人們的交通出行更為便捷化、高效化.
聚合數(shù)據(jù)是一個(gè)綜合性云數(shù)據(jù)平臺(tái),其主要為廣大開發(fā)者們、圖商們提供原始數(shù)據(jù)API服務(wù)[6].據(jù)統(tǒng)計(jì)顯示目前聚合數(shù)據(jù)平臺(tái)上共提供了超過160類行業(yè)的基礎(chǔ)數(shù)據(jù)API接口,包括生活服務(wù)、交通地理、金融科技等多種類別,且數(shù)據(jù)質(zhì)量很高.簡(jiǎn)單來(lái)說(shuō)聚合數(shù)據(jù)平臺(tái)相當(dāng)于數(shù)據(jù)庫(kù),開發(fā)者通過接口可從中直接調(diào)用所需數(shù)據(jù)并進(jìn)行二次開發(fā),極大地節(jié)省了開發(fā)時(shí)間與開發(fā)成本.聚合數(shù)據(jù)API的使用方法非常簡(jiǎn)便,僅需在聚合數(shù)據(jù)平臺(tái)進(jìn)行注冊(cè)認(rèn)證并申請(qǐng)所需要的APPKey即可.在本次的交通出行系統(tǒng)設(shè)計(jì)與構(gòu)建過程中,將聚合SDK嵌入系統(tǒng)中能保證開發(fā)高效完成,確保利益最大化.
百度地圖是百度為廣大用戶提供的一款地圖搜索服務(wù)服務(wù)引擎,其中包含了行車導(dǎo)航、出行換乘、公交路線以及附近搜索等豐富的查詢功能,這為用戶的出行與日常生活提供了便利化的工具.另外,百度地圖還為開發(fā)者們提供了豐富的API,包括Android SDK,JavaScript API和IOS SDK等,適合多種開發(fā)平臺(tái)[7].其中,百度地圖SDK提供的接口服務(wù)不受次數(shù)限制且是免費(fèi)的,調(diào)用方式也非常簡(jiǎn)單,與聚合數(shù)據(jù)API類似,也只需成功注冊(cè)后申請(qǐng)開發(fā)所需key,然后嵌入到開發(fā)的系統(tǒng)中就可便捷訪問與調(diào)用百度地圖的數(shù)據(jù)[8].作為交通出行查詢系統(tǒng),在開發(fā)中引入百度地圖能減少開發(fā)成本,提高開發(fā)效率.因此本次系統(tǒng)設(shè)計(jì)在申請(qǐng)百度地圖key成功后,選擇“公交查詢系統(tǒng)”Jar 包,和對(duì)應(yīng)的So文件,放置到對(duì)應(yīng)的目錄文件下,并在對(duì)應(yīng)的xml文件中添加申請(qǐng)的秘鑰,完成了百度地圖數(shù)據(jù)調(diào)用接口搭建.
任何一款應(yīng)用程序或者系統(tǒng)在開發(fā)之前都應(yīng)充分做好需求分析工作,從用戶的需求出發(fā),這樣才能保證系統(tǒng)的實(shí)用性,從而增強(qiáng)用戶的體驗(yàn)度與滿意度.對(duì)此需從功能需求和非功能需求兩個(gè)方面進(jìn)行全面分析.
本次設(shè)計(jì)的交通出行系統(tǒng)主要是面向廣大的公共交通乘客,因此需緊密圍繞用戶的切身需求展開.根據(jù)對(duì)乘客交通出行的需求進(jìn)行調(diào)查與歸納發(fā)現(xiàn),主要分為線路查詢、站點(diǎn)查詢以及換乘查詢這三種需求,具體的功能需求詳見表1.對(duì)此用戶用例可描述為如圖1所示.
表1 交通出行系統(tǒng)基本功能及描述
圖1 交通出行用戶需求用例圖
除了功能系統(tǒng)外,作為系統(tǒng)需求的補(bǔ)充,非功能需求必須能夠提供有效保證.對(duì)于本次設(shè)計(jì)構(gòu)建的交通出行查詢系統(tǒng)來(lái)說(shuō),需充分考慮到易用性、安全性以及準(zhǔn)確性等需求[9].易用性要求系統(tǒng)操作簡(jiǎn)潔明了,提供友好的人機(jī)交互界面,對(duì)此本次系統(tǒng)設(shè)計(jì)遵循人性化理念,采用Android 平臺(tái)的界面設(shè)計(jì),確保操作界面的直觀與簡(jiǎn)潔;安全性是系統(tǒng)運(yùn)行的基礎(chǔ),對(duì)此在設(shè)計(jì)時(shí)考慮到用戶的身份安全問題,設(shè)置了管理權(quán)限的同時(shí)采用MD5算法進(jìn)行信息加密;除此之外,交通出行查詢最重要的在于提供數(shù)據(jù)的準(zhǔn)確性,而聚合數(shù)據(jù)與百度地圖具有很高的數(shù)據(jù)質(zhì)量,保證了數(shù)據(jù)的準(zhǔn)確性.
本次設(shè)計(jì)的交通出行查詢系統(tǒng)是基于Android 平臺(tái)上開發(fā)的,采用的是SSH框架,通過MVC模式來(lái)構(gòu)建系統(tǒng).MVC模式是目前軟件開發(fā)最常用的開發(fā)模式,其具有低耦合性、開發(fā)成本低與易維護(hù)等特性,非常適用于本次設(shè)計(jì)的系統(tǒng)構(gòu)建.具體架構(gòu)設(shè)計(jì)如圖2所示,其中視圖層由Fragment與Activity共同構(gòu)建,并且調(diào)用了百度地圖與聚合數(shù)據(jù)等API接口,從而實(shí)現(xiàn)地圖瀏覽與站點(diǎn)、線路等信息查詢;控制層則由封裝了所有Activity調(diào)用的UIHelper 與Adapter構(gòu)成;模型層則由持久化層與實(shí)體層組建而成.
本系統(tǒng)所對(duì)應(yīng)的物理架構(gòu)如圖3所示.
圖2 交通出行查詢系統(tǒng)架構(gòu)
圖3 系統(tǒng)的物理架構(gòu)
根據(jù)用戶需求,設(shè)計(jì)的這款智能交通出行查詢系統(tǒng)共可分為以下用戶管理、后臺(tái)管理以及交通查詢?nèi)竽K,系統(tǒng)具體的功能模塊結(jié)構(gòu)圖如圖4所示.其中用戶管理模塊設(shè)置是為保障用戶信息安全性,并同時(shí)擁有記憶功能,對(duì)查詢的信息以及用戶資料進(jìn)行記錄.后臺(tái)管理主要是系統(tǒng)管理人員使用,主要包括維護(hù)與管理信息數(shù)據(jù)以及相關(guān)APK的下載與打包工作.交通查詢模塊是本系統(tǒng)的核心內(nèi)容,會(huì)通過接入的聚合數(shù)據(jù)獲取用戶所在的經(jīng)緯度信息來(lái)完成定位后,同時(shí)對(duì)百度地圖SDK進(jìn)行調(diào)用從而來(lái)實(shí)現(xiàn)換乘、線路以及站點(diǎn)查詢工作.
圖4 交通出行查詢系統(tǒng)功能模塊結(jié)構(gòu)圖
本系統(tǒng)設(shè)計(jì)采用SQLite 數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)屬于輕量級(jí),適用于移動(dòng)客戶端,能滿足系統(tǒng)所需的響應(yīng)速度要求.根據(jù)查詢系統(tǒng)的E-R圖(見圖5),數(shù)據(jù)庫(kù)內(nèi)應(yīng)存放如下站點(diǎn)信息表、線路信息表以及換乘信息表見表2,表3,表4.
圖5 交通出行查詢系統(tǒng)的E-R圖
字段名類型說(shuō)明BusStop_idinteger表的主鍵BusStopNamevarchar(10)站點(diǎn)名稱BusStopAddressvarchar(50)站點(diǎn)地址
表3 線路信息表
表4 換乘信息表
設(shè)計(jì)智能交通出行查詢系統(tǒng)的線路查詢、站點(diǎn)查詢以及換乘查詢流程示意圖如圖6~圖8所示,在流程圖中均要判斷輸入的線路/站點(diǎn)/目的地等信息是否有效,然后才能對(duì)查詢算法以及調(diào)用聚合數(shù)據(jù)與地圖數(shù)據(jù),最終輸出結(jié)果列表.同時(shí)對(duì)系統(tǒng)進(jìn)行了功能模塊測(cè)試,測(cè)試結(jié)果顯示系統(tǒng)穩(wěn)定性良好,各模塊功能得以實(shí)現(xiàn),線路查詢、站點(diǎn)查詢與換乘查詢響應(yīng)時(shí)間短,均在10 s內(nèi)完成查詢搜索,具有很高的易用性與實(shí)用性.
圖6 線路查詢流程圖7 站點(diǎn)查詢流程
圖8 換乘查詢流程
為順應(yīng) “互聯(lián)網(wǎng)+交通”的應(yīng)用要求,在充分調(diào)研系統(tǒng)需求的基礎(chǔ)上設(shè)計(jì)了一款基于聚合數(shù)據(jù)的交通出行查詢系統(tǒng),采用MVC模式進(jìn)行系統(tǒng)架構(gòu)搭建,并完成了站點(diǎn)、線路以及換乘等功能模塊的實(shí)現(xiàn),并通過了系統(tǒng)測(cè)試.設(shè)計(jì)結(jié)果顯示能滿足用戶對(duì)于交通出行的基本需求.