国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android手機(jī)的西安市公交查詢系統(tǒng)設(shè)計與實(shí)現(xiàn)

2018-09-19 09:40劉高輝林亞茹何坤城
計算機(jī)測量與控制 2018年9期
關(guān)鍵詞:數(shù)據(jù)表站點(diǎn)客戶端

劉高輝,袁 萌,林亞茹,何坤城

(西安理工大學(xué)自動化與信息學(xué)院,西安 710048)

0 引言

近年來,我國的公交查詢系統(tǒng)迅速發(fā)展,不少城市都擁有了公交線路查詢系統(tǒng),網(wǎng)絡(luò)上也可以下載到許多不同版本的公交查詢軟件[1]。但是,目前的公交查詢系統(tǒng)存在其不足之處:

1)目前的公交查詢系統(tǒng)不能向用戶提供所查詢路段的道路擁堵狀況信息,這將不利于乘客有選擇的乘車;2)目前西安的公交查詢系統(tǒng)也不能給客戶提供下一輛公交車的準(zhǔn)確到達(dá)時間,造成用戶盲目等待某輛公交車,造成對時間的大量浪費(fèi)[2]。

針對當(dāng)前存在的公交管理系統(tǒng)的不足,本文中提出并設(shè)計了一個基于安卓手機(jī)的公交查詢系統(tǒng),系統(tǒng)主體分為3個部分:模擬服務(wù)器、手機(jī)客戶端、模擬車輛終端,通過各部分之間的配合,實(shí)現(xiàn)安卓手機(jī)客戶端對指定線路公交車運(yùn)行狀態(tài)的查詢,從而方便乘客選擇乘車[3]。

本系統(tǒng)的成功開發(fā),不僅能夠?qū)崿F(xiàn)用戶對公交信息的查詢,更重要的意義在于能夠?qū)⑷?、車、路三者結(jié)合起來,通過車況來反映路況信息,再通過服務(wù)器將信息發(fā)布到手機(jī)客戶端,從而達(dá)到方便乘客出行的目的。另外,本系統(tǒng)也可作為交通查詢網(wǎng)絡(luò)的雛形,可以想象,如果進(jìn)一步開發(fā),可能形成一個巨大的交通信息網(wǎng)絡(luò),這對于智能化交通以及提高公交管理水平都具有重要意義。

1 系統(tǒng)總體設(shè)計

1.1 系統(tǒng)主要功能模塊

本公交查詢系統(tǒng)主體分為3個部分:模擬服務(wù)器、手機(jī)客戶端、車輛終端。圖1是系統(tǒng)總體結(jié)構(gòu)圖。圖中,系統(tǒng)模擬服務(wù)器是指一個運(yùn)行在電腦上的一個Java應(yīng)用程序,該應(yīng)用后面維護(hù)著一個數(shù)據(jù)庫,用來儲存公交運(yùn)行中的各種數(shù)據(jù);手機(jī)客戶端和模擬車輛終端都是運(yùn)行在Android手機(jī)上的應(yīng)用程序。

圖1 系統(tǒng)總體結(jié)構(gòu)圖

1.2 系統(tǒng)功能描述

系統(tǒng)各部分功能描述如下:

模擬服務(wù)器功能:(1)增加和刪除公交路線和行車線路;(2)接收并發(fā)布用戶選定的線路上公交車傳來的站點(diǎn)擁堵信息;(3)為用戶發(fā)布選定線路上下一輛到達(dá)的公交車所處站點(diǎn)。

手機(jī)客戶端功能:(1)調(diào)用百度地圖按公交路線 (如“11”)查詢行車線路;(2)查詢下一輛到達(dá)的公交車所處站點(diǎn);(3)從服務(wù)器上獲取在選定線路上的公交傳回的道路擁堵信息。

模擬車輛終端功能:(1)向服務(wù)器發(fā)送自身的運(yùn)行方向及所處的位置;(2)實(shí)時地向服務(wù)器發(fā)送該車所在運(yùn)行區(qū)間的擁堵狀況。

