畢業(yè)論文----基于android系統(tǒng)的公交信息查詢系統(tǒng)_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  基于Android系統(tǒng)的公交信息查詢系統(tǒng)</p><p>  摘 要:由于手機價格低廉,使用方便,它已成為人們獲得在生活工作上等各種信息服務(wù)的最佳選擇。借助于無線互聯(lián)網(wǎng),基于手機的公交查詢系統(tǒng)能為客戶隨時隨地提供公交信息。</p><p>  目前也已經(jīng)有了不少公交車查詢系統(tǒng),但是這些系統(tǒng)多少都存在一些問題,如數(shù)據(jù)更新較慢、不準(zhǔn)確等。本文在研究分析總結(jié)這些問題的基礎(chǔ)

2、上,設(shè)計并實現(xiàn)了基于手機的公交信息查詢系統(tǒng)。系統(tǒng)運行于Android平臺,地圖部分使用谷歌地圖,主要采用Java語言編寫,數(shù)據(jù)庫采用SQLITE,以Tomcat作為服務(wù)器。實現(xiàn)了定位當(dāng)前位置、查找位置并在地圖中顯示、車次查詢、站點查詢、站站查詢、換乘查詢等功能。該公交查詢系統(tǒng)不僅實現(xiàn)了查詢結(jié)果的文本顯示,而且實現(xiàn)了文本和電子地圖的同時顯示,使系統(tǒng)更直觀,更方便用戶的查詢。</p><p>  關(guān)鍵詞:公交查詢;A

3、ndroid平臺;SQLITE;谷歌地圖</p><p><b>  一、前言</b></p><p>  1、問題的提出及研究意義</p><p>  城市公共交通以其覆蓋面廣、經(jīng)濟快捷的特點,目前仍然是絕大多數(shù)出行者的首選方式,也是各地城市政府大力發(fā)展的一種交通方式。針對目前的實際情況,大力發(fā)展城市公共交通,鼓勵并吸引市民選擇乘坐公交出行,

4、將會大大減弱交通壓力,從極大程度上改善交通狀況。</p><p>  改善城市的公共交通,為市民出行創(chuàng)造良好的環(huán)境,其中很重要的途徑之一便是提高公交的服務(wù)水平。通過給乘客提供高質(zhì)量的服務(wù),來吸引市民選擇乘坐公交出行。影響城市公交服務(wù)水平的因素主要有四個:方便性、迅捷性、經(jīng)濟性、舒適性。改善公交服務(wù),就必須從這四個方面綜合考慮。一般情況下,各城市采取的措施有:</p><p> ?。?)合理

5、布設(shè)公交線路網(wǎng)。對新建的的線路和站點,認(rèn)真考慮公交線網(wǎng)密度的高低、換乘系數(shù)的大小、發(fā)車頻率的高低和乘客的出行需求容量,合理布局,以方便乘客出行。</p><p>  (2)改善公共交通設(shè)施。建立電子站牌,加載GPS定位裝置,為乘客提供更多更便捷的服務(wù)。改善公交車內(nèi)環(huán)境和設(shè)施,增設(shè)和改進(jìn)車輛的專用服務(wù)設(shè)施,使之更貼近于需要幫助的弱勢群體,以提高公交出行的舒適性。</p><p> ?。?)提

6、高公交車速。設(shè)置專用的公交車道,配置良好的公交車型,以提高公交車運行速度,從而使公交出行迅猛快捷。</p><p> ?。?)建設(shè)智能公交系統(tǒng)。利用當(dāng)代高新技術(shù):電子、信息、通信、計算機、GPS、GIS等,將交通系統(tǒng)中的人(交通參與者:乘客和管理者)、交通設(shè)施(道路等)和交通工具(車輛等)有機聯(lián)系起來,建立智能公交系統(tǒng),如公交優(yōu)先系統(tǒng)、公交查詢系統(tǒng)、智能化行車系統(tǒng)等,為乘客提供實時的更多更全面的出行信息,更好的為

7、乘客服務(wù)[1]。</p><p>  對于一個城市來說,公交線路網(wǎng)一般不會隨便更改和新建,而改進(jìn)公交設(shè)施因為需要投入很大的物力和財力,對于城市建設(shè)來說并不一定可行。另外,為了安全起見,城市內(nèi)的公交車速都有限制,因此,改善公交服務(wù)水平,吸引市民或游客乘坐公交車出行,還必須更多關(guān)注于智能公交系統(tǒng)的建設(shè)。</p><p>  在智能公交系統(tǒng)中,公交查詢系統(tǒng)的服務(wù)是目前最貼近乘客日常生活的,也是最

8、能讓乘客親身體會公交服務(wù)水平高低的方面。因此,如何給乘客提供一個良好的平臺,讓乘客選擇或是推薦合適的乘車方案出行,以節(jié)約乘車時間,縮短到達(dá)目的地的乘坐距離,減少乘坐的票款成本,才是提高公交服務(wù)水平最值得關(guān)注的問題之一[2]。</p><p>  越來越多的人傾向通過上網(wǎng)獲得和共享信息,隨著網(wǎng)絡(luò)應(yīng)用的普及而不斷的發(fā)展,Internet的應(yīng)用成了世人關(guān)注的焦點[3]。公交查詢系統(tǒng)不僅要能為乘客提供全面的公交信息,還要

9、考慮面向大眾、實時性和豐富性。為此我們提出了設(shè)計并開發(fā)一個基于Android平臺的公交查詢系統(tǒng)。</p><p>  城市公交信息的查詢應(yīng)該是基于城市中現(xiàn)有公交線網(wǎng)的資源,為乘客盡量提供全面的出行路線和站點信息。其中最重要的一項就是針對乘客不同的出行需求,給出合理而又有建設(shè)性的乘車信息和出行意見。</p><p><b>  2、課題研究現(xiàn)狀</b></p>

10、;<p>  2.1 國外研究現(xiàn)狀</p><p>  美國十分重視公交查詢的研究和應(yīng)用,其中一個重要的目的就是通過提供及時準(zhǔn)確的信息和服務(wù),吸引更多的出行者使用公共交通,從而促進(jìn)公交發(fā)展。他們發(fā)展公交查詢的特點是:</p><p> ?。?)提供快捷、方便的電話咨詢服務(wù)。</p><p> ?。?)與定位技術(shù)結(jié)合,提供實時信息服務(wù)。</p>

