王曉東
摘 要:本文介紹了Android應用程序公交小助手的設計方法,以及實現的過程。公交小助手主要有線路查詢、換乘方案查詢和定位附近站點等功能,方便用戶通過手機了解所在地附近的公交站點,更好地進行路線規劃。
關鍵詞:Android;公交小助手;設計
一、系統分析
隨著經濟的快速發展,使得居民汽車保有量逐年增加,在提高了生活質量的同時,也帶來了交通擁堵、環境污染等問題,因此公交車對于一個城市的交通系統仍然是十分必要的。借助公交小助手軟件可以快速查詢所在地附近的公交站點,方便出行,還能更好地進行路線規劃。做好系統分析工作,可以為整個項目開發奠定一個良好的基礎。經過對公交線路、站點的細致了解,以及和乘客進行充分的交流和溝通之后,總結出系統應該包含三個主要的功能模塊:(1)線路查詢。顯示公交線路類型分組項以及每一種類型相關公交線路的數量,用戶可以單擊任一項,在所選分組展開之后,單擊想要查詢的線路名稱,然后就會進入線路信息界面。也可以單擊查詢按鈕或者當前默認線路的編輯框,進入線路查詢輸入界面。單擊任一站點名稱進入站點信息界面,單擊地圖圖標就可以在地圖上查看相關站點和相關線路信息。(2)換乘方案查詢。用戶可以通過單擊查詢按鈕進入輸入界面,然后清除編輯框內的默認內容,在第一個編輯框內輸入換乘查詢的起點,在第二個編輯框內輸入換乘查詢的終點。這時單擊查詢按鈕就可以顯示換乘方案列表,單擊任一方案可以進入單個換乘顯示界面。(3)定位附近站點。用戶可以看到所在地附近1000米范圍內的所有站點,以及站點與用戶所在地距離的列表。單擊任一站點就可以進入站點信息界面,進而查詢路過此站點的所有線路。單擊地圖按鈕可以進入地圖顯示界面,單擊最下方的顯示框可以進行地點重新定位。
二、線路查詢的設計
線路查詢界面的搭建包括布局的安排,以及文本框、圖片視圖等控件的屬性設置。首先聲明界面的總線性布局,其中還包含了一個線性布局。該線性布局包含一個文本域控件和一個按鈕控件,設置排列方式為垂直排列。定義一個ExpandableListView控件,設置它的id、寬度、高度和背景顏色等屬性,該控件用于顯示公交線路類型。在線路查詢界面初始化時,為ExpandableListView設置展開和折疊事件以及單擊子項目監聽事件。單擊公交線路名稱之后,應跳轉到線路信息界面,并將所需的線路名稱、線路信息傳遞給BusLineActivity類。獲取地圖id,加載百度地圖,初始化地圖zoom值,添加地圖監聽,創建POI搜索實例,為用戶所查線路在地圖上顯示做準備。通過POI檢索獲得用戶想要查詢的公交線路各個站點信息,以及首末發車時間的實現方法。相關代碼如下:
stationStartUid=new ArrayList<String>();
stationEndUid=new ArrayList<String>();
ProvideContent.buslineSName= buslineName;
//設置ProvideContent類的線路名稱
busStartArray= new ArrayList<String>();
busEndArray= new ArrayList<String>();
mSearch=PoiSearch.newInstance();//POI檢索接口
mSearch.setOnGetPoiSearchResultListener(this);
mBusLineSearch=BusLineSearch.newInstance();//線路檢索接口;
mBusLineSearch.setOnGetBusLineSearchResultListener(this);
…………
三、換乘方案查詢的設計
首先獲取起點和終點編輯文本框引用,判斷是否存在相關信息,然后為編輯文本框設置內容。獲取查詢按鈕引用,并添加監聽。建立GetBusLineChange對象,為其傳遞參數并發起查詢。完成后線程會向handler發送消息,根據消息的what值,執行相應的case。相關代碼如下:
handler=new Handler;
switch(msg.what){
case Constant.INFO_NEARBYSTATIO:
mDialog.dismiss();//關閉提示對話框
initLineChangeData();//執行初始化換乘信息方法
break;
…………
四、定位附近站點的設計
獲取地圖顯示引用,加載百度地圖,隱藏地圖縮放按鈕,設置地圖顯示的中心點,設置地圖縮放比,開啟圖層定位,為后續地圖顯示做準備。定義一個addMarker方法,用來定位附近站點地圖界面的核心部分,包括添加Overlay、獲取定位數據,以及將獲取的數據顯示到地圖上等等。相關代碼如下:
SDKInitializer.initialize(this.getApplication());
setContentView(R.layout.map_near_station);//加載當前activity顯示界面
mMapView=(MapView)this.findViewById(R.id.mapNear);
mBaiduMap=mMapView.getMap();//加載地圖
mSetVisibility();//隱藏地圖縮放按鈕
mBaiduMap.setMyLocationEnabled(true);//開啟圖層定位
float mZoomLevel=16.0f;//設置地圖縮放比
…………
addMarker();
…………
五、結語
軟件是基于Android系統平臺的,采用Android Studio集成開發工具進行編程,數據庫選用SQLite。經過系統測試,公交小助手軟件實現了上述主要功能,可以查詢十堰市公交線路情況,顯示換乘方案,并能夠定位附近站點。軟件也有兩點可以改進的地方:(1)選擇城市。將系統所需要的資源文件按城市分別建成數據庫,然后把城市名稱添加到城市列表中,系統就會適用于已添加的所有城市了。這樣做不僅可以增強系統的靈活性和通用性,而且還有效地降低了二次應用的成本。(2)語音導航。全程進行語音播報,及時提示用戶已進入哪條路,接近哪個小區等等,提升用戶滿意度。
參考文獻:
[1] 吳亞峰. Android應用案例開發大全(第4版)[M].北京:人民郵電出版社, 2018.