系統(tǒng)總體功能基本是系統(tǒng)各部分功能的總和,是將系統(tǒng)各部分有機(jī)的結(jié)合在一起作為一個整體運(yùn)行。系統(tǒng)的主要運(yùn)行方式是:通過手機(jī)客戶端和模擬車輛終端向模擬服務(wù)器發(fā)出的請求來驅(qū)動模擬服務(wù)器更新數(shù)據(jù)庫以及反饋信息到客戶端。

2 模擬服務(wù)器的設(shè)計

模擬服務(wù)器是整個系統(tǒng)的核心,系統(tǒng)的其它模塊都要通過模擬服務(wù)器與別的部分產(chǎn)生聯(lián)系。模擬服務(wù)器后臺維護(hù)著一個子線程,該線程不斷地接受來自手機(jī)客戶端和模擬車輛終端傳來的消息,并對數(shù)據(jù)庫進(jìn)行相應(yīng)的更新或給手機(jī)客戶端和模擬車輛終端反饋相應(yīng)的信息。

2.1 模擬服務(wù)器結(jié)構(gòu)組成

系統(tǒng)主界面是模擬服務(wù)器的中心界面,管理員通過登錄界面登錄到系統(tǒng)中就進(jìn)入系統(tǒng)主界面,隨即系統(tǒng)主界面開啟了一個線程來處理來自模擬車輛終端和手機(jī)客戶端的請求。在主界面中管理員可以選擇完成“添加線路”、“修改線路”或者“刪除線路”來執(zhí)行相應(yīng)的操作,執(zhí)行的效果會實(shí)時更新到數(shù)據(jù)庫里。

2.2 數(shù)據(jù)庫的設(shè)計

模擬服務(wù)器后臺連接著一個Access數(shù)據(jù)庫,該數(shù)據(jù)庫命名為bus,用來存儲系統(tǒng)中所要用到的一些數(shù)據(jù)。需要說明的是,Java中有多種訪問數(shù)據(jù)庫的方法,本系統(tǒng)采用的是把JDBC轉(zhuǎn)換成ODBC驅(qū)動器的方法,靠ODBC和數(shù)據(jù)庫建立通信連接[4]。

根據(jù)需求,本系統(tǒng)中建立了五張數(shù)據(jù)表來存儲數(shù)據(jù),他們分別是:busLine、busLocation、stationLocation、station-StateGo和stationStateBack。需要說明的是,因?yàn)閷?shí)際中全國公交線路過多,公交站點(diǎn)數(shù)更是難以計數(shù),如果要全部錄入,勢必造成工作量過大。因此,本系統(tǒng)在設(shè)計時將重點(diǎn)放在各功能的實(shí)現(xiàn)上,只選取了西安市以‘1’開頭的部分線路作為樣本來驗(yàn)證本系統(tǒng)的功能。

下面分別對這些數(shù)據(jù)表進(jìn)行詳細(xì)介紹。

2.2.1 數(shù)據(jù)表busLine的設(shè)計

數(shù)據(jù)表busLine的作用是按順序存儲各公交線路上的站點(diǎn)信息,供用戶在已知公交線路的情況下查詢該條線路上的站點(diǎn)序列,設(shè)計為每條線路可以存儲70個公交站點(diǎn)。busLine中各字段說明如表1。

表1 數(shù)據(jù)表busLine各字段說明

需要說明的是,如果公交線路上的的站點(diǎn)數(shù)不足70站,則將不存在的站點(diǎn)名設(shè)為“xx”,表示不存在該站點(diǎn)。查詢數(shù)據(jù)表busLine可以獲取線路上的站點(diǎn)信息。

2.2.2 數(shù)據(jù)表busLocation的設(shè)計

數(shù)據(jù)表busLocation用來存儲每條公交線路上每輛公交車所在的站間區(qū)間以及運(yùn)行方向信息,設(shè)計為每條公交線路上可以運(yùn)行50輛公交車,其各字段如表2所示。