11、;<p> ?。?)觸摸屏在公共場所廣泛使用。</p><p> ?。?)查詢與網(wǎng)絡(luò)結(jié)合。</p><p>  針對日本的交通擁擠等問題,東京都交通局開發(fā)了城市公共交通綜合運輸控制系統(tǒng)。旨在改進(jìn)公共交通服務(wù),重新贏得乘客。日本對城市公交網(wǎng)絡(luò)的建設(shè)也十分重視,利用智能交通系統(tǒng)實現(xiàn)了綜合管理,大大改善了交通狀況?,F(xiàn)在,許多地方的城市交通查詢系統(tǒng)還借助了全球定位和地理信息系統(tǒng),為車

12、輛提供全天置、速度和信息管理等服務(wù)[4]。</p><p>  歐洲一些國家,如英國、意大利、芬蘭,近年來研究取了得較好的效果。通過改善包括信息服務(wù)在內(nèi)的公交服務(wù),從而對解決城市交通問題,取得了明顯的社會經(jīng)濟效益[5]。</p><p>  2.2 國內(nèi)研究現(xiàn)狀</p><p>  與歐美國家相比,我國的公共交通事業(yè)發(fā)展還比較落后。公交智能化水平還較低,絕大部分是沿

13、襲舊的運營體制。目前我國的城市公交查詢系統(tǒng)的發(fā)展還處于一個相對落后的水平,廣大乘客可以獲得信息的方式很少,公交線路和站點信息的完整性和準(zhǔn)確性得不到保證,我國公交信息查詢的現(xiàn)狀特點如下:</p><p> ?。?)乘客可以獲得的公交信息很少,而且方式主要是常規(guī)手段。我國乘客一般獲得公交信息的方式局限于電話、交通圖、向熟人問訊等常規(guī)方式。乘客可以獲得的公交信息很少,除去線路、站點等基本信息以外,車輛運行過程中的時空信

14、息基本上沒有。</p><p> ?。?)乘客出行獲得信息困難。</p><p>  (3)公交查詢網(wǎng)站訪問量差距較大且普遍不高。</p><p>  (4)我國公交查詢系統(tǒng)還處于初步階段,查詢信息單一且缺乏合理性?,F(xiàn)在網(wǎng)上許多的公交查詢網(wǎng)站,絕大部分都只有站點、線路,以及換乘查詢,有的還有電子地圖查詢等功能,但是對于城市中的一些比較有代表性的標(biāo)志性地點介紹和查詢等

15、功能,做的比較好的很少。</p><p> ?。?)查詢方式單一,使用效率低,沒有充分利用各種通信資源。目前的公交查詢系統(tǒng)大多數(shù)只能通過web方式查詢,但人們對公交信息的需求往往是即時的、突發(fā)的,出行人不大可能在公交站牌附近為了找公交信息去網(wǎng)吧上網(wǎng)。</p><p>  2.3 基于手機的公交查詢系統(tǒng)研究現(xiàn)狀</p><p>  手機憑借小巧可人的身材、N合一的功能

16、特色,成為數(shù)碼時代人們?nèi)粘I钪胁豢苫蛉钡囊徊糠?。目前大多?shù)基于手機的公交查詢系統(tǒng)都是采用短消息的形式,雖然基于短消息的查詢不受空間約束,但可能受到運營商的一些約束:硬件方面,如果遇到服務(wù)器、網(wǎng)絡(luò)繁忙時段或信號盲區(qū),導(dǎo)致用戶請求長時間得不到響應(yīng);軟件方面,運營商不一定提供了此類的查詢服務(wù),還有服務(wù)受到限制(如欠費停機、限定漫游等,此時根本無法使用這些服務(wù))。另外,短信方式查詢還缺乏互動性,一些與用戶必要的交流難以實現(xiàn)。資費始終是消費者首

17、要關(guān)心的問題之一。雖然基于短消息的公交查詢也方便靈活,但是每次使用都會產(chǎn)生一定費用[6]。</p><p><b>  3、本文組織結(jié)構(gòu)</b></p><p>  第二部分為關(guān)鍵技術(shù),主要介紹本題目所設(shè)計的所有關(guān)鍵技術(shù)和算法,第三部分到第六部分詳細(xì)介紹軟件生命周期各個階段的具體工作,第七部分對整個畢業(yè)設(shè)計進(jìn)行了總結(jié),最后部分為致謝。</p><p

18、><b>  4、本章小結(jié)</b></p><p>  本章主要設(shè)計題目的研究目的、意義以及現(xiàn)狀,相當(dāng)于軟件工程的問題定義和可行性研究部分,對于整個系統(tǒng)的開發(fā)有著重要的意義,相當(dāng)于進(jìn)行了一次簡單的系統(tǒng)開發(fā)。</p><p><b>  二、關(guān)鍵技術(shù)</b></p><p>  1、Android平臺相關(guān)內(nèi)容介紹<

19、;/p><p>  1.1 Android操作系統(tǒng)簡介</p><p>  Android一詞的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。</p><p>  Android是基于Linux內(nèi)核的操作系

20、統(tǒng),早期由Google開發(fā),后由開放手機聯(lián)盟開發(fā)。它采用了軟件堆層的架構(gòu),主要分為三部分。底層以Linux內(nèi)核工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。另外,為了推廣此技術(shù),Google和其它幾十個手機公司建立了開放手機聯(lián)盟。Android在未公開之前常被傳聞為GPhone。目前最新版本為Android2.2。2010年谷歌開發(fā)者大會上,Android2.2發(fā)布,名稱為Froyo,意為

21、凍酸奶。</p><p>  1.2 Android架構(gòu)</p><p>  圖2-1顯示的是Android操作系統(tǒng)的主要組件,每一部分將會在下面具體描述。</p><p>  Android同一個核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是用Java編寫的。 </p>

22、;<p>  Android 應(yīng)用程序框架 開發(fā)者也完全可以訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序架構(gòu)用來簡化組件軟件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。該應(yīng)用程序重用機制使得組件可以被用戶替換。 </p><p>  圖2-1 Android 系統(tǒng)架構(gòu)圖</p><p>  

23、以下所有的應(yīng)用程序都由一系列的服務(wù)和系統(tǒng)組成,包括: </p><p>  (1)一個可擴展的視圖(Views)可以用來建應(yīng)用程序,包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons),甚至包括一個可嵌入的web瀏覽器。</p><p>  (2)內(nèi)容管理器(Content Providers)使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人

