【摘 要】論文提出的基于Android的智慧交通系統(tǒng),實(shí)現(xiàn)了在移動(dòng)端上頁面的設(shè)計(jì)、智慧環(huán)境監(jiān)測、ETC不停車系統(tǒng)車牌的采集、金額的更新、公交報(bào)站系統(tǒng)車輛位置動(dòng)畫及位置播報(bào)等功能。
【Abstract】The intelligent transportation system based on Android proposed in this paper realizes the functions of page design on the mobile terminal, intelligent environment monitoring, License plate acquisition of ETC non-parking system, amount update, vehicle position animation and position broadcast of bus stop reporting system.
【關(guān)鍵詞】Android;智慧交通;數(shù)據(jù);采集;控制
【Keywords】Android; intelligent transportation; data; acquisition; control
【中圖分類號】TP311? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻(xiàn)標(biāo)志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【文章編號】1673-1069(2019)12-0148-02
1 引言
智慧交通是在交通領(lǐng)域中充分運(yùn)用物聯(lián)網(wǎng)、云計(jì)算、人工智能、自動(dòng)控制、移動(dòng)互聯(lián)網(wǎng)等現(xiàn)代電子信息技術(shù)面向交通運(yùn)輸?shù)姆?wù)系統(tǒng)。移動(dòng)通信技術(shù)能使城市內(nèi)各類公共交通,如地鐵、城市軌道、公交等的相關(guān)數(shù)據(jù)進(jìn)行實(shí)時(shí)獲取、整合、分析、發(fā)布[1]。通過對城市實(shí)時(shí)交通態(tài)勢的準(zhǔn)確把握、短期需求的預(yù)測、實(shí)時(shí)交通信息的發(fā)布,實(shí)現(xiàn)城市交通精細(xì)化管理,提升交通運(yùn)輸服務(wù)質(zhì)量,從而實(shí)現(xiàn)城市大交通與移動(dòng)互聯(lián)網(wǎng)的深度融合[2]。
基于Android的智慧交通系統(tǒng)的設(shè)計(jì)與研究通過對智慧交通領(lǐng)域比較典型的應(yīng)用的研究,實(shí)現(xiàn)了智慧環(huán)境監(jiān)測、ETC不停車收費(fèi)、智能停車場、公交報(bào)站系統(tǒng)等應(yīng)用功能。
2 系統(tǒng)總體設(shè)計(jì)
本項(xiàng)目通過智慧交通系統(tǒng)API從服務(wù)器端獲取環(huán)境、車牌信息及余額、停車場停車情況、公交車路次、當(dāng)前位置等信息并顯示在移動(dòng)端的環(huán)境監(jiān)測、ETC不停車收費(fèi)、智能停車場和公交報(bào)站系統(tǒng)等界面上。
3 系統(tǒng)實(shí)施
3.1 整體界面設(shè)計(jì)
整體界面設(shè)計(jì)主要包含標(biāo)題欄ActionBar、ViewPager、Fragment和底部自定義View,智慧環(huán)境監(jiān)測以及環(huán)境監(jiān)測、ETC不停車收費(fèi)、智能停車場和公交報(bào)站系統(tǒng)等界面的搭建。
ActionBar是一個(gè)非常重要的交互元素,針對于平板設(shè)備等相對較大的屏幕可以展示更多、更豐富的內(nèi)容。Android3.0以上版本的Activity中都默認(rèn)包含ActionBar,在AndroidMainfest.xml中指定其theme是Theme.Holo或其子類。
使用ViewPager+Fragment實(shí)現(xiàn)多頁面滑動(dòng)切換、創(chuàng)建attr.xml文檔自定義底部導(dǎo)航欄中按鈕和文字的相關(guān)屬性,包含圖標(biāo)、顏色、文本、文本字體大小等,完成在組件中使用自定義屬性并為屬性賦值,在java代碼中使用自定義屬性并獲取自定義屬性值進(jìn)行操作[3]。
繪制底部icon時(shí),確定icon的寬度和高度,使用onDraw方法繪制圖標(biāo)和文本,使用drawBitmap繪制原圖,創(chuàng)建寬度為getMeasuredWidth()、高度為getMeasuredHeight(),自定義invalidateView方法實(shí)現(xiàn)重繪。
3.2 智慧環(huán)境監(jiān)測
智慧環(huán)境監(jiān)測界面使用列表布局、圖片按鈕及動(dòng)畫完成頁面搭建,通過一般處理程序從智慧交通系統(tǒng)API中實(shí)現(xiàn)移動(dòng)端與服務(wù)器端的通信。
ListView是比較常用的組件,其以列表的形式展示具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長度自適應(yīng)顯示,完成主要傳感器數(shù)據(jù)的采集。將傳感器、繼電器、ZigBee模塊等設(shè)備與服務(wù)器相連接,制定好通信協(xié)議后,進(jìn)行數(shù)據(jù)的接收與設(shè)備的控制。報(bào)警燈、風(fēng)扇、燈泡等設(shè)備控制都是通過控制繼電器控制設(shè)備開關(guān),以風(fēng)扇為例,當(dāng)按下風(fēng)扇按鈕時(shí),通過線程向服務(wù)器發(fā)送指令[4]。
3.3 ETC不停車收費(fèi)系統(tǒng)
本頁面顯示卡號時(shí)用到了文本框和編輯框,用于實(shí)現(xiàn)文字的提示和數(shù)據(jù)的顯示,使用一般處理程序取服務(wù)器發(fā)送的JSON數(shù)據(jù)完成解析,實(shí)現(xiàn)信息采集及信息的更新。JSON是一種輕量級的數(shù)據(jù)交換格式,JSON一共有兩種數(shù)據(jù)結(jié)構(gòu)一種是JSON對象(object),是由花括號包裹起來的若干個(gè)的鍵值對的集合;一種是JSON數(shù)組,是由方括號包裹的若干個(gè)對象的集合,常用的兩類就是JSONObject和JSONArray,分別代表了json對象和json數(shù)組,這兩類都實(shí)現(xiàn)了JSON這個(gè)接口。
①JSONArray jArray = new JSONObject(json).getJSONArray("busStops");
②int count = jArray.length();
③for (int index = 0; index < count; index++) {
④String id = jArray.optJSONObject(index).getString("_id").toString();
⑤String stopName = jArray.optJSONObject(index).getString("stop").toString();)
使用new JSONObject(json).創(chuàng)建JSONObject對象,然后調(diào)用getJSONArray方法轉(zhuǎn)換為JSONArray,在循環(huán)中使用optJSONObject方法獲取字段為_id、stop的數(shù)據(jù)值,將獲取的數(shù)據(jù)以鍵值對的形式存入map,然后將map存入List列表類型變量stopsData中去,創(chuàng)建SimpleAdapter適配器,設(shè)置適配器到ListView上。
3.4 公交報(bào)站系統(tǒng)
本頁面設(shè)置背景圖片后添加ListView,用于顯示多路公交車及線路。搭建公交報(bào)站及動(dòng)畫頁面,使用Tween Animation定義一個(gè)開始的位置和一個(gè)結(jié)束位置,定義移動(dòng)時(shí)間,隨后就能自動(dòng)產(chǎn)生移動(dòng)動(dòng)畫。在汽車報(bào)站系統(tǒng)中當(dāng)隨意選擇一個(gè)站點(diǎn)時(shí),跳轉(zhuǎn)到動(dòng)畫公交報(bào)站頁面,通過動(dòng)畫模擬公交經(jīng)過的站點(diǎn),當(dāng)?shù)竭_(dá)站點(diǎn)時(shí),公交車停止,然后繼續(xù)前進(jìn)。
①TranslateAnimation animation = new TranslateAnimation(0,900,0,0);
②animation.setDuration(2000);
③animation.setFillEnabled(true);
④animation.setFillAfter(true);
⑤iv_bus.setAnimation(animation);
⑥animation.startNow();
實(shí)例化TranslateAnimation時(shí)確定初始值0,終止值900,確定前進(jìn)的時(shí)間為2000,設(shè)置動(dòng)畫填充效果不回到原地,設(shè)置動(dòng)畫不回到起始位置,設(shè)置汽車圖片的動(dòng)畫效果,啟動(dòng)動(dòng)畫,然后添加動(dòng)畫的事件監(jiān)聽器,通過調(diào)用onAnimationEnd方法完成在動(dòng)畫結(jié)束后繼續(xù)觸發(fā)下一個(gè)動(dòng)畫,通過獲取服務(wù)器端的數(shù)據(jù)完成站點(diǎn)位置及時(shí)間的更新。語音播報(bào)利用Android系統(tǒng)中自帶的TextToSpeech類就可以實(shí)現(xiàn)語音的自動(dòng)播報(bào)。
4 結(jié)語
本項(xiàng)目是基于Android的智慧交通系統(tǒng),使用Android實(shí)現(xiàn)了在移動(dòng)端上的頁面設(shè)計(jì)、智慧環(huán)境監(jiān)測等功能,是信息技術(shù)與交通的有機(jī)融合,以期給整個(gè)交通行業(yè)帶來了創(chuàng)新與變革。
【參考文獻(xiàn)】
【1】張錦鵬.基于云計(jì)算的車聯(lián)網(wǎng)中異構(gòu)數(shù)據(jù)融合方法的研究[D].昆明:昆明理工大學(xué),2018.
【2】甘淑華,黃少偉.關(guān)于車聯(lián)網(wǎng)技術(shù)的智慧交通系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].科技資訊,2018,16(34):14-15.
【3】李萬鵬.智慧交通大數(shù)據(jù)平臺系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].智能建筑與智慧城市,2019(05):98-99+102.
【4】陳鵬.麥加朝覲智慧交通系統(tǒng)前端模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京大學(xué),2018.
【作者簡介】夏智偉(1981-),女,山東濰坊人,講師,從事物聯(lián)網(wǎng)技術(shù)應(yīng)用研究。