表2 數(shù)據(jù)表busLocation各字段說明

busLocation表,可以得到所查詢線路上所有公交車的位置信息。再結(jié)合每輛公交車的運(yùn)行方向和乘客所在站點(diǎn)信息,就能計算出下一輛到達(dá)的公交車還有幾站到達(dá)。

2.2.3 數(shù)據(jù)表busStateBack的設(shè)計

數(shù)據(jù)表busStateBack用來存儲每條公交線路返程上每個站間區(qū)間的交通狀態(tài),其各字段說明如表3所示。

表3 數(shù)據(jù)表busStateGo各字段說明

數(shù)據(jù)表busStateBack中的信息是根據(jù)車輛終端發(fā)回的道路狀態(tài)信息進(jìn)行實(shí)時更新的。每個站間的交通狀態(tài)有五種可選取值:state、state1、state2、state3和 state4。其中,state為默認(rèn)狀態(tài),當(dāng)未收到來自車輛終端的更新該區(qū)間狀態(tài)的信息時,默認(rèn)為state;state1表示“交通暢通”;state2表示“輕度擁堵”;state3表示“重度擁堵”;state4表示“發(fā)生事故”。

2.2.4 數(shù)據(jù)表busStateGo的設(shè)計

busStateGo表和busStateBack表的結(jié)構(gòu)相同,各字段表示的意義也一樣,只不過是把“返程方向”改成“往程方向”而已,此處不再贅述。

2.2.5 數(shù)據(jù)表stationLocation的設(shè)計

數(shù)據(jù)表stationLocation的作用是存儲站點(diǎn)的百度地圖經(jīng)緯度坐標(biāo),它的各字段說明如表4所示。有了此坐標(biāo)表就能實(shí)現(xiàn)地址解析,將公交站名轉(zhuǎn)化成對應(yīng)的地理坐標(biāo),進(jìn)而實(shí)現(xiàn)在百度地圖上繪制公交線路的功能[5,6]。數(shù)據(jù)表stationLocation存儲了西安的所有公交站點(diǎn),所以理論上所有公交線路都能解析成一個地理坐標(biāo)鏈。

表4 數(shù)據(jù)表stationLocation各字段說明

2.3 模擬服務(wù)器運(yùn)行流程圖

2.3.1 系統(tǒng)總體運(yùn)行流程圖

模擬服務(wù)器的總體運(yùn)行流程圖如圖2所示。

圖2 模擬服務(wù)器的總體運(yùn)行流程圖

如圖2所示,系統(tǒng)運(yùn)行后,首先進(jìn)入登錄頁面,提示用戶輸入用戶名和密碼。當(dāng)用戶登錄的時候,為了增加安全性,使用MD5加密。系統(tǒng)把用戶輸入的密碼計算成MD5值,然后再去和保存在文件系統(tǒng)中的MD5值進(jìn)行比較,進(jìn)而確定輸入的密碼是否正確。通過這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。這不但可以避免用戶的密碼被具有系統(tǒng)管理員權(quán)限的用戶知道,而且還在一定程度上增加了密碼被破解的難度。如果輸入的用戶名和密碼與數(shù)據(jù)庫中儲存的用戶名和密碼相同,則登錄成功,進(jìn)入系統(tǒng)主界面;否則,報錯并提示用戶重新登錄。登錄成功后,系統(tǒng)會開啟子線程來處理來自手機(jī)客戶端和模擬車輛終端的請求,管理員可以選擇“添加線路”、“刪除線路”以及“修改線路”等功能,分別執(zhí)行不同的操作。

2.3.2 后臺子線程運(yùn)行流程圖

系統(tǒng)后臺子線程的運(yùn)行流程圖如圖3所示。

圖3 后臺子線程運(yùn)行流程圖