24、數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)。 </p><p> ?。?)一個資源管理器(Resource Manager)提供非代碼資源的訪問,如本地字符串,圖形,和分層文件(layout files)。 </p><p> ?。?)一個通知管理器(Notification Manager)使得應(yīng)用程序可以在狀態(tài)欄中顯示客戶通知信息。 </p><p>  (5)一個活動類

25、管理器(Activity Manager)用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。 </p><p>  Android程序庫 - Android 包括一個被Android系統(tǒng)中各種不同組</p><p>  件所使用的C/C++庫集。該庫通過Android應(yīng)用程序框架為開發(fā)者提供 </p><p>  服務(wù)。以下是一些主要的核心庫: </p>

26、<p>  系統(tǒng)C庫 - 一個從 BSD 繼承來的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)(libc),專門為基于embedded linux的設(shè)備定制。</p><p>  媒體庫 - 基于PacketVideo OpenCORE;該庫支持錄放,并且可以錄制許多流行的音頻視頻格式,還有靜態(tài)印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 </p><p>  

27、Surface Manager - 對顯示子系統(tǒng)的管理,并且為多個應(yīng)用程序提供2D和3D圖層的無縫融合。 </p><p>  LibWebCore - 一個最新的web瀏覽器引擎用來支持Android瀏覽器和一個可嵌入的web視圖。 </p><p>  SGL - 一個內(nèi)置的2D圖形引擎3D libraries - 基于OpenGL ES 1.0 APIs實現(xiàn);該庫可以使用硬件3D加速

28、(如果可用)或者使用高度優(yōu)化的3D軟加速。 </p><p>  FreeType - 位圖(bitmap)和向量(vector)字體顯示。 </p><p>  SQLite - 一個對于所有應(yīng)用程序可用,功能強勁的輕型關(guān)系型數(shù)據(jù)庫引擎。</p><p>  Android運行庫 </p><p>  Android包括了一個核心庫,該核心

29、庫提供了Java編程語言核心庫的大多數(shù)功能。 </p><p>  每一個Android應(yīng)用程序都在它自己的進(jìn)程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik是針對于同時高效地運行多個VMs來實現(xiàn)的。Dalvik虛擬機執(zhí)行.dex的Dalvik可執(zhí)行文件,該格式文件針對最小內(nèi)存使用做了優(yōu)化。該虛擬機是基于寄存器的,所有的類都經(jīng)由Java匯編器編譯,然后通過SDK中的dx工具轉(zhuǎn)化成.dex格式由虛擬機

30、執(zhí)行。 </p><p>  Dalvik虛擬機依賴于linux的一些功能,比如線程機制和底層內(nèi)存管理機制。</p><p><b>  Linux內(nèi)核</b></p><p>  Android的核心系統(tǒng)服務(wù)依賴于Linux 2.6內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。Linux內(nèi)核也同時作為硬件和軟件堆棧之間的硬件抽象層

31、[7]。</p><p>  2、Tomcat技術(shù)</p><p>  Tomcat 是一個小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用。 它的特點是Apache 為HTML頁面服務(wù),而Tomcat 實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和J

32、SP容器,獨立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。 </p><p><b>  3、HTTP協(xié)議</b></p><p>  HTTP是建立在TCP網(wǎng)絡(luò)協(xié)議基礎(chǔ)上的用于WWW數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)協(xié)議。通過HTTP協(xié)議搜索引擎與WWW服務(wù)器建立通信機制。向服務(wù)器提出對網(wǎng)頁各種特征提取的請求,并從服務(wù)器

33、的應(yīng)答中獲得相應(yīng)數(shù)據(jù)。</p><p>  4、系統(tǒng)實現(xiàn)工具及運行環(huán)境 </p><p>  開發(fā)工具是:Eclipse ,Android SDK,ADT。</p><p>  軟件運行環(huán)境:操作系統(tǒng):Android。</p><p><b>  5、本章小結(jié)</b></p><p>  本章

34、主要介紹了系統(tǒng)所采用的關(guān)鍵技術(shù),這些關(guān)鍵技術(shù)是構(gòu)成系統(tǒng)的主要技術(shù)因素,并為系統(tǒng)的構(gòu)造提供了理論依據(jù)。</p><p><b>  三、系統(tǒng)需求</b></p><p><b>  1、用戶需求</b></p><p>  越來越復(fù)雜的公交網(wǎng)絡(luò)使得人們經(jīng)常非常的困惑,為了解決這些問題,在Android這個平臺上,設(shè)計開發(fā)一個

35、公交信息查詢系統(tǒng)。</p><p>  系統(tǒng)應(yīng)該具有以下功能:</p><p> ?。?)實現(xiàn)地圖的顯示,并且能夠?qū)Φ貓D進(jìn)行拖動、放大、縮小。</p><p> ?。?)能夠定位手機用戶當(dāng)前的位置,并且能夠在地圖中用紅色的圓圈將這個位置標(biāo)注出來。</p><p> ?。?)能夠查找到手機用戶指定的位置,并且能夠在地圖中標(biāo)注出來;當(dāng)用戶設(shè)定了當(dāng)

36、前城市以后,能夠直接顯示當(dāng)前城市的地圖,這樣用戶需要查看經(jīng)常用到的當(dāng)前城市地圖時就不需要再查找整個地圖,既能節(jié)約時間,又能為用戶節(jié)約網(wǎng)絡(luò)流量。</p><p> ?。?)用戶應(yīng)該能夠從服務(wù)器中下載公交數(shù)據(jù),當(dāng)公交信息需要更新時,應(yīng)該由管理員在服務(wù)器端進(jìn)行更改,手機用戶只需要下載新數(shù)據(jù)即可;數(shù)據(jù)庫應(yīng)該直接存放在手機中,這樣就不必每次都登錄服務(wù)器,從而提高查詢速度。</p><p> ?。?)

37、系統(tǒng)應(yīng)該可以進(jìn)行車次查詢,為用戶提供某一路公交車的信息包括公交車名、起始時間、通車路線等。并且應(yīng)該能在地圖中畫出通車路線。</p><p> ?。?)系統(tǒng)應(yīng)該能夠進(jìn)行站點查詢,顯示出經(jīng)過某個站點的所有公交車信息。</p><p>  (7)系統(tǒng)應(yīng)該能查詢到在兩個站點之間通車的所有公交車。</p><p> ?。?)可以進(jìn)行換乘查詢,當(dāng)兩個地點之間沒有直達(dá)車時,給出換

