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