從圖3可以看出,子線程開啟后,系統(tǒng)一直循環(huán)會檢測是否接到手機(jī)客戶端或模擬車輛終端發(fā)來的請求,若沒有接到,則繼續(xù)檢測;若接到請求,根據(jù)信息的類型進(jìn)行不同處理。如果是模擬車輛終端上傳的路況信息,就更新數(shù)據(jù)庫中對應(yīng)線路相應(yīng)區(qū)間的交通狀況信息;如果是手機(jī)客戶端查詢信息,進(jìn)一步判斷要查詢信息的類型,然后在數(shù)據(jù)庫中進(jìn)行查找并返回查詢結(jié)果。

2.4 數(shù)據(jù)通信格式

從上面的系統(tǒng)總體結(jié)構(gòu)圖可以看出,模擬服務(wù)器是整個公交管理系統(tǒng)的核心,是將這個系統(tǒng)聯(lián)系在一起的中心節(jié)點(diǎn)。手機(jī)客戶端,模擬車輛終端都必須先與模擬服務(wù)器接線聯(lián)系才能實(shí)現(xiàn)與數(shù)據(jù)庫的交互。下面介紹一下,手機(jī)客戶端以及模擬車輛終端和模擬通信的格式,系統(tǒng)中所有通信格式說明見表5。

表5 通信格式說明

由表5可以看出:客戶端向模擬服務(wù)器發(fā)出的請求可以分為兩類,一類是查詢類請求,另一類是更新類請求。查詢類請求要求服務(wù)器返回客戶端所要查詢的內(nèi)容,更新類請求只是通知服務(wù)器更新數(shù)據(jù)信息,不需要服務(wù)器返回任何內(nèi)容。實(shí)際上客戶端和服務(wù)器通信的核心還是客戶端與數(shù)據(jù)庫的交互:即客戶端查詢數(shù)據(jù)庫中的信息,并更新數(shù)據(jù)庫中的信息。

3 模擬車輛終端和手機(jī)客戶端的設(shè)計與實(shí)現(xiàn)

本論文中的模擬車輛終端和手機(jī)客戶端均是基于Android平臺開發(fā)的應(yīng)用程序。其中模擬車輛終端用來模擬運(yùn)行中的公交車輛,在運(yùn)行過程中能向服務(wù)中心發(fā)送當(dāng)前位置信息和所在站間區(qū)間的交通擁堵狀況信息[78]。手機(jī)客戶端是向用戶發(fā)布的公交查詢軟件,通過該軟件用戶不僅可以清晰地看到所查詢線路上的交通狀況,還可以知道最近一輛公交車到達(dá)這里還有幾站路。用戶可以根據(jù)這些信息選擇乘車方案從而優(yōu)化出行,提高公交效率。

3.1 模擬車輛終端和手機(jī)客戶端組成

模擬車輛終端包括“登錄界面”、“選擇線路”、“站點(diǎn)選擇”、“狀態(tài)發(fā)布”4個功能模塊。

手機(jī)客戶端包括“登錄界面”、 “線路和站點(diǎn)選擇”、“線路狀態(tài)發(fā)布”、“地圖顯示”4個功能模塊。

3.2 模擬車輛終端和手機(jī)客戶端運(yùn)行流程圖

模擬車輛終端和手機(jī)客戶端運(yùn)行流程圖分別如圖4和圖5所示。

用戶在使用模擬車輛終端向服務(wù)器上傳車輛信息時,先通過“選路選擇”和“選擇站點(diǎn)”選定車輛所在位置,然后選擇車輛運(yùn)行方向和當(dāng)前的交通狀況,點(diǎn)擊“發(fā)布”按鈕即可。

使用手機(jī)客戶端向服務(wù)器查詢車輛信息時,輸入要查詢公交車的線路、自己當(dāng)前所在站點(diǎn)和目的地點(diǎn)信息,點(diǎn)擊“查詢”。手機(jī)客戶端接收服務(wù)器返回的數(shù)據(jù)后,在“地圖顯示”和“線路狀態(tài)顯示”頁面上顯示查詢的線路以及下輛公交車還有幾站到達(dá),兩個界面之間可以通過滑屏操作進(jìn)行切換。