38、乘方案。</p><p>  用戶界面上盡量友好,讓用戶能夠方便的操作得到想要的查詢結(jié)果。用戶可以自己選擇下載所需城市的公交數(shù)據(jù),自己控制地圖的大小等。</p><p>  2、 系統(tǒng)設(shè)計的原則</p><p><b>  (1)實用性原則</b></p><p>  實用性原則主要體現(xiàn)的是所設(shè)計的系統(tǒng)能夠解決實際問題,

39、是所有應(yīng)用系統(tǒng)設(shè)計最基本的最主要的原則,直接關(guān)系到系統(tǒng)成敗[8]?;谑謾C的公交信息查詢系統(tǒng)可以隨時隨地為人們解決出行時的公交選擇問題,使用戶方便的獲取到真正想要獲得的信息。</p><p><b> ?。?)可靠性原則</b></p><p>  可靠性是系統(tǒng)設(shè)計的立足點,若設(shè)計的系統(tǒng)故障頻繁,就不能夠滿足用戶的要求[9]。設(shè)計的公交查詢系統(tǒng)應(yīng)該從以下幾個方面提高其

40、可靠性:故障發(fā)生時應(yīng)給出提示,提示用戶應(yīng)該如何操作來排除故障;通過測試檢測系統(tǒng)漏洞,完善系統(tǒng)等。</p><p>  (3)易于更新和維護(hù)</p><p>  系統(tǒng)的設(shè)計,能夠?qū)崿F(xiàn)有關(guān)空間數(shù)據(jù)和屬性數(shù)據(jù)的實時更新和維護(hù)[10]。在系統(tǒng)維護(hù)時只須在服務(wù)器上維護(hù)即可,數(shù)據(jù)的更新和維護(hù)要簡單可行。</p><p><b> ?。?)操作簡便</b>&

41、lt;/p><p>  操作簡單是軟件設(shè)計過程中需要重視的問題,應(yīng)精心設(shè)計用戶接口、使系統(tǒng)用戶界面友好,便于用戶理解。具體表現(xiàn)在:</p><p> ?、?用戶輸入信息時,系統(tǒng)會給出提示信息,例如:在車次查詢時,需要用戶輸入要查詢的車次,在用戶輸入的編輯框中先填入例子“1路”。</p><p> ?、?界面簡潔明了,容易操作。</p><p> 

42、?、?數(shù)據(jù)的顯示和提示信息要簡單明了。</p><p>  ④ 當(dāng)用戶輸入信息有誤時,有信息提示;當(dāng)沒有查到滿足條件的結(jié)果時會彈出對話框進(jìn)行提示[11]。</p><p><b>  3、 本章小結(jié)</b></p><p>  本章描述了公交信息查詢系統(tǒng)的基本用戶需求比如用戶界面等,同時介紹了本軟件的設(shè)計原則以及運行環(huán)境。</p>

43、<p><b>  第4章 概要設(shè)計</b></p><p><b>  1、系統(tǒng)體系結(jié)構(gòu)</b></p><p>  該系統(tǒng)的體系結(jié)構(gòu)如圖4-1所示。</p><p>  圖4-1 系統(tǒng)體系結(jié)構(gòu)</p><p><b>  2、模塊設(shè)計</b></p&g

44、t;<p>  2.1 程序模塊劃分</p><p>  程序模塊劃分如圖4-2所示。</p><p>  2.2 程序模塊功能描述</p><p><b> ?。?)地圖顯示模塊</b></p><p>  該模塊的功能就是實現(xiàn)地圖的顯示,并且能夠?qū)Φ貓D進(jìn)行拖動、放大、縮小。當(dāng)用戶點擊主界面上列表中需要顯

45、示地圖的Item時,顯示谷歌地圖,單擊地圖界面后能夠浮現(xiàn)出放大、縮小按鈕,每次單擊放大(縮?。┌粹o都能夠?qū)⒌貓D放大(縮?。┮粋€級別,谷歌地圖的大小共有24個級別,放大級別越高地圖顯示結(jié)果越詳細(xì)。按住鼠標(biāo)左鍵不放就可以拖動地圖。</p><p>  (2)GPS定位模塊</p><p>  本模塊利用系統(tǒng)中的GPS服務(wù)實現(xiàn)定位。但是由于模擬器中沒有GPS模塊,所以需要通過DDMS虛擬坐標(biāo),模

46、擬衛(wèi)星獲得當(dāng)前位置并發(fā)送給手機的過程。獲得location以后就可以在地圖中找到這個位置,并將地圖更新,使這個location位于地圖中央,并用紅色的圓圈標(biāo)識出來。</p><p><b> ?。?)查找定位模塊</b></p><p>  本模塊實現(xiàn)的功能是在地圖中查找用戶要查找的地點,并在地圖中用紅色圓圈表示。這個模塊從編輯框中捕獲用戶要查找的地點名以后根據(jù)這個地

47、名字符串在地圖中查找最相近的location,找到之后更新地圖到相應(yīng)的GEOPOINT。</p><p>  圖4-2 程序模塊劃分圖</p><p><b> ?。?)公交查詢模塊</b></p><p>  公交查詢模塊的主要功能分為3個:車次查詢,站點查詢,站站查詢。</p><p>  車次查詢是從數(shù)據(jù)庫中查詢

48、某一路公交車的信息,包括起始時間,公交路線等,并且可以在地圖中畫出這路公交車的通車路線;站點查詢可以獲得經(jīng)過某個站點的所有公交車,查詢結(jié)果以列表的形式顯示,單擊一項會顯示該路公交車的詳細(xì)信息;站站查詢與站點查詢類似,是獲取在兩個站點之間通車的公交車次。</p><p><b>  (5)公交換乘模塊</b></p><p>  公交換乘模塊的功能是:用戶給出起點和終點

49、,選定方式(開車、乘坐公交車、步行)后,系統(tǒng)查詢行車路線,并以列表列出,最終采取哪條路線由用戶單擊選擇查看詳細(xì)信息。該模塊是利用系統(tǒng)提供的路徑規(guī)劃模塊實現(xiàn)。</p><p> ?。?)公交數(shù)據(jù)下載模塊</p><p>  本模塊通過HTTP協(xié)議,與WEB服務(wù)器進(jìn)行連接,并下載公交數(shù)據(jù)。手機上通過http協(xié)議來獲取網(wǎng)頁一般會有500ms的延遲,網(wǎng)頁請求過程是手機客戶端訪問網(wǎng)頁的最大瓶頸所在。

