




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、南京曉莊學(xué)院2015屆本科畢業(yè)論文分類號:學(xué)校代碼:11460 學(xué) 號:11130815南京曉莊學(xué)院本科生畢業(yè)設(shè)計基于Android平臺和百度地圖的應(yīng)用系統(tǒng)Application system based on Android baidu map所屬院(部):數(shù)學(xué)與信息技術(shù)學(xué)院學(xué)生姓名: 指導(dǎo)教師: 研究起止日期:二一五 年 三 月 至 二一五 年 五 月【摘要】在電子信息技術(shù)的帶動下,移動操作系統(tǒng)飛速發(fā)展,在手機(jī)、平板等移動終端上的定位系統(tǒng)應(yīng)用更為普及,地圖導(dǎo)航的功能和應(yīng)用也得到不斷延伸和拓展,GPS功能在手機(jī)上的開發(fā)應(yīng)用一度成為開發(fā)的熱點(diǎn),能夠大量的減少人們尋找地點(diǎn)的時間成本,不斷滿足人們
2、快速生活節(jié)奏的客觀需求,因此終端上的地點(diǎn)定位的地圖的相關(guān)軟件的應(yīng)用能夠產(chǎn)生很大的實(shí)際效用,尤其是在手機(jī)Android系統(tǒng)上的地圖系統(tǒng)的開發(fā),比如百度地圖就是在這樣的大背景下被開發(fā)出來的。在本文中介紹了選題背景,介紹了關(guān)鍵技術(shù),對系統(tǒng)進(jìn)行了需求分析,對系統(tǒng)進(jìn)行了詳細(xì)設(shè)計,系統(tǒng)的實(shí)現(xiàn)以及系統(tǒng)中的測試,對百度地圖應(yīng)用系統(tǒng)從分析到設(shè)計再到具體實(shí)現(xiàn),有了詳細(xì)的過程。百度地圖系統(tǒng)的開發(fā)運(yùn)用了Java語言,主要針對Android和SDK系統(tǒng)的運(yùn)用進(jìn)行設(shè)計,用戶可以通過在手機(jī)系統(tǒng)中,安裝軟件APP,然后快速的實(shí)現(xiàn)搜索地址的功能,使得用戶出門更加方便,不需要擔(dān)心迷路,使得用戶對出門變得方便。關(guān)鍵詞:地圖導(dǎo)航;
3、百度地圖; Java; Android; APIAbstractWith the rapid development of mobile platforms to extend the operating system and map navigation applications, expanding GPS function on cell phones has become a hot mobile application development. In order to find a place, people often need to spend a lot of energy,
4、so along with the accelerating pace of modern life, real-time location information is becoming one of the information it is looking for. Therefore, the design and optimization map location services applications with very practical value, Baidu Maps Android-based application system thus arises.In thi
5、s paper we introduce the background, the key technologies, the system needs analysis, detailed design of the system, implementation, and system test system for Baidu map application system from analysis to design to implementation , with the detailed process.The system uses the Java language, using
6、the Android platform and SDK, use Baidu Maps API in Android system will search for Baidu map application systems and route planning have been achieved, so that the user is more convenient to go out, do not worry about getting lost, so that the user It becomes easy to go out.KeyWords:map navigation;
7、Baidu map; Java,; Android; API 目錄第1章 緒論11.1 課題背景11.2 課題意義11.3 研究現(xiàn)狀21.4 研究內(nèi)容2第2章 課題設(shè)計相關(guān)技術(shù)42.1 Java語言42.2 Android架構(gòu)42.3 Android SDK6第3章 系統(tǒng)需求分析73.1 可行性分析73.2 需求分析83.3 業(yè)務(wù)流程圖83.2 非功能性需求9第4章 百度key申請114.1 注冊百度賬號114.2 申請百度key114.3 百度密鑰應(yīng)用到程序13第5章 系統(tǒng)設(shè)計145.1系統(tǒng)功能結(jié)構(gòu)145.2權(quán)限設(shè)計145.3基本配置設(shè)計16第6章 系統(tǒng)實(shí)現(xiàn)176.1系統(tǒng)運(yùn)行環(huán)境和開發(fā)平臺1
8、76.2系統(tǒng)實(shí)現(xiàn)176.2.1 系統(tǒng)主界面176.2.2 實(shí)時路況界面216.2.3 視角界面216.2.4 搜索界面226.2.5 路線界面256.2.6 導(dǎo)航界面286.2.7 數(shù)據(jù)的緩存30第7章 系統(tǒng)測試327.1測試內(nèi)容327.2測試預(yù)期結(jié)果327.3測試用例337.4測試結(jié)果33結(jié) 論35參考文獻(xiàn)36致 謝37第1章 緒論1.1 課題背景移動互聯(lián)網(wǎng)時代的來臨,說明是一個新的時代的開始。移動通信和互聯(lián)網(wǎng)合在一起就是所謂的移動互聯(lián)網(wǎng),移動設(shè)備(手機(jī)和上網(wǎng)本)可以隨時的訪問互聯(lián)網(wǎng)的資源和查找的應(yīng)用。智能手機(jī)是互聯(lián)網(wǎng)時代有目的有標(biāo)志的客戶端工具,它就像一臺“小電腦”,有自己的獨(dú)立的操作系統(tǒng)
9、,可以自行安裝和卸載軟件,可以實(shí)現(xiàn)無線網(wǎng)絡(luò)的接入通過通信網(wǎng)絡(luò),有很大的存儲和計算的能力,這就是它和傳統(tǒng)手機(jī)的區(qū)別。在飛速發(fā)展的今天,對于移動終端設(shè)備一個大的趨勢是傳統(tǒng)WEB上的應(yīng)用出現(xiàn)在手機(jī)終端。而基于Android的百度地圖應(yīng)用系統(tǒng),良好地體現(xiàn)了這一趨勢,百度地圖應(yīng)用系統(tǒng)的開發(fā),能很好的為用戶提供便捷的服務(wù),用戶通過運(yùn)用地圖,在地圖上輸入想去的地方的地址就能找到。通過Android的百度地圖應(yīng)用系統(tǒng),與傳統(tǒng)WEB應(yīng)用進(jìn)行良好的互補(bǔ)。在移動手機(jī)大面積普及應(yīng)用的時代,為了滿足人們在外面快速找到想要去的地點(diǎn),很多軟件開發(fā)員開發(fā)了新的地圖導(dǎo)航系統(tǒng),其中最為成功和典型的一個就是手機(jī)的GPS功能,這能夠
10、大量的減少人們尋找地點(diǎn)的時間成本,不斷滿足人們快速生活節(jié)奏的客觀需求,因此終端上的地點(diǎn)定位的地圖的相關(guān)軟件的應(yīng)用能夠產(chǎn)生很大的實(shí)際效用,尤其是在手機(jī)Android系統(tǒng)上的地圖系統(tǒng)的開發(fā)。1.2 課題意義在日益創(chuàng)新的網(wǎng)絡(luò)技術(shù)促進(jìn)下,我國的通訊技術(shù)已經(jīng)進(jìn)入第四代,4G時代的到來,讓人們享受到了更快速的網(wǎng)絡(luò)傳輸速度和便捷的移動通訊。在現(xiàn)在的社會,手機(jī)已經(jīng)成為了人們?nèi)粘I钪胁豢扇鄙俚囊徊糠?。隨著現(xiàn)代科技的進(jìn)步和人們生活質(zhì)量的不斷地提高,普通只可以打電話發(fā)信息手機(jī)已經(jīng)無法滿足人們的要求,手機(jī)在時代的發(fā)展中不斷更新?lián)Q代,開發(fā)者們使得手機(jī)變得更加人性化和智能化,于是產(chǎn)生了智能手機(jī)。從人們對智能手機(jī)的使用率
11、反復(fù)的調(diào)查研究來看,可以說智能手機(jī)使用率在現(xiàn)代社會已經(jīng)達(dá)到了90%以上,智能手機(jī)的功能也被開發(fā)得越來越人性化,人們可以通過手機(jī)完成很多的需求,可以說人們的生活已經(jīng)離不開智能手機(jī)了?,F(xiàn)在人們更多的使用Andriod平臺來幫助人們解決問題,因此由這個課題擴(kuò)展開來,延伸并廣泛的使用在百度地圖API對Android系統(tǒng)的結(jié)合中,由于對地址查詢最原始方式是使用PC版的百度地圖,相比之下,顯得就很麻煩,人們不可能隨身攜帶電腦,并且不能保證電腦隨時隨地都能夠用有線或WIFI的方式上網(wǎng),但是在手機(jī)上,人們只需要在Andriod手機(jī)上下載這個系統(tǒng),就能選擇搜索想去的地址,使得出行找路變得更加方便快捷。1.3 研
12、究現(xiàn)狀從手機(jī)等移動終端逐步為人們的生活帶來越來越多的便利,不斷涌現(xiàn)出來的手機(jī)地圖系統(tǒng)軟件為在外急需找到某個地點(diǎn)的人提供了途徑,節(jié)約了時間也提高了效率。因此手機(jī)地圖軟件的相關(guān)研究在學(xué)術(shù)研究中逐步顯現(xiàn),其中包括很多數(shù)據(jù)市場研究和應(yīng)用研究。在數(shù)據(jù)研究手機(jī)地圖系統(tǒng)軟件的報告中,中國IT研究中心的相關(guān)研究就對現(xiàn)在市場中市場份額排名前幾位的地圖軟件展開,它們通過市場調(diào)查,對前幾位的軟件進(jìn)行了排名,據(jù)結(jié)果顯示,現(xiàn)排名第一的是百度手機(jī)地圖,其市場份額高達(dá)55.2%,更多的人愿意用百度手機(jī)地圖來進(jìn)行地圖搜索,排名第二的是高德地圖,其市場份額是20.7%,排名第三的是搜狗地圖,市場份額為占了6.3%。研究者們還對
13、我國的智能手機(jī)使用情況進(jìn)行了分析論述,他們都認(rèn)為大量普及使用的職能手機(jī)作為手機(jī)地圖軟件的使用載體,普及率的高低將直接影響軟件的使用情況,據(jù)研究顯示,我國的智能手機(jī)用戶已經(jīng)接近人口的一半,達(dá)到7.15億人,這為手機(jī)地圖軟件的應(yīng)用推廣提供了基礎(chǔ)。1.4 研究內(nèi)容1.地點(diǎn)搜索和位置定位在手機(jī)地圖軟件中,用戶可以隨意搜索想要去的地點(diǎn),手機(jī)軟件將會把用戶需要的街道、道路等內(nèi)容進(jìn)行詳細(xì)的顯示,用戶可以通過簡單的GPRS定位,讓手機(jī)自動顯示當(dāng)前所在位置,在根據(jù)當(dāng)前的位置規(guī)劃出最佳的路線,供用戶參考。2.路線規(guī)劃跟電腦地圖搜索查詢結(jié)果相同,手機(jī)地圖軟件的規(guī)劃結(jié)果,也將隨著用戶的選擇的不同而不同,用戶可選擇步行
14、、公交或駕車其中一種模式。3.公交線路查詢在手機(jī)地圖軟件的查詢結(jié)果中,用戶只需簡單的輸入起點(diǎn)和終點(diǎn),在選擇公交模式,用戶將輕松的得到多條線路信息。4.GPS導(dǎo)航手機(jī)地圖軟件還可提供智能的導(dǎo)航功能,用戶在輸入終點(diǎn)和起點(diǎn)后,將進(jìn)入導(dǎo)航模式。第2章 課題設(shè)計相關(guān)技術(shù)2.1 Java語言作為被開發(fā)人員常用的開發(fā)語言之一的Java語言,是一種能夠?qū)崿F(xiàn)跨平臺應(yīng)用的設(shè)計語言,被廣泛應(yīng)用的Java語言,性能很好、穩(wěn)定性高、效率高,所以被很多開發(fā)人員采用,現(xiàn)在我們用的很多的軟件都是用Java語言開發(fā)出來的,移動電話、個人電腦、平板電腦等終端上的很多軟件都是在Java開發(fā)出來的。Java語言是Sun公司開發(fā)出來的
15、,是一種能夠被開放使用的技術(shù),Sun 公司對 Java 編程語言的解釋是:Java語言是一種動態(tài)的編程語言,具有很好的性能,安全性高,試用對象廣泛,編程方式簡單,可進(jìn)行移植。2.2 Android架構(gòu)現(xiàn)在我們的智能手機(jī)主要采用的系統(tǒng)有3類,一是蘋果系統(tǒng),二是安卓系統(tǒng),三是塞班系統(tǒng),本文主要在這里解析安卓系統(tǒng)。Android是一種操作系統(tǒng),是給予自由開放代碼的,常用于移動終端中,比如智能手機(jī)等,它的開發(fā)是由谷歌公司和開放手機(jī)聯(lián)盟共同完成的,在中國雖然應(yīng)用很廣,但是卻還沒有對其有統(tǒng)一的稱呼。Android的開發(fā)者是Andy Rubin。在Android系統(tǒng)中,是形成了完整的系統(tǒng)架構(gòu)的,下面我們將對
16、其進(jìn)行詳細(xì)的分析。Linux Kernel:在Android系統(tǒng)的實(shí)際操作中,首先需要的是Linux Kernel的支持,有了Linux Kernel的支持才能基本保證Android系統(tǒng)的功能實(shí)現(xiàn),Linux Kernel由很多的驅(qū)動程序組成,這些驅(qū)動程序能夠完成對硬件的驅(qū)動。Android Runtime:Android系統(tǒng)的運(yùn)行需要良好的運(yùn)行環(huán)境,這就是Android Runtime,這里Android Runtime里的Core Libraries就相當(dāng)于java的JDK,是運(yùn)行android應(yīng)用程序所需要的核心庫,Dalvik Virtual Machine就相當(dāng)于JVM,這是Andr
17、oid系統(tǒng)運(yùn)行所需的特定的虛擬機(jī)。 Liberaries:Android系統(tǒng)的所有數(shù)據(jù)需要儲存在特別的地方,這就是Liberaries。Application Framework:這是Android系統(tǒng)的所有程序的框架,有了框架,系統(tǒng)中所有的程序才能夠被放到里面,才能保證系統(tǒng)程序的正常運(yùn)行。Application:這個就是我們開發(fā)的Application了。圖2-1 系統(tǒng)架構(gòu)圖從Android系統(tǒng)被開發(fā)以來,不斷得到技術(shù)創(chuàng)新和系統(tǒng)優(yōu)化,谷歌公司已經(jīng)不斷進(jìn)行了新的版本,現(xiàn)在已經(jīng)可以更新到4.0.0版本了,已經(jīng)具備了很高的穩(wěn)定性,但是仍然有很多的開發(fā)者更愿意在SDK2.2上進(jìn)行開發(fā)工作。Andro
18、id應(yīng)用基于Java,支持SQL,由于底層是Linux所以底層支持C/C+。目前有兩種編程: 一是基于ADT的JAVA編程,官方推薦用JDK+ECLIPSE+ADT+ADK(WINDOWS開發(fā)環(huán)境下,二是基于NDK的C編程APK是Android Package的縮寫,即Android安裝包(anapk)。APK是類似Symbian Sis或Sisx的文件格式。在進(jìn)行安裝和執(zhí)行的過程中,主要是通過APK文件,然后直接傳輸?shù)紸ndroid模擬器中。在Android系統(tǒng)中,Android sdk編譯的安裝文件需要在apk中完成格式的轉(zhuǎn)換,是將zip格式的文件轉(zhuǎn)換成apk格式的文件,然后才能完成被un
19、zip解壓到Dex中,Dex是Dalvik VM executes的全稱,即Android Dalvik執(zhí)行程序,并非Java ME的字節(jié)碼而是Dalvik字節(jié)碼。 在Android系統(tǒng)的軟件開發(fā)中,開發(fā)人員可通過訪問API框架來完成核心應(yīng)用程序的使用,在這個框架中,所有的應(yīng)用程序需要進(jìn)行簡化后的組件重用,所有基于這個框架開發(fā)出來的應(yīng)用程序都需要有一個功能塊,這個功能塊是可以不遵循框架的安全性限制的,Android系統(tǒng)的API框架,可以運(yùn)用可替換的程序,即實(shí)現(xiàn)程序的重用機(jī)制,并且在每一個程序的后面,都有一系列發(fā)揮服務(wù)功效的小系統(tǒng),下面將重點(diǎn)分析這些小系統(tǒng):1、用來搭建應(yīng)用程序的視圖(Views
20、),這種試圖是可實(shí)現(xiàn)豐富的可擴(kuò)展的功效,試圖又由一些基本的要素促成,包括表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的web 瀏覽器。2、可以兼容應(yīng)用程序的內(nèi)容提供器(Content Providers),在這個系統(tǒng)中可以在訪問一個程序的時候,再訪問另一個程序。3、能夠?qū)崿F(xiàn)非代碼的資源訪問的資源管理器(Resource Manager),主要由字符、圖形和布局文件( layout files )組成。4、通知管理器 (Notification Manager),在Android系統(tǒng)中通過這個小系統(tǒng)能夠?qū)崿F(xiàn)自定義的提示信息的顯示。5、
21、活動管理器( Activity Manager),這個小系統(tǒng)是能夠完成導(dǎo)航功能的定退的,用來管理程序生命周期的。2.3 Android SDKSDK:(software development kit)軟件開發(fā)工具包。在特定的軟件開發(fā)過程中,軟件開發(fā)師會用軟件開發(fā)工具包進(jìn)行特定的開發(fā)工作,比如在搭建軟件的框架或硬件的平臺的時候,都需要運(yùn)用。在安卓系統(tǒng)中,軟件開發(fā)工具包就是Android SDK。在Android系統(tǒng)中,有一個SharedPreferences類的平臺,這個平臺能夠提供軟件配置參數(shù)的保存,使用SharedPreferences保存數(shù)據(jù),其背后是用xml文件存放數(shù)據(jù),文件存放在/d
22、ata/data/<package name>/shared_prefs目錄下。所謂的SharedPreferences,是特指在Android系統(tǒng)中,用來存儲信息的特定機(jī)制。最重要的是在Android系統(tǒng)中,開放的服務(wù)是不需要收費(fèi)的,開發(fā)者提供第三方平臺的更大的自由度,開發(fā)人員不需要進(jìn)行較高費(fèi)用的支出,就可以進(jìn)行軟件的開發(fā)。第3章 系統(tǒng)需求分析3.1 可行性分析系統(tǒng)開發(fā)不光涉及到開發(fā)過程在技術(shù)上是否可行的問題,還需要進(jìn)行綜合全面的可行性分析,一個系統(tǒng)能夠被成功的開發(fā)出來,不僅需要有成熟的技術(shù),還需要有充足的開發(fā)資金做保證,所以下面將從技術(shù)可行性、經(jīng)濟(jì)可行性和法律可行性進(jìn)行分析。1
23、技術(shù)可行性手機(jī)地圖軟件的開發(fā)所需要的技術(shù)最主要的是開發(fā)設(shè)計語言,這種設(shè)計語言需要在手機(jī)等移動系統(tǒng)上安裝應(yīng)用,從現(xiàn)階段的開發(fā)語言的技術(shù)來看,主要有Java語言、C語言等等,這些開發(fā)語言都是長時間打磨所得的,已經(jīng)較為成熟了。還需要的就是高速的網(wǎng)絡(luò)做保障,從我國的現(xiàn)狀來看,網(wǎng)速已經(jīng)在不斷的加快,足以滿足手機(jī)地圖軟件的需求。(1)硬件操作系統(tǒng):Windows XP 或者Windows 7Web 服務(wù)器:tomcat7.0及以上開發(fā)工具:Eclipse 4.4,Macromedia Dreamweaver 8.0數(shù)據(jù)庫:MySQL數(shù)據(jù)庫JDK開發(fā)包:jdk 7 Update5 以上版本(2)系統(tǒng)軟件在百
24、度地圖軟件的設(shè)計過程中,需要能夠滿足在手機(jī)系統(tǒng)中運(yùn)行的要求,所以需要采用特定的開發(fā)語言,其中Java語言因高穩(wěn)定性、通用性等優(yōu)點(diǎn),被開發(fā)人員運(yùn)用到地圖軟件的開發(fā)中,作為最主要的設(shè)計語言。2經(jīng)濟(jì)可行性所有開發(fā)地圖軟件的工程師,最終的目的都是為了獲得經(jīng)濟(jì)上的收益,在實(shí)際的開發(fā)過程中,也需要充分考慮是否有足夠的經(jīng)濟(jì)支持,從百度地圖的開發(fā)成本來看,所需要的系統(tǒng)開發(fā)人員不用很多,會涉及到的開發(fā)費(fèi)用不高,投資者、開發(fā)人員都不用投入大量的前期資本,所以從以上兩方面來看經(jīng)濟(jì)上是可行的。3法律可行性基于Android的百度地圖應(yīng)用系統(tǒng)是畢業(yè)設(shè)計,僅僅只是作為畢業(yè)時,進(jìn)行的設(shè)計,該軟件并不作商業(yè)用途,因此在法律上
25、是沒有問題的,在法律上是可行的。 4結(jié)論全文在可行性分析的過程中,進(jìn)行了經(jīng)濟(jì)、技術(shù)和法律層面的深度研究,通過研究得出之所以百度地圖能夠在所有的手機(jī)地圖軟件中占有第一名的市場份額,被大多數(shù)用戶選擇,就是百度地圖優(yōu)化的信息化方式,百度地圖的人性化服務(wù)方式。3.2 需求分析軟件工程建設(shè)的第一階段就是需求分析,它是十分重要的階段,因為,科學(xué)并且合理的需求分析能在成本上得到節(jié)約,還能夠?qū)㈨椖拷ㄔO(shè)做到事半功倍的效果,反之,如果需求分析不合理,不實(shí)用,只會給項目建設(shè)帶來負(fù)擔(dān),不但會使建設(shè)成本大幅度上升,還會直接影響開發(fā)建設(shè)的成功與否,因此在軟件工程的建設(shè)中,必須充分的考慮到用戶的需求,所有的在Android
26、系統(tǒng)手機(jī)上開發(fā)的地圖軟件,都要體現(xiàn)用戶的最根本需求,對于百度地圖開發(fā)來所更是如此。用戶能夠公交路線,周邊。用戶能夠查看實(shí)時路況以及使用不同模式查看地圖,包括,3D俯瞰圖,2D平面圖以及衛(wèi)星圖。用戶可以搜索附近地點(diǎn),比如公交站,銀行等。用戶能夠搜索路線,包括:駕車,公交車,走路。用戶可通過百度地圖在駕車過程中完成導(dǎo)航。3.3 業(yè)務(wù)流程圖工作過程。業(yè)務(wù)流程圖能夠反應(yīng)出工作運(yùn)行的具體的過程,按照規(guī)定要用指定的符合來表示,業(yè)務(wù)流程圖的繪制過程,是幫助分析員分析整理結(jié)果的重要過程,能夠幫助分析出其中可能存在的不合理的地方或問題,也方便交流,如3-1所示:圖3-1 業(yè)務(wù)流程圖的基本符號圖3-2 業(yè)務(wù)流程圖
27、3.2 非功能性需求(1)系統(tǒng)的安全性安全性對于一個任意一個系統(tǒng)來說是極為重要的,本系統(tǒng)設(shè)計時考慮了加密權(quán)限和必要的保密措施,以此保證系統(tǒng)安全可靠。要滿足數(shù)據(jù)保存的完整,在手機(jī)地圖軟件中,必須要有備份的功能,才能確保系統(tǒng)的整體性,同時要考慮到數(shù)據(jù)在遭受意外破壞時也能及時恢復(fù),系統(tǒng)必須滿足用戶運(yùn)營方面的需求,能夠長期運(yùn)行,需要額外的網(wǎng)絡(luò)安全防火墻,傳輸數(shù)據(jù)是加密的。當(dāng)然,設(shè)計者還應(yīng)當(dāng)對開發(fā)系統(tǒng)中的硬件配置給予充分的注意和考慮。(2)系統(tǒng)的響應(yīng)時間本系統(tǒng)在線測試速度性能不超過10毫秒,根據(jù)用戶的需要可以進(jìn)一步提高,響應(yīng)時間是一個系統(tǒng)非功能部分中的一個重要性能,能夠保證系統(tǒng)的運(yùn)行,添加餐品,搜索信息
28、,操作完成立刻能夠返回信息,不能產(chǎn)生有等待的感覺,這是用戶正常需要的性能。(3)系統(tǒng)的可擴(kuò)展性作為一個百度地圖應(yīng)用系統(tǒng)來說,系統(tǒng)應(yīng)充分考慮未來的可擴(kuò)展性,例如查詢的條件會不斷的增加和變化,這要求系統(tǒng)由足夠的條件進(jìn)行功能的完善和擴(kuò)展。,實(shí)現(xiàn)此應(yīng)通過系統(tǒng)的擴(kuò)展配置來完成,系統(tǒng)在設(shè)計時要符合一定的配置標(biāo)準(zhǔn),可以方便未來加入和減少系統(tǒng)的模塊,通過軟件的升級、 改善系統(tǒng)錯誤和增加功能。第4章 百度key申請4.1 注冊百度賬號根據(jù)提示,填寫注冊信息。如圖4-1圖4-1 注冊百度賬號4.2 申請百度key登陸百度賬號,百度“百度地圖API”,點(diǎn)開百度地圖API的官網(wǎng)。進(jìn)官網(wǎng),選擇Android開發(fā)可以進(jìn)行
29、了解下百度地圖,點(diǎn)擊申請密鑰的按鈕進(jìn)去。如圖4-2圖4-2 百度API 在這里因為是展示Android百度API的應(yīng)用,所以點(diǎn)擊創(chuàng)建應(yīng)用,如圖4-3圖4-3 創(chuàng)建應(yīng)用在應(yīng)用類型窗口中選擇Android SDK,應(yīng)用名稱可以隨便設(shè)置。關(guān)鍵安全碼設(shè)置:要求Android簽名證書的sha1值+“;”+packagename(即:數(shù)字簽名+分號+包名)Android簽名證書的sha1值:可以在eclipse中直接查看:windows->preferences->Android->build. 如圖4-5包名:Android應(yīng)用程序本身在AndroidManifest.xml上定義的,
30、如圖4-6在填寫安全碼后,點(diǎn)擊“確定”完成應(yīng)用的配置工作,得到一個創(chuàng)建的key,如圖4-7圖4-4 創(chuàng)建應(yīng)用填表圖4-5 sha1值查找圖4-6 包名的查找圖4-7 百度key4.3 百度密鑰應(yīng)用到程序?qū)?chuàng)建的的key應(yīng)用到開發(fā),在AndroidManifest.xml和MainActivity.java添加key如圖4-8,圖4-9圖4-8 AndroidManifest.xml上圖4-9 MainActivity.java上第5章 系統(tǒng)設(shè)計5.1系統(tǒng)功能結(jié)構(gòu)百度地圖應(yīng)用系統(tǒng)主要由前臺使用組成。前臺是用戶能夠進(jìn)行查詢路線操作,以及一些導(dǎo)航操作,由于該界面是針對用戶,也考慮了用戶想要操作的簡潔
31、和方便性,與此同時開發(fā)者在應(yīng)用外觀設(shè)計上也進(jìn)行了精心的設(shè)計,讓用戶看著賞心悅目。應(yīng)用從前臺方面進(jìn)功能設(shè)計,主要功能包括搜索公交路線,周邊;查看實(shí)時路況以及使用不同模式查看地圖;查看附近的基本信息,包括:公交站,銀行等;搜索路線,包括:駕車,公交車,走路;使用該系統(tǒng)進(jìn)行導(dǎo)航等核心功能。圖4-1 系統(tǒng)功能結(jié)構(gòu)圖5.2權(quán)限設(shè)計<!- 使用網(wǎng)絡(luò)功能所需權(quán)限 -> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission>
32、<uses-permission android:name="android.permission.INTERNET" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
33、; </uses-permission> <!- SDK離線地圖和cache功能需要讀寫外部存儲器 -> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <uses-permission android:name="android.permission.WRITE_SETTINGS" > </uses-permission> <!- 獲取
34、設(shè)置信息和詳情頁直接撥打電話需要以下權(quán)限 -> <uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> <uses-permission android:name="android.permission.CALL_PHONE" > </uses-permission> <!- 使用定位功能所需權(quán)限,demo已集成百度定位SDK,不使用定位功能可去掉以下6項 -> <
35、;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <permission android:name="android.permission.BAIDU_LOCATION_SERVICE" > </permission> <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE&
36、quot; > </uses-permission> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" > </uses-permission> <uses-permission android:name
37、="android.permission.ACCESS_GPS" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" /> <uses-permission android:name="android.permission.ACCE
38、SS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCES_MOCK_LOCATION" /> <uses-
39、permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="an
40、droid.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_GPS" /> <!- SDK1.5需要android.permission.GET_TASKS權(quán)限判斷本程序是否為當(dāng)前運(yùn)行的應(yīng)用? -> <uses-permiss
41、ion android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permissio
42、n.WRITE_SETTINGS" /> 5.3基本配置設(shè)計<menu xmlns:android=" > <item android:id="+id/action_settings" android:orderInCategory="100" android:showAsAction="never" android:title="string/action_settings"/></menu>37第6章 系統(tǒng)實(shí)現(xiàn)6.1系統(tǒng)運(yùn)行環(huán)境和開發(fā)平臺表6-1 系
43、統(tǒng)運(yùn)行環(huán)境和開發(fā)平臺需求表需求名稱詳細(xì)要求CPUCore I5、6GHz內(nèi)存6G硬盤500G顯示器分辨率1024×768像素以上網(wǎng)絡(luò)20M以上操作系統(tǒng)Windows xp或Windows 7或者Linux數(shù)據(jù)庫MySQL5.5以上開發(fā)工具Eclipse4.4 軟件ADT 23.0.2,Andriod SDK 和ADT版本一致Web服務(wù)器Tomcat6.2系統(tǒng)實(shí)現(xiàn)6.2.1 系統(tǒng)主界面該界面是用戶登錄系統(tǒng)的界面,設(shè)計主界面簡潔,用戶在該界面中能夠進(jìn)行搜索,路線查看,附近,以及導(dǎo)航。protected void onCreate(Bundle savedInstanceState) /調(diào)
44、用父類的on Create構(gòu)造函數(shù),保存當(dāng)前Activity的狀態(tài)信息super.onCreate(savedInstanceState);MyApplication app = (MyApplication) this.getApplication(); /初始化bMapManagerbMapManager = app.bMapManager;if (bMapManager = null) bMapManager = new BMapManager(getApplicationContext();/* * 如果BMapManager沒有初始化則初始化BMapManager */bMapMan
45、ager.init(new MyApplication.MyGeneralListener(); /記住BMapManager的初始化要在setContentView之前完成,否則是會報錯的setContentView(R.layout.activity_main);getBMapView();data = new LocationData();/ 定位功能mLocationClient = new LocationClient(getApplicationContext();/聲明LocationClient類myOverlay = new LocationOverlay(getApplic
46、ationContext(), mMapView, data);initPopupOverLay();/ 創(chuàng)建 彈出泡泡圖層myOverlay.createPaopao();myOverlay.enableCompass();setLocationOption();/ 注冊位置監(jiān)聽mLocationClient.registerLocationListener(locationListener);/ 發(fā)起定位請求if (mLocationClient != null && !mLocationClient.isStarted() mLocationClient.requestL
47、ocation();mLocationClient.start();/位置服務(wù),沒有則初始化 else Log.e("LocSDK3", "locClient is null or not started");popup = new PopupOverlay(mMapView, new PopupClickListener() private Object address_msg;Overridepublic void onClickedPopup(int index) switch (index) case 0:/ 單擊周邊搜索圖標(biāo)Intent int
48、ent = new Intent(MainActivity.this,PoiSearchActivity.class);intent.putExtra("MyLocation", true);startActivity(intent);Activity之間傳遞的消息break;case 1:/ 單擊我的位置圖標(biāo)if (address_msg = null) Toast.makeText(MainActivity.this, "定位服務(wù)進(jìn)行中.",Toast.LENGTH_SHORT).show(); else Toast.makeText(MainAct
49、ivity.this,"我的位置:" + address_msg, Toast.LENGTH_SHORT).show();break;case 2:/ 單擊線路查詢圖標(biāo)intent = new Intent(MainActivity.this,/生成Intent對象RoutePlanActivity.class);intent.putExtra("MyLocation", "" + address_msg);/ 將地址信息發(fā)給線路查詢界面startActivity(intent);/ popup.hidePop();break;);/
50、 初始化導(dǎo)航引擎BaiduNaviManager.getInstance().initEngine(this, getSdcardDir(),mNaviEngineInitListener, ACCESS_KEY, mKeyVerifyListener);private void setLocationOption() /設(shè)置相關(guān)參數(shù),設(shè)置條件LocationClientOption option = new LocationClientOption();option.setOpenGps(true);option.setLocationMode(LocationMode.Device_Sen
51、sors);/ 定位模式option.setAddrType("all"); option.setCoorType("bd09ll"); option.setScanSpan(1000);option.disableCache(true); option.setPoiNumber(5); option.setPoiDistance(1000); / poi查詢距離option.setPoiExtraInfo(true); mLocationClient.setLocOption(option);private void getBMapView() mMa
52、pView = (MapView) findViewById(R.id.bmapsView);mMapView.setBuiltInZoomControls(true);MapController mMapController = mMapView.getController();/ 設(shè)置啟用內(nèi)置的縮放控件mMapController.setZoom(15);/ 設(shè)置地圖zoom級別findViewById(R.id.search).setOnClickListener(btnListener);findViewById(R.id.route).setOnClickListener(btnLi
53、stener);findViewById(R.id.nearby).setOnClickListener(btnListener);findViewById(R.id.navigation).setOnClickListener(btnListener);layer = (ImageButton) findViewById(R.id.maplayers);layer.setOnClickListener(btnListener);roadCondition = (ImageButton) findViewById(R.id.roadcondition);roadCondition.setOnC
54、lickListener(btnListener);6.2.2 實(shí)時路況界面這是百度地圖應(yīng)用系統(tǒng)的實(shí)時路況界面,能夠看到目前為止道路的狀況,綠色的線代表暢通。6.2.3 視角界面這是視圖模式界面,用戶可以使用三種方式查看地圖,衛(wèi)星圖,2D平面圖以及3D俯瞰圖。6.2.4 搜索界面這是百度地圖應(yīng)用系統(tǒng)的搜索界面,用戶能夠進(jìn)行搜索,包括:公交路線,KFC以及KTV,這樣的娛樂以及快餐的地方。這是KTV的界面,用戶能夠在地圖上表紅標(biāo)的地方進(jìn)行放大縮小。這是公交路線的界面,通過填寫目的地城市以及公交車的路線,就能在地圖上進(jìn)行顯示,還能看到公交車的具體路線,公交車的首班車以及末班車時間。protecte
55、d void startSearch() city = cityEt.getText().toString().trim();busno = busnoEt.getText().toString().trim();if (TextUtils.isEmpty(city) city = address;if (TextUtils.isEmpty(busno) Toast.makeText(BusLineSearchActivity.this, "搜索內(nèi)容不能為空",Toast.LENGTH_SHORT).show();return;intent = new Intent(Bus
56、LineSearchActivity.this,ShowBusLineResult.class);bundle.putString(ConstantUtil.KEY_CITY, city);bundle.putString(ConstantUtil.KEY_BUSNO, busno);intent.putExtras(bundle);startActivity(intent);private void parseBundle() intent = this.getIntent();bundle = intent.getExtras();address = bundle.getString(ConstantUtil.KEY_LOCATION);Log.d(TAG, "地址:" + address);address = address.substring(0, address.indexOf("市");Log.d(TAG, "城市:" + address);6.2.5 路線界面這是路線的界面,用戶能夠選擇三種
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)房服務(wù)器維保合同范本
- 2025年度環(huán)保產(chǎn)業(yè)監(jiān)事聘用合同規(guī)范模板
- 2025年度酒吧租賃與安保服務(wù)合同
- 二零二五年度診所托管與醫(yī)療教育培訓(xùn)合同
- 二零二五年度業(yè)務(wù)員提成與行業(yè)交流活動合同
- 2025年度模特與時尚電商平臺簽約合同
- 二零二五年度學(xué)校外語教師聘用合同
- 美容院合伙人投資合作與利益共享合同(2025年度)
- 二零二五年度大型商場商鋪?zhàn)赓U與品牌形象維護(hù)合同
- 二零二五年度演員經(jīng)紀(jì)代理與知識產(chǎn)權(quán)保護(hù)合同
- 污水處理廠安全教育培訓(xùn)
- 護(hù)理工作血液透析操作規(guī)范
- Unit+6+The+Admirable+Lesson+2+History+makers 高一英語北師大版(2019)必修第二冊
- 設(shè)計變更流程圖
- 學(xué)校消防防火月檢查記錄表
- 外墻水包砂施工方案模板
- 無犯罪記錄證明申請表
- 聚酯生產(chǎn)技術(shù) 聚酯工藝技術(shù)
- 2023年四川省綿陽市中考語文試卷真題(含答案)
- 新大象版三年級下冊科學(xué)第二單元《電與我們的生活》全部課件(共5課時)
- 混床計算書(新)
評論
0/150
提交評論