3.3 模擬車輛終端和手機(jī)客戶端運(yùn)行效果圖

3.3.1 模擬車輛終端運(yùn)行效果圖

如圖6所示,子圖 (a)為模擬車輛終端“登錄界面”運(yùn)行效果圖;子圖 (b)為模擬車輛終端“線路選擇”功能運(yùn)行效果圖;子圖 (c)為模擬車輛終端“站點(diǎn)選擇”功能運(yùn)行效果圖;子圖 (d)為模擬車輛終端“狀態(tài)發(fā)布”功能運(yùn)行效果圖。

3.3.2 手機(jī)客戶端運(yùn)行效果圖

如圖7所示,子圖 (a)為手機(jī)客戶端“登錄界面”運(yùn)行效果圖;子圖 (b)為手機(jī)客戶端“線路和站點(diǎn)選擇”功能運(yùn)行效果圖;子圖 (c)為手機(jī)客戶端“地圖顯示”功能運(yùn)行效果圖;子圖 (d)為手機(jī)客戶端“線路狀態(tài)顯示”功能運(yùn)行效果圖。

圖6 模擬車輛終端運(yùn)行效果圖

圖7 手機(jī)客戶端運(yùn)行效果圖

4 結(jié)語

未來的交通必將向著智能化和方便人們生活的方向發(fā)展,優(yōu)化的公交管理系統(tǒng)和便攜實(shí)用的交通查詢軟件成為交通水平提高的必然需求[9]。

交通管理系統(tǒng)也將會向高度智能化的方向發(fā)展,形成一個車輛、乘客和服務(wù)中心交互網(wǎng)絡(luò)[10]。屆時每輛公交車也將參與提供實(shí)時路況信息,乘客不僅能在客戶端查詢線路,還能獲取到每條線路上更多的動態(tài)信息,從而將交通的諸多要素聯(lián)動起來,優(yōu)化乘客出行,提高公交效率,具有一定的推廣價值。

本文中設(shè)計的系統(tǒng)可以作為公交車輛、服務(wù)中心、用戶終端交互系統(tǒng)的雛形。如果能進(jìn)一步研究和發(fā)展,結(jié)合現(xiàn)階段先進(jìn)的公交管理技術(shù),必將會使現(xiàn)在的公交管理水平達(dá)到一個新的更高的水平[11]。

猜你喜歡
數(shù)據(jù)表站點(diǎn)客戶端
基于VBA 的教務(wù)數(shù)據(jù)平臺研究
你的手機(jī)安裝了多少個客戶端
“人民網(wǎng)+客戶端”推出數(shù)據(jù)新聞
——穩(wěn)就業(yè)、惠民生,“數(shù)”讀十年成績單
湖北省新冠肺炎疫情數(shù)據(jù)表(2.26-3.25)
湖北省新冠肺炎疫情數(shù)據(jù)表
湖北省新冠肺炎疫情數(shù)據(jù)表
基于Web站點(diǎn)的SQL注入分析與防范
積極開展遠(yuǎn)程教育示范站點(diǎn)評比活動
怕被人認(rèn)出
媒體客戶端的發(fā)展策略與推廣模式
新和县| 民乐县| 抚顺县| 四子王旗| 屯留县| 那曲县| 邹城市| 赣州市| 正蓝旗| 柳江县| 两当县| 牙克石市| 高州市| 墨竹工卡县| 海淀区| 凤阳县| 南部县| 贵定县| 板桥市| 马边| 墨玉县| 铁岭县| 枣强县| 交口县| 尖扎县| 汕尾市| 中山市| 鹰潭市| 库伦旗| 八宿县| 宿松县| 湘西| 政和县| 城市| 莱州市| 湟源县| 湖口县| 卫辉市| 徐闻县| 南京市| 东丰县|