50、該模塊通過指定URL連接到TOMCAT服務(wù)器,從web服務(wù)器上獲得所選城市對應(yīng)的公交數(shù)據(jù)以流的方式下載到手機的sdcard上,為了減少處理速度,采用下載與存入數(shù)據(jù)庫并行的方式。在該模塊中將獲得的公交數(shù)據(jù)分成公交車名、起始時間、公交路線三段后按照字段存入SQLITE數(shù)據(jù)庫中。</p><p><b>  (7)數(shù)據(jù)更新模塊</b></p><p>  本模塊實現(xiàn)管理員對

51、于公交數(shù)據(jù)的管理更新。公交數(shù)據(jù)是存放在服務(wù)器上的,所以當(dāng)公交數(shù)據(jù)需要更新時,管理員在服務(wù)器端更新文件,手機用戶只需要從服務(wù)器重新獲取新數(shù)據(jù)即可。</p><p><b> ?。?)地圖圖層模塊</b></p><p>  該模塊主要功能:在谷歌地圖上增加圖層。例如:在地圖上畫出某一路公交車的行車路線,在地圖上用紅色圓圈標(biāo)識要查找的地點等。</p><

52、;p>  3、功能-模塊對照表</p><p>  功能-模塊對照表如表4-1所示。</p><p><b>  4、本章小結(jié)</b></p><p>  本章描述了系統(tǒng)的體系結(jié)構(gòu),詳細(xì)描述了系統(tǒng)的具體模塊劃分和模塊的層次機構(gòu),并詳細(xì)描述了各個模塊的功能,為詳細(xì)設(shè)計做好了鋪墊。</p><p>  表4-1 功能模

53、塊對照表</p><p><b>  五、詳細(xì)設(shè)計</b></p><p>  1、地圖相關(guān)功能模塊</p><p>  1.1 地圖顯示模塊</p><p><b> ?。?)模塊描述</b></p><p>  該模塊主要功能:顯示google地圖,并且能夠?qū)Φ貓D進(jìn)行拖動

54、、放大、縮小。</p><p><b>  主要變量:</b></p><p>  Private MapView mapview:MapView對象。</p><p><b>  主要函數(shù):</b></p><p> ?、?setContentView(int layoutResID) 功能:為

55、界面設(shè)置布局,其中參數(shù)layoutResID是布局文件。</p><p> ?、?setBuiltInZoomControls(Boolean bool) 功能:參數(shù)設(shè)置為true時,地圖可以控制,即可以進(jìn)行拖動、放大、縮小。</p><p><b> ?。?)具體實現(xiàn)</b></p><p>  Android系統(tǒng)集成了GoogleMap功

56、能,要在自己的系統(tǒng)中使用谷歌地圖首先要申請apikey,獲得apikey以后在清單文件AndroidManifest.xml里添加“<uses-library Android:name="com.google.Android.maps" />”另外,還需要添加3個權(quán)限ACCESS_FINE_LOCATION,ACCESS_COARSE_LOCATION和INTERNET并且要在使用GoogleMap的la

57、yout中手動添加控件,最后就是繼承MapActivity,而不是單純的Activity 。</p><p><b>  (3)源文件說明</b></p><p>  用到地圖顯示的模塊有三個:</p><p> ?、?map_browse.java:實現(xiàn)地圖瀏覽功能。</p><p>  ② gpsLocation.j

58、ava:實現(xiàn)GPS定位的類。</p><p> ?、?searchLocation.java:在地圖中查找指定位置的類。</p><p> ?、?showCurrentCity.java: 顯示當(dāng)前城市的類。</p><p>  1.2 GPS定位模塊</p><p><b> ?。?)模塊描述</b></p>

59、;<p>  主要功能:利用GPS服務(wù)定位用戶當(dāng)前位置。</p><p><b>  主要變量和方法是:</b></p><p><b>  主要變量:</b></p><p> ?、?private LocationManager mLocationManager01:獲取系統(tǒng)中位置服務(wù)的變量。</p

60、><p> ?、?private MapView mMapView01:地圖視圖對象。</p><p> ?、?private GeoPoint currentGeoPoint:當(dāng)前位置的GeoPoint,由經(jīng)緯度構(gòu)成。</p><p><b>  方法:</b></p><p> ?、?private GeoPoint g

61、etGeoByLocation(Location location):傳入?yún)?shù)Location,將這個location轉(zhuǎn)換成GeoPoint。</p><p> ?、?public void refreshMapViewByGeoPoint(GeoPoint gp, MapView mv, int zoomLevel, Boolean bIfSatellite):更新地圖mv到gp點,將地圖移至以gp為中心的位置

62、,zoomLevel是地圖的放大級別,最后一個變量表示是否顯示衛(wèi)星圖。</p><p> ?、?private viod processLocationUpdated(Location location):當(dāng)手機收到位置更改,將location傳入GeoPoint及MapView,同時更新地圖到新的位置。</p><p><b>  (2)具體實現(xiàn)</b></p

63、><p>  主要的實現(xiàn)方法有:通getSystemService(Context.LOCATION_SERVICE)開啟系統(tǒng)的GPS服務(wù),通過getLocationProvider (LocationManager lm)獲取到符合條件的位置,之后將獲取到得location轉(zhuǎn)化成經(jīng)緯度格式的GeoPoint,然后調(diào)用refreshMapViewByGeoPoint(GeoPoint gp, MapView mv,

64、int zoomLevel, Boolean bIfSatellite)更新地圖到這個gp點。</p><p><b>  (3)文件說明</b></p><p>  gpsLocation.java:實現(xiàn)GPS定位的類。</p><p><b> ?。?)流程邏輯</b></p><p>  圖5

65、-1 GPS定位模塊流程邏輯</p><p>  1.3 查找定位模塊</p><p><b> ?。?)模塊描述</b></p><p>  主要功能:在地圖中查找用戶要查詢的位置,并用紅色圓圈標(biāo)注出來。</p><p>  主要變量以及方法如下:</p><p><b>  主要變

66、量:</b></p><p> ?、?private MapView mMapView01:地圖視圖對象。</p><p> ?、?MapController mMapController01:控制地圖大小以及是否可以拖動的變量。</p><p><b>  主要方法:</b></p><p> ?、?set

67、OnClickListener(new Button.OnClickListener( )):對查詢按鈕單擊時間的監(jiān)聽,當(dāng)用戶單擊查詢時進(jìn)行響應(yīng)。</p><p> ?、?private GeoPoint getGeoByAddress(String strSearchAddress):以要查詢的地址名為參數(shù),通過地址名在地圖中查找這個地址的GeoPoint。</p><p><b&

68、gt; ?。?)具體實現(xiàn)</b></p><p>  系統(tǒng)界面中用了三個控件:EditText,Button,MapView。用戶在EditText中輸入要查詢的地點名稱,單擊查詢按鈕以后調(diào)用getGeoByAddress(String strSearchAddress)函數(shù)進(jìn)行查詢,將獲得的結(jié)果傳遞給refreshMapViewByGeoPoint(GeoPoint gp, MapView mv,

69、int zoomLevel, Boolean bIfSatellite) ,對顯示的地圖進(jìn)行更新,更新至查詢地點,并用紅色圓圈標(biāo)注要查詢的地點。</p><p><b> ?。?)文件說明</b></p><p>  searchLocation.java:查詢定位的Java源文件。</p><p><b>  (4)輸入項</

70、b></p><p><b>  所要地點名稱。</b></p><p><b> ?。?)輸出項</b></p><p>  將查詢到的結(jié)果在地圖中標(biāo)注出來。</p><p>  (6)處理流程如圖5-2所示。</p><p>  圖5-2 查找定位模塊處理流程<

71、;/p><p>  2、公交查詢功能模塊</p><p>  2.1 車次查詢模塊</p><p><b>  (1)模塊描述</b></p><p>  該模塊的主要功能是:查詢某一路車的信息,包括公交車名,通車起始時間以及通車路線。</p><p>  模塊功能實現(xiàn)類: ForBusInfo類。&

72、lt;/p><p><b>  接口中用到的變量:</b></p><p>  private String busline:保存獲取的公交車的通車路線。</p><p>  ForBusInfo類主要變量和方法如下:</p><p><b>  主要變量:</b></p><p&

73、gt; ?、?private databsehHelper events:數(shù)據(jù)庫的輔助類對象,用來對數(shù)據(jù)庫進(jìn)行操作。</p><p> ?、?SQLiteDatabase db :數(shù)據(jù)庫類的對象。</p><p> ?、?Cursor mCursor:從數(shù)據(jù)庫中查詢到得結(jié)果進(jìn)行讀取、寫入的接口,存儲查詢結(jié)果列表。</p><p><b>  主要方法:&l

74、t;/b></p><p>  public void ok ():單擊確定后響應(yīng)的函數(shù),在數(shù)據(jù)庫中查詢EditText中的車次信息,將查詢到的信息顯示在busdetailedinfo布局界面中。</p><p><b> ?。?)具體實現(xiàn)</b></p><p>  點擊確定按鈕后判斷EditText是否為空,若為空給出提示,否則在數(shù)據(jù)

75、庫中進(jìn)行查詢,關(guān)鍵代碼:</p><p>  SQLiteDatabase db = events.getReadableDatabase();</p><p>  Cursor mCursor =db.query(true, TABLE_NAME, new String[] {BUSNUM, TIME, </p><p>  BUSLINE}, " BU

76、SNUM=? ",new String[] { edit1.getText().toString()}, null, null, null,</p><p><b>  null);</b></p><p>  查詢結(jié)果為空彈出對話框進(jìn)行提示,若結(jié)果不為空就將查詢到結(jié)果顯示在busdetailedinfo布局界面中。對于這個界面中的“在地圖中顯示”按鈕進(jìn)行監(jiān)

77、聽,單擊時則將所查到結(jié)果中的busline存入Bundle中,以Intent的方式啟動drawLine這個Java類,將通車路線在地圖上畫出來。</p><p><b> ?。?)文件說明</b></p><p>  ForBusInfo.java:查詢某一路公交車的信息的類源文件。</p><p><b> ?。?)輸入項</

78、b></p><p><b>  要查詢的公交車名。</b></p><p><b>  (5)輸出項</b></p><p>  該路公交車的詳細(xì)信息,如起始時間、通車路線等。</p><p><b> ?。?)流程邏輯</b></p><p>

79、  流程邏輯如圖5-3所示。</p><p>  圖5-3 車次查詢模塊流程邏輯</p><p>  2.2 站點查詢模塊</p><p><b> ?。?)模塊描述</b></p><p>  該模塊的主要功能是:查詢經(jīng)過某個站點的所有公交車,查詢結(jié)果以列表的的形式列出,列表每一項包括公交車名,通車起始時間以及通車路線

80、。焦點移到某一項時該路公交車的通車路線以走馬燈(文字從右向左滑動顯示)的效果顯示。點擊其中一項,會顯示這一路公交車的詳細(xì)信息。</p><p>  模塊功能實現(xiàn)類: BusStopInfo,ShowStopInfo,showclick類。</p><p><b>  接口中用到的變量:</b></p><p>  Public stopname

81、:保存要查詢的站點名稱。</p><p>  BusStopInfo 類主要變量和方法如下:</p><p><b>  主要變量:</b></p><p>  Bundle bundle :將不同類型的變量映射到一個字符串,在這里將編輯框中的內(nèi)容映射到stopname中,以便與其他activity進(jìn)行通信傳遞要查詢的站點名稱。</p&g

82、t;<p>  ShowStopInfo類主要變量和方法如下:</p><p><b>  主要變量:</b></p><p>  ① private static String[] FROM = {BUSNUM,TIME, BUSLINE }:與后面的TO數(shù)組相結(jié)合,顯示查詢結(jié)果時,公交車名,起始時間,通車路線3個字段與他們的位置的映射關(guān)系。</

83、p><p> ?、?private static int[] TO = { R.id.num, R.id.time , R.id.busline}。</p><p> ?、?SimpleCursorAdapter adapter:將查詢結(jié)果按照FROM,TO的方式進(jìn)行映射,顯示在列表中。</p><p><b>  主要方法:</b></p&

84、gt;<p>  protected void onListItemClick(ListView arg0, View arg1, int arg2, long arg3):單擊列表中某一項后響應(yīng)的函數(shù),根據(jù)arg2判斷單擊的是哪一項,將這一路公交車的信息存入Bundle中,將這些參數(shù)傳遞給showclick類,在showclick類中顯示公交車的詳細(xì)信息。</p><p><b> ?。?/p>

85、2)具體實現(xiàn)</b></p><p>  點擊確定按鈕后判斷EditText是否為空,若為空給出提示,否則在數(shù)據(jù)庫中進(jìn)行查詢,關(guān)鍵代碼:</p><p>  SQLiteDatabase db = events.getReadableDatabase();</p><p>  Cursor c = db.query(TABLE_NAME, new St

86、ring[] {_ID,BUSNUM,TIME, </p><p>  BUSLINE}, "BUSLINE LIKE ? ", new String[]{"%"+stopname+"%"},null, null, null); </p><p>  查詢結(jié)果為空彈出對話框進(jìn)行提示,若結(jié)果不為空就將查詢到結(jié)果顯示在stopinfo

87、布局界面中。界面最上方的標(biāo)題設(shè)置為"經(jīng)過"+stopname+"的公交車有:"。然后對單擊事件進(jìn)行監(jiān)聽,單擊某一項以后將該項公交車信息傳遞給showclick類,在showclick類中完成公交車詳細(xì)信息的顯示。</p><p><b> ?。?)文件說明</b></p><p>  BusStopInfo.java:提示用戶輸

88、入要查詢的站點名稱的類源文件;</p><p>  ShowStopInfo.java :對BusStopInfo傳入的站點名稱進(jìn)行查詢,并將查尋結(jié)果顯示在列表中;</p><p>  Showclick.java:顯示所單擊公交車的詳細(xì)信息。</p><p><b> ?。?)輸入項</b></p><p><b

89、>  要查詢的站點名稱。</b></p><p><b> ?。?)輸出項</b></p><p>  經(jīng)過該站點的所有公交車,以及這些公交車的信息。</p><p><b> ?。?)流程邏輯</b></p><p>  流程邏輯如圖5-4所示。</p><p

90、>  2.3 站站查詢模塊</p><p><b>  (1)模塊描述</b></p><p>  該模塊的主要功能是:與站點查詢類似,查詢在兩個站點之間通車的所有公交車,查詢結(jié)果以列表的的形式列出,列表每一項包括公交車名,通車起始時間以及通車路線。焦點移到某一項時該路公交車的通車路線以走馬燈(文字從右向左滑動顯示)的效果顯示。點擊其中一項,會顯示這一路公交車的

91、詳細(xì)信息。</p><p>  模塊功能實現(xiàn)類:Stop2StopResult,Stop2Stop,showclick類。</p><p>  主要變量方法等與站點查詢類似,在這里不再贅述。</p><p>  圖5-4 站點查詢模塊流程邏輯</p><p><b> ?。?)具體實現(xiàn)</b></p>&l

92、t;p>  點擊確定按鈕后判斷兩個EditText是否都不為空,若有一個或者兩個為空給出提示,否則在數(shù)據(jù)庫中進(jìn)行查詢,關(guān)鍵代碼:</p><p>  SQLiteDatabase db = events.getReadableDatabase();</p><p>  Cursor c = db.query(TABLE_NAME, new String[] {_ID, BUSNUM,

93、 TIME, </p><p>  BUSLINE}, "BUSLINE LIKE ? OR BUSLINE LIKE ? ", new </p><p>  String[]{"%"+stopname+"%"+stopname2+"%","%"+stopname2+"%"

94、;+stopname+"</p><p>  %"},null, null, null);</p><p>  查詢結(jié)果為空彈出對話框進(jìn)行提示,若結(jié)果不為空就將查詢到結(jié)果顯示在stopinfo布局界面中。界面最上方的標(biāo)題設(shè)置為"經(jīng)過"+stopname+"和"+stopname2+"的公交車有:"。然后對單擊事

95、件進(jìn)行監(jiān)聽,單擊某一項以后將該項公交車信息傳遞給showclick類,在showclick類中完成公交車詳細(xì)信息的顯示。</p><p><b> ?。?)文件說明</b></p><p> ?、?Stop2Stop.java: 提示用戶輸入要查詢的兩個站點名稱的類源文件。</p><p> ?、?Stop2StopResult.java :對

96、Stop2Stop傳入的站點名稱進(jìn)行查詢,并將查尋結(jié)果顯示在列表中。</p><p>  ③ Showclick.java:顯示所單擊公交車的詳細(xì)信息。</p><p><b>  (4)輸入項</b></p><p>  要查詢的兩個站點名稱。</p><p><b> ?。?)輸出項</b>&l

97、t;/p><p>  在這兩個站點間通車的所有公交車,以及這些公交車的信息。</p><p><b> ?。?)流程邏輯</b></p><p>  流程邏輯如圖5-5所示。</p><p>  2.4 公交換乘模塊</p><p><b> ?。?)模塊描述</b></p

98、><p>  該模塊功能:在兩個地點之間進(jìn)行路徑規(guī)劃,可以尋找三種交通工具(自己開車、乘坐公交車、步行)的最佳的行車路線,如果兩個站點之間沒有直達(dá)的公交車,系統(tǒng)會給出可行的換乘方案。這個模塊是利用Android系統(tǒng)中內(nèi)置的路徑規(guī)劃模塊實現(xiàn)。</p><p><b> ?。?)關(guān)鍵代碼</b></p><p>  Intent intent = ne

99、w Intent(); </p><p>  intent.setAction(Android.content.Intent.ACTION_VIEW); </p><p>  /* 傳入路徑規(guī)劃所需要的地標(biāo)地址 */ </p><p>  intent.setData ( Uri.parse("http://maps.google.com/maps?f=

100、d&saddr="+ </p><p>  GeoPointToString (fromGeoPoint) +"&daddr="+GeoPointToString</p><p>  ( ToGeoPoint )+ "&hl=cn" +"") ); </p><p>  s

101、tartActivity (intent);</p><p><b> ?。?)輸入項</b></p><p>  起點、終點以及交通工具的選擇。</p><p><b>  (4)輸出項</b></p><p><b>  給出行車方案。</b></p><

102、;p>  圖5-5 站站查詢模塊流程邏輯</p><p><b> ?。?)主要方法:</b></p><p>  private String GeoPointToString(GeoPoint gp):將GeoPoint里的經(jīng)緯度以String,String返回。</p><p>  (6)換乘算法流程圖(以2次以內(nèi)為例)</p

103、><p>  換乘算法流程圖[12]如圖5-6。</p><p>  3、公交數(shù)據(jù)下載模塊</p><p><b> ?。?)模塊描述</b></p><p>  該模塊功能:點擊更新公交數(shù)據(jù)時,彈出選擇城市對話框,用戶點擊選擇后連接Tomcat服務(wù)器,下載公交數(shù)據(jù)文件,同時存入SQLITE數(shù)據(jù)庫。</p>&

104、lt;p>  模塊功能實現(xiàn)類:DownLoad,select2download,databse,databsehHelper類</p><p><b>  主要變量和方法有:</b></p><p>  圖5-6 公交換乘模塊工作流程圖</p><p><b>  變量:</b></p><p&g

105、t; ?、?DownLoad load:定義一個下載類的變量,用來下載文件。</p><p> ?、?private URL url:資源定位符。</p><p>  ③ private URLConnection uc:一個具有特定協(xié)議類型的URL交換數(shù)據(jù)通信鏈路。</p><p><b>  方法:</b></p><p

106、>  ① public void start():從服務(wù)器中下載數(shù)據(jù)然后寫入文件。</p><p> ?、?public String getFileName(String str):獲得URL對應(yīng)的文件名,在sdcard中以相同的名稱存放。</p><p>  ③ public void DevideToItem(String fileName):將原先的文本文件中的內(nèi)容切分成段,

107、將每個字段加入數(shù)據(jù)庫中。</p><p> ?、?private void addEvent(String string,String string1,String string2):向數(shù)據(jù)庫中添加一行。</p><p><b> ?。?)具體實現(xiàn)</b></p><p>  用戶點擊更新公交數(shù)據(jù)時,彈出選擇城市對話框,用戶點擊確定后連接Tom

108、cat服務(wù)器,調(diào)用DownLoad類中的函數(shù)start()開始下載公交數(shù)據(jù)文件,下載同時保存選擇的城市名,傳遞城市名給databse類,在databse類的onCreate()函數(shù)中調(diào)用DevideToItem(fileName)函數(shù),將文件中的每一輛公交車的信息切分成三段,并調(diào)用addEvent(String string,String string1, String string2)函數(shù)將這三段按照字段存入數(shù)據(jù)庫。數(shù)據(jù)庫中實體及屬性

109、如圖5-7。</p><p>  圖5-7 數(shù)據(jù)庫中公交車實體及屬性圖</p><p><b>  (3)文件說明</b></p><p>  ① DownLoad.java: 從服務(wù)器下載文件到sdcard。</p><p> ?、?select2download.java::供用戶選擇要下載公交數(shù)據(jù)的城市名。<

110、/p><p> ?、?databse.java: 數(shù)據(jù)庫操作類,將文件中的內(nèi)容分段,然后存入數(shù)據(jù)庫。</p><p>  ④ databsehHelper.java:數(shù)據(jù)庫輔助類,實現(xiàn)數(shù)據(jù)庫的建立,更新等。</p><p><b>  (4)輸入項</b></p><p>  要下載公交數(shù)據(jù)的城市名。</p>

111、<p><b> ?。?)輸出項</b></p><p>  存有該城市的公交數(shù)據(jù)的數(shù)據(jù)庫event.db。</p><p> ?。?)公交數(shù)據(jù)下載模塊流程邏輯</p><p>  流程邏輯圖如圖5-8所示。</p><p><b>  4、數(shù)據(jù)更新模塊</b></p>&l

112、t;p><b>  (1)模塊描述</b></p><p>  服務(wù)器端公交數(shù)據(jù)以文本形式存在,當(dāng)數(shù)據(jù)需要更新時管理員只需要更新新文件就可以了。</p><p><b>  5、地圖圖層模塊</b></p><p><b> ?。?)模塊描述</b></p><p>  

113、本模塊完成在地圖中添加圖層的工作,例如在地圖上畫紅色的圓圈來標(biāo)志要查找的地點,在地圖上畫公交路線等。</p><p>  這個模塊實現(xiàn)的類:OverLay,MyOverLay類,兩個類均繼承自O(shè)verlay,Overlay是Android提供的在地圖上添加圖層的基類,只要重載其中的draw函數(shù)就可以在地圖上畫出不同的標(biāo)志。</p><p>  圖5-8 公交數(shù)據(jù)下載模塊流程邏輯</

114、p><p><b> ?。?)文件說明</b></p><p>  ① OverLay.java:畫紅色圓圈來表示指定位置。</p><p>  ② MyOverLay.java:在某一路公交車的每個途經(jīng)站點畫藍(lán)色的圓圈,相鄰兩個站點之間畫藍(lán)色的線。</p><p><b>  6、本章小結(jié)</b>&l

115、t;/p><p>  本章詳細(xì)介紹了各個模塊的內(nèi)部處理流程,以及實現(xiàn)模塊的類,類中的函數(shù)以及變量。</p><p>  六、系統(tǒng)測試及運行結(jié)果分析</p><p><b>  1、 運行環(huán)境</b></p><p>  Android手機平臺。</p><p><b>  2、運行測試<

116、;/b></p><p><b>  2.1 軟件運行</b></p><p>  將.apk文件安裝,安裝步驟類似于一般的手機軟件。安裝完成后點擊如圖6-1 所示的菜單位置,就會出現(xiàn)公交信心查詢系統(tǒng)的軟件圖標(biāo)(如圖6-2)。</p><p>  圖6-1 Android系統(tǒng)啟動主界面 圖6-2 公交信息查詢系統(tǒng)的

117、軟件圖標(biāo)</p><p>  點擊圖標(biāo)就可以進(jìn)入軟件的運行界面。</p><p><b>  2.2 運行界面</b></p><p>  軟件開始運行后,首先出現(xiàn)如圖6-3的啟動畫面。向下滑動右側(cè)的滾動條就可以看到所有的功能。</p><p>  2.3 軟件操作流程</p><p>  用戶在

118、“顯示當(dāng)前城市地圖”之前首先應(yīng)該“設(shè)置當(dāng)前城市”,點擊“設(shè)置當(dāng)前城市”后界面如下圖6-4所示,否則會彈出對話框提示用戶先設(shè)置當(dāng)前城市,用戶點擊確定按鈕后直接進(jìn)入當(dāng)前城市設(shè)置頁面(以北京市為例)。</p><p>  點擊“顯示當(dāng)前城市地圖”后會出現(xiàn)一個Toast顯示設(shè)置的當(dāng)前城市,持續(xù)3秒鐘后自動消失,之后便會顯示當(dāng)前城市地圖,并以紅色圓圈標(biāo)注將當(dāng)前城市所在位置,點擊界面任意位置,會浮現(xiàn)出放大、縮小按鈕,將圖片放

119、大到合適的大小,如圖6-5所示。</p><p>  按返回鍵返回主界面,點擊“地圖瀏覽”就可以瀏覽地圖,可以對地圖進(jìn)行拖動、放大、縮小等操作。</p><p>  圖6-3 程序啟動畫面 圖6-4 設(shè)置當(dāng)前城市界面</p><p>  點擊主界面中的“查找定位”可以在地圖中查找編輯框中輸入的位置,并以紅色圓圈標(biāo)注(以黃島

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論