九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

基于android的智能導(dǎo)航系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

  • 資源ID:176483       資源大?。?span id="24d9guoke414" class="font-tahoma">764KB        全文頁(yè)數(shù):31頁(yè)
  • 資源格式: DOC        下載積分:5積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要5積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

基于android的智能導(dǎo)航系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

I論文題目 基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)專 業(yè) 年 級(jí) 學(xué) 號(hào) 姓 名 指導(dǎo)老師 目 錄1 緒論 .11.1 課題背景 .1II1.2 課題內(nèi)容 .11.3 課題目的及其意義 .22 系統(tǒng)開(kāi)發(fā)環(huán)境及相關(guān)技術(shù) .22.1 Android 開(kāi)發(fā)介紹與環(huán)境搭建 .22.2 JSON 簡(jiǎn)介 .32.3 Struts2 框架簡(jiǎn)介與環(huán)境搭建 .32.4 Baidu Maps API 簡(jiǎn)介 .43 系統(tǒng)分析 .43.1 研究目標(biāo) .43.2 需求分析 .43.3 性能分析 .54 系統(tǒng)設(shè)計(jì) .54.1 用戶界面設(shè)計(jì) .54.2 數(shù)據(jù)庫(kù)設(shè)計(jì) .64.3 程序模塊設(shè)計(jì) .85 系統(tǒng)功能模塊設(shè)計(jì) .95.1 文件結(jié)構(gòu)與用途 .95.2 后臺(tái)定位服務(wù) .115.3 MapApplication.java 類 .135.4 登錄模塊 .155.5 首頁(yè)模塊 .155.6 導(dǎo)航模塊 .205.7 周邊信息查詢模塊 .215.8 個(gè)人資料模塊 .236 系統(tǒng)測(cè)試 .257 總結(jié) .26參考文獻(xiàn) .27致 謝 .28基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1基于 Android 的智能導(dǎo)游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘 要 :本文首先分析討論 Android 手機(jī)軟件開(kāi)發(fā)主要技術(shù),以及國(guó)內(nèi)景區(qū)導(dǎo)游系統(tǒng)與智能導(dǎo)游的現(xiàn)狀。然后講述了基于百度地圖 Android SDK 以及定位 SDK技術(shù)所設(shè)計(jì)的 Android 平臺(tái)智能導(dǎo)游系統(tǒng)的實(shí)現(xiàn)。該系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)了后臺(tái)定位、景點(diǎn)導(dǎo)航、景點(diǎn)信息瀏覽與下載、周邊查詢等實(shí)用功能,具有良好的通用性與靈活性。關(guān)鍵字:Android;智能導(dǎo)游;導(dǎo)航軟件;移動(dòng)開(kāi)發(fā);百度地圖1 緒論1.1 課題背景中國(guó)工業(yè)和信息部最新公布數(shù)據(jù)表明,中國(guó)智能手機(jī)的市場(chǎng)增長(zhǎng)率不斷攀升,而且,隨著移動(dòng) 3G 和 Wifi 熱點(diǎn)的不斷覆蓋,用戶對(duì)手機(jī)的互動(dòng)娛樂(lè)體驗(yàn)也提出了更高要求,各種應(yīng)用軟件開(kāi)始進(jìn)入,手機(jī)日漸成為互動(dòng)娛樂(lè)的焦點(diǎn)。有關(guān)資料顯示,我國(guó)的旅游業(yè)發(fā)展實(shí)力巨大。首先,是旅游收入增長(zhǎng)迅速:2013 年春節(jié)黃金周全國(guó)接待游客達(dá)到 2.03 億人次,實(shí)現(xiàn)旅游收入 1170.6 億元人民幣,同比增長(zhǎng)達(dá)到 15.1%和 15.4%1;其次,固定資產(chǎn)投入力度的不斷加大:2009 年 12 月, 關(guān)于加快發(fā)展旅游業(yè)意見(jiàn)首次提出“中國(guó)旅游日”的概念,旅游業(yè)已經(jīng)出現(xiàn)在了中國(guó)國(guó)家戰(zhàn)略性產(chǎn)業(yè)中。然而,國(guó)內(nèi)旅游業(yè)的迅猛發(fā)展使得傳統(tǒng)的人工導(dǎo)游方式不能滿足新時(shí)代用戶的多元化需求。長(zhǎng)期以來(lái),游客在景點(diǎn)旅游時(shí)只能走馬觀花,對(duì)景點(diǎn)的多媒體信息了解甚少,就本人經(jīng)驗(yàn)來(lái)說(shuō),對(duì)于外來(lái)游客來(lái)說(shuō)更會(huì)由于語(yǔ)言的障礙而使得游覽質(zhì)量下降!于是,基于上述,手機(jī)終端的智能導(dǎo)游應(yīng)用便應(yīng)運(yùn)而生。1.2 課題內(nèi)容本課題結(jié)合現(xiàn)代景區(qū)的相關(guān)特性和用戶需求,使用 JAVA 語(yǔ)言,應(yīng)用百度地圖、百度定位(GPS+基站) 、JSON 數(shù)據(jù)交換和無(wú)線通訊等技術(shù),開(kāi)發(fā)一個(gè)基2于 Android 的 C/S 式智能導(dǎo)航軟件系統(tǒng)。這軟件使得用戶可以利用無(wú)線網(wǎng)絡(luò)以及手機(jī)的便捷性無(wú)時(shí)無(wú)刻地享受到景點(diǎn)信息查詢、自身位置查詢、周邊查詢、導(dǎo)航等功能所帶來(lái)的暢快旅游體驗(yàn)。1.3 課題目的及其意義本課題的主要目的是將 Javaweb 后臺(tái)服務(wù)端、百度地圖、定位導(dǎo)航技術(shù)與景區(qū)導(dǎo)游相結(jié)合,從而實(shí)現(xiàn)景區(qū)導(dǎo)游系統(tǒng)的真正智能化。智能導(dǎo)游系統(tǒng)可以儲(chǔ)存大量的景區(qū)景點(diǎn)信息,不僅可以廣泛傳播,而且科學(xué)環(huán)保、方便快捷。此外,系統(tǒng)還提供了自定位、導(dǎo)航的實(shí)用功能,讓用戶可以徹底拋棄紙質(zhì)地圖,減少路癡的認(rèn)路障礙。這不僅能直接為游客帶來(lái)更暢快的旅游體驗(yàn),同時(shí)還完善了景區(qū)的旅游管理體制。2 系統(tǒng)開(kāi)發(fā)環(huán)境及相關(guān)技術(shù)2.1 Android 開(kāi)發(fā)介紹與環(huán)境搭建Android 是 Google 公司開(kāi)發(fā)的基于 Linux 內(nèi)核的開(kāi)源操作系統(tǒng)。它包括:操作系統(tǒng)、用戶界面和應(yīng)用程序,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙 2。Android 系統(tǒng)提供了四大基本組件,包括:Activity、Contentprovide 、 Service、Intentreceiver,每個(gè)組件都是一個(gè)視圖(view) 。但上述四大組件對(duì)于一個(gè) Android 應(yīng)用程序來(lái)說(shuō),卻并不是必須的,可能只需要其中的幾種酒可以滿足設(shè)計(jì)需求。Manifext.xml 配置文件時(shí) Android應(yīng)用程序不可或缺的一個(gè) XML 配置文件,其中定義了程序所用到的組件、組件功能以及一些必要條件和權(quán)限。Android 的上層應(yīng)用程序一般是由 java 語(yǔ)言開(kāi)發(fā),所以首先應(yīng)該有由 SUN公司提供的 Java SDK(其中包括 JRE:Java Runtime Environment)以及 Java 主流集成開(kāi)發(fā)環(huán)境 Eclipse IDE。此外,還需要 Android 開(kāi)發(fā)專用 Google 提供的Android SDK 和安裝在 Eclipse 的插件 Android ADT,為 Android 開(kāi)發(fā)提供開(kāi)發(fā)工具的升級(jí)或者變更,是 Eclipse 下開(kāi)發(fā)工具的升級(jí)下載的工具 3。Android 開(kāi)發(fā)平臺(tái)搭建步驟 4:(1)首先到 http:/www.eclipse.org/downloads/下載 Eclipse 集成開(kāi)發(fā)環(huán)境并且解壓,這里推薦下載 Java EE 集成版本,可以為平臺(tái)的搭建省下不少工作。接基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3著再去 http:/java.sun.com/javase/downloads/index.jsp 站點(diǎn)下載 SDK 后安裝,下載 http:/dl.google.com/android/android-sdk-windows-1.5_r1.zip,Android SDK1.5后解壓。(2)雙擊 Eclipse 解壓后目錄中的 eclipse.exe 然后啟動(dòng),選擇 Eclipse 菜單中的 Help-> Install New Software-> 選項(xiàng)卡上的 Available Software,點(diǎn)擊右側(cè)的“Add”輸入 http:/dl-ssl.google.com/android/eclipse/后確定,然后在“Work with”下拉菜單中選擇剛才輸入的網(wǎng)址。過(guò)一會(huì)就會(huì)出現(xiàn)一個(gè) Developer Tools 選項(xiàng),勾上以后點(diǎn)擊 Next 以后 Eclipse 會(huì)自動(dòng)網(wǎng)上查找 Android 開(kāi)發(fā)工具插件,然后找到 Android DDMS 和 Android Development Tools,選中這兩個(gè)點(diǎn)擊Finish, Eclipse 就會(huì)自動(dòng)下載并安裝 Android 插件了,最后會(huì)提示重啟Eclipse。(3)重啟后選擇 Eclipse 菜單中的 Windows-> Preferences 在左側(cè)的 Android項(xiàng)目中 SDK Location 中填入 Android SDK 解壓后的目錄,然后點(diǎn)擊 Apply。(4)在 Windows7 的系統(tǒng)變量中的 path 變量中添加一個(gè)值,該值指向解壓后的 Android SDK 目錄下的 tools 文件夾。2.2 JSON 簡(jiǎn)介JSON( javaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它基于javascript 卻采用了完全獨(dú)立于語(yǔ)言的文本格式。JSON 基于“名稱/值”對(duì)的集合和值的有效序列表這兩種格式,用 JSON 表示一組值時(shí)不但可以減少?gòu)?fù)雜性也能提高可讀性,是網(wǎng)絡(luò)編程中數(shù)據(jù)交換的常用格式。2.3 Struts2 框架簡(jiǎn)介與環(huán)境搭建Struts 是采用 Java Servlet/JavaServer Pages 技術(shù),開(kāi)發(fā) Web 應(yīng)用程序的開(kāi)放源碼的 Framework。采用 Struts 能開(kāi)發(fā)出基于 MVC(Model-View-Controller)設(shè)計(jì)模式的應(yīng)用構(gòu)架。而 Struts2 是在原有 Struts 和 Webwork 的技術(shù)基礎(chǔ)上進(jìn)行合并的全新的框架,其體系結(jié)構(gòu)而原有 Strcts 差異巨大。 Structs2 是以 Webwork 為核心,采用攔截器機(jī)制來(lái)處理用戶請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯能夠與Servlet API 完全分離,使應(yīng)用結(jié)構(gòu)更為合理。Struts2 框架的開(kāi)發(fā)需要使用 Myeclipse 集成開(kāi)發(fā)環(huán)境。由于 Myeclipse 是Eclipse 的一個(gè)插件,所以在這忽略 Eclipse 的安裝。Myeclipse 的安裝:首先應(yīng)該到 http:/www.myeclipseide.com/index.php? name =Downloads&req=viewsdownload&sid=15 下載文件4MyEclipse_5.5.1GA_E3.2.2_ FullStackInstaller.exe 并安裝。安裝完畢后將其安裝目錄下的 feature 和 plugin 兩個(gè)目錄覆蓋到 Eclipse 的安裝目錄下,最后卸載剛才安裝的 Myeclipse5。Tomcat 應(yīng)用服務(wù)器的安裝:首先,到 http:/www.cuku.net/show.php/309.html選擇與自己 JDK 匹配的 Tomcat 安裝文件,在安裝時(shí)選擇路徑把路徑選到 JDK的安裝路徑下的 jre。最后配置環(huán)境變量:在“ 我的電腦” 上點(diǎn)右鍵>“屬性”>“高級(jí) ”> “環(huán)境變量(N)” 。 新建系統(tǒng)變量 CATALINA_HOME:C:Program FilesApache Software FoundationTomcat 5.5(我的 tomcat 安裝目錄,你寫(xiě)你自己的) 在系統(tǒng)變 CLASSPATH 的值的后面加入: %CATALINA_HOME%commonlib; 在系統(tǒng)變量 Path 的值中"%JAVA_HOME%bin;"的后面加入以下內(nèi)容:%CATALINA_HOME%bin; 到這里,Tomcat 安裝完畢 6 。Structs2 框架的搭建,包括以下步驟:首先創(chuàng)建 web 項(xiàng)目并導(dǎo)入 Structs2 所需要的包 struts2 core-2.2.1.1.jar、xwork-core-2.2.1.1.jar、commonsfileupload-1.2. 1.jar comm.ons-io-1. 3.2.jar、freemarker-2.3.16.jar、ognl-3.0.jar 、javassist-3.7.ga.jar;配置 Structs 在當(dāng)前 web 項(xiàng)目中,在 web.xml 中配置 Struts2 所需的核心過(guò)濾器。2.4 Baidu Maps API 簡(jiǎn)介百度地圖 API 是為開(kāi)發(fā)者免費(fèi)提供的一套基于百度地圖服務(wù)的應(yīng)用接口,包括 JavaScript API、Web 服務(wù) API、Android SDK 、iOS SDK、定位 SDK、車聯(lián)網(wǎng) API、LBS 云等多種開(kāi)發(fā)工具與服務(wù),提供基本地圖展現(xiàn)、搜索、定位、逆/ 地理編碼、路線規(guī)劃、LBS 云存儲(chǔ)與檢索等功能,適用于 PC 端、移動(dòng)端、服務(wù)器等多種設(shè)備,多操作系統(tǒng)下的地圖應(yīng)用開(kāi)發(fā) 7。3 系統(tǒng)分析3.1 研究目標(biāo)(1) 學(xué)習(xí)熟悉 Android 應(yīng)用程序的框架、開(kāi)發(fā)過(guò)程;(2) 學(xué)習(xí)熟悉 Struts2 框架、開(kāi)發(fā)過(guò)程;(3) 基于 Android 的智能導(dǎo)游軟件主要實(shí)現(xiàn) Android 系統(tǒng)訪問(wèn)服務(wù)端,利用基于 JAVA 的網(wǎng)絡(luò)編程(Apache HttpClient 項(xiàng)目)與 Webservice 調(diào)用,針對(duì)手機(jī)所在的地理位置,實(shí)時(shí)查詢相關(guān)景點(diǎn)的基本信息與天氣信息,并智能導(dǎo)航;基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)5(3) 學(xué)習(xí)熟悉基于 Android 的地圖 GIS 開(kāi)發(fā)。3.2 需求分析本軟件是一個(gè)基于 Android 的智能導(dǎo)游系統(tǒng),故使用者應(yīng)該為成分構(gòu)成比較廣泛的游客,所以 UI 必須簡(jiǎn)潔大方,有顯淺易懂。而要實(shí)現(xiàn)智能導(dǎo)游,首先就必須要求軟件起碼如人工導(dǎo)游般,能夠?yàn)橛脩籼峁┚包c(diǎn)的基本信息講解、位置描述、導(dǎo)航等服務(wù)考慮到景區(qū)信息與用戶信息等的數(shù)據(jù)量可能十分巨大,本系統(tǒng)應(yīng)該使用本地/服務(wù)器模式以節(jié)省用戶的移動(dòng)設(shè)備儲(chǔ)存空間以及數(shù)據(jù)流量。綜上所述,本系統(tǒng)應(yīng)該完成以下功能:(1) 采用 C/S 模式,基于 Struts2 框架服務(wù)端儲(chǔ)存用戶信息以及顯示地圖所必須的靜態(tài)信息,供 Android 客戶端的查詢?yōu)g覽與下載;(2) 用戶信息管理,包括:登錄與注冊(cè)、本地景點(diǎn)信息的管理;(3) 以城市為基本的景點(diǎn)信息查詢與模糊查詢,包括:名稱、地址、圖片、經(jīng)緯度、票價(jià)及其優(yōu)惠活動(dòng)等,并提供景點(diǎn)信息的本地緩存、下載;(4) 用戶自定位,景點(diǎn)位置的地圖顯示與導(dǎo)航;(5) 周邊餐飲、衛(wèi)生間、住宿、醫(yī)院、加油站等信息的查詢。3.3 性能分析本項(xiàng)目的目標(biāo)是提升游客的旅游體驗(yàn),所以對(duì)程序的性能要求較高,程序應(yīng)該具有以下的良好性能:(1) 響應(yīng)速度快。(2) 安全性高(3) 信息處理速度快4 系統(tǒng)設(shè)計(jì)4.1 用戶界面設(shè)計(jì)根據(jù)設(shè)計(jì),本軟件系統(tǒng)有以下幾個(gè)界面:登錄界面、景點(diǎn)查詢綜合界面、景點(diǎn)信息顯示界面、景點(diǎn)信息本地收藏界面、周邊查詢界面、景點(diǎn)導(dǎo)航界面。景點(diǎn)查詢綜合界面是軟件的首頁(yè),其主體是百度地圖。它能根據(jù)當(dāng)前城市(自選或定位默認(rèn))或模糊查詢用百度地圖顯示出景點(diǎn)的分布情況。景點(diǎn)信息顯示界面為用戶顯示當(dāng)前景點(diǎn)的詳細(xì)情況,包括:名稱、地址、6電話、門(mén)票、優(yōu)惠、簡(jiǎn)介、圖片等資料,并能根據(jù)用戶意愿選擇下載當(dāng)前景點(diǎn)信息。景點(diǎn)信息本地收藏界面,其主體是一個(gè) ListView。它能夠顯示出用戶的本地景點(diǎn)信息,并實(shí)現(xiàn)管理(刪除) 。周邊查詢界面,其主體是一個(gè)百度地圖。用戶可以通過(guò)它來(lái)查詢到周邊諸如餐飲、酒店、加油站等信息。景點(diǎn)導(dǎo)航界面,其主體是一個(gè)百度地圖。它可以為用戶進(jìn)行實(shí)時(shí)導(dǎo)航服務(wù)。根據(jù)對(duì)用戶界面顯示內(nèi)容的分析,繪制出用戶界面的草圖,如圖 4-1、4-2所示。首頁(yè)城市景點(diǎn)信息景點(diǎn)簡(jiǎn)介搜索圖 4-1 用戶界面草圖景點(diǎn) 我的收藏基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)7目的地導(dǎo)航 周邊查詢圖 4-2 用戶界面草圖4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)本軟件中有一下數(shù)據(jù)需要存儲(chǔ):用戶信息、景點(diǎn)信息、景點(diǎn)信息收藏、全國(guó)城市名稱??紤]到用戶信息與景點(diǎn)信息的龐大數(shù)據(jù)量,本系統(tǒng)將其存儲(chǔ)在服務(wù)器端的 MySQL 數(shù)據(jù)庫(kù),需要時(shí)再請(qǐng)求;城市名稱數(shù)據(jù)量較少,為減少用戶數(shù)據(jù)流量,將其存儲(chǔ)在手機(jī)的 SQLite 數(shù)據(jù)庫(kù)中;而景點(diǎn)信息收藏則存放于 SD卡的文件中,綜上所述,本系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)如下:在服務(wù)端的 MySQL 數(shù)據(jù)庫(kù)中建立新數(shù)據(jù)庫(kù) maps_traverse,并建立新表,包括用戶信息表 gpsuser 和景點(diǎn)信息表 spot。如表 4-1 和表 4-2 所示。表 4-1 用戶信息表 gpsuser 的結(jié)構(gòu)屬性 數(shù)據(jù)類型 說(shuō)明id Int(11) 自動(dòng)增加的主鍵username varchar(50) 用戶名password varchar(50) 密碼Email varchar(50) 電子郵箱地址registertime varchar(50) 注冊(cè)時(shí)間powerlimits varchar(50) 權(quán)限state varchar(50) 用戶登錄狀態(tài)表 4-2 景點(diǎn)信息表 spot 的結(jié)構(gòu)屬性 數(shù)據(jù)類型 說(shuō)明id Int(11) 自動(dòng)增加的主鍵name varchar(45) 景點(diǎn)名稱8address varchar(45) 地址phone varchar(45) 咨詢電話imageurl varchar(45) 圖片路徑Introduction TEXT 簡(jiǎn)介L(zhǎng)at DOUBLE 經(jīng)度Lng DOUBLE 緯度Fares FLOAT 門(mén)票價(jià)city varchar(45) 所在城市編號(hào)btime TIME 始開(kāi)放時(shí)間ntime TIME 終開(kāi)放時(shí)間Favourableinfo varchar(45) 優(yōu)惠信息由于全國(guó)城市的分布是相對(duì)固定的,為了減少操作的麻煩,本軟件直接將整個(gè)城市數(shù)據(jù)庫(kù) city.s3db 導(dǎo)入到 Android 項(xiàng)目的 res/raw 目錄中,直接使用。其中包括省表 province,城市表 city。如表 4-3 和表 4-4 所示。表 4-3 省表 province 的結(jié)構(gòu)屬性 數(shù)據(jù)類型 說(shuō)明_id integer 自動(dòng)增加的主鍵code varchar(6) 省編號(hào)name varchar(60) 省名表 4-2 城市表 city 的結(jié)構(gòu)屬性 數(shù)據(jù)類型 說(shuō)明_id Integer 自動(dòng)增加的主鍵code varchar(6) 城市編號(hào)name varchar(60) 城市名pcode varchar(6) 城市所在省編號(hào)從設(shè)計(jì)思路上考慮,儲(chǔ)存在手機(jī)本地的景點(diǎn)信息收藏?cái)?shù)據(jù)包括 JSON 文本和 JPG 格式的圖片,將其直接寫(xiě)入 SD 卡目錄以指定規(guī)則命名的目錄,此方案可以簡(jiǎn)化對(duì)其的讀寫(xiě)操作。4.3 程序模塊設(shè)計(jì)從功能需求上分析,整個(gè)軟件應(yīng)劃分為首頁(yè)、個(gè)人資料、導(dǎo)航、周邊查詢,四個(gè)模塊。首頁(yè)負(fù)責(zé)景點(diǎn)信息的各類查詢、城市的切換、定位,是整個(gè)軟件的核心;個(gè)人資料模塊負(fù)責(zé)管理用戶的信息以及本地景點(diǎn)數(shù)據(jù);導(dǎo)航負(fù)責(zé)對(duì)用戶進(jìn)行景基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)9點(diǎn)、指定位置的目的地導(dǎo)航;周邊查詢負(fù)責(zé)為用戶提供周邊信息的查詢。系統(tǒng)模塊功能圖如圖 4-2。圖 4-2 系統(tǒng)模塊功能圖5 系統(tǒng)功能模塊設(shè)計(jì)5.1 文件結(jié)構(gòu)與用途在程序開(kāi)發(fā)階段,首先確定“基于 Android 的智能導(dǎo)游系統(tǒng)”的工程名為guidemap。工程源代碼的結(jié)構(gòu)如圖 5-1 所示。為了使源代碼文件的結(jié)構(gòu)更加清晰,guidemap 工程設(shè)置了多個(gè)命名空間,分別用來(lái)保存用戶界面、數(shù)據(jù)庫(kù)、后臺(tái)服務(wù)和工具實(shí)體的源代碼文件,源代碼文件的名稱以及說(shuō)明如表 5-1 所示。智能導(dǎo)航系統(tǒng)首頁(yè)我的資料 導(dǎo)航周邊景點(diǎn)標(biāo)示查詢下載 位置顯示、當(dāng)前城市 收藏景點(diǎn)查詢 收藏景點(diǎn)管理 景點(diǎn)導(dǎo)航 指定地點(diǎn)導(dǎo)航個(gè)人資料管理登錄10圖 5-1 guidemap 工程的源代碼文件表 5-1 guidemap 工程的文件用途說(shuō)明包 名 稱 文 件 名 說(shuō) 明com.guidemap.adapter MyAdapter.java 資源適配器com.guidemap.common Constants.java 公共工具類com.guidemap.control ImageLoader.java 遠(yuǎn)程圖片加載類com.guidemap.control MapApplication.java Applicationcom.guidemap.control MyOverLay.java 景點(diǎn)覆蓋層類com.guidemap.control OverItemT.java 定位覆蓋層類com.guidemap.common Urler.java url 公共類com.guidemap.db DAO.java 城市信息數(shù)據(jù)庫(kù)操作com.guidemap.db DBManager.java SQLite 管理類com.guidemap.entity MyListItem.java 地圖 Item 實(shí)體類com.guidemap.entity Position.java 景點(diǎn)位置實(shí)體類com.guidemap.entity Spot.java 景點(diǎn)信息實(shí)體類com.guidemap.entity User.java 用戶信息實(shí)體類com.guidemap.service GetLocationService.java 后臺(tái)定位 service 類com.guidemap.view CityActivity.java 城市切換選擇com.guidemap.view GuideActivity.java 導(dǎo)航com.guidemap.view MainActivity.java 主框架com.guidemap.view MapsActivity.java 首頁(yè)com.guidemap.view SearchActivity.java 周邊查詢com.guidemap.view SpotActivity.java 景點(diǎn)信息查詢Android 的資源文件保存在/res 的子目錄中。/res/drawable/ 目錄中保存的是圖像文件,/res/values 目錄中保存的是用來(lái)自定義字符串和選項(xiàng)列表的文件;/res/layout 目錄中保存的是布局 XML 文件;/res/raw 保存的是城市信息數(shù)據(jù)庫(kù)基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)11文件;而/res/anim 保存的是動(dòng)畫(huà)效果文件。所有在程序開(kāi)發(fā)階段可以被調(diào)用的資源都保存在這些目錄中 AndroidManifest.xml 文件主要是 Activity、Service 類的注冊(cè)和相關(guān)權(quán)限的許可設(shè)置。5.2 后臺(tái)定位服務(wù)GetLocationService.java 類的后臺(tái)定位服務(wù)是整個(gè)軟件的基礎(chǔ),它綁定在軟件的 Application,從軟件運(yùn)行開(kāi)始,貫穿整個(gè)軟件生命周期的始末。其主要功能是不斷為系統(tǒng)提供實(shí)時(shí)的所在經(jīng)緯度以及所在城市,并存放到公共類Constants 的 City 變量??紤]到本應(yīng)用的用戶對(duì)象主要為國(guó)內(nèi)用戶,在地圖方案上采用了由百度公司開(kāi)發(fā)的免費(fèi)地圖 Baidu Maps API。而定位方案采用了 Baidu Location API,通過(guò)調(diào)用此 API 來(lái)實(shí)時(shí)獲取當(dāng)前位置坐標(biāo)將其存入 Binder 類中,而當(dāng)前城市信息的獲取通過(guò)百度地圖 SDK 中 MKSearch 來(lái)獲取。此模塊的實(shí)現(xiàn)流程圖如圖 5-2 所示。其核心代碼如下。MapApplication app = (MapApplication) this.getApplication();if (app.bMap = null) app.bMap = new BMapManager(getApplication();app.bMap.init(app.MAP_KEY,new MapApplication.MyGeneralListener();12開(kāi)始初始化百度地圖 API監(jiān)聽(tīng)位置變化,并實(shí)時(shí)獲取當(dāng)前坐標(biāo)根據(jù)坐標(biāo)查詢、獲取當(dāng)前地址信息將獲取的信息存入MapApplication結(jié)束圖 5-2 后臺(tái)定位服務(wù)模塊功能流程圖app.bMap.start();final MKSearch mMKSearch = new MKSearch();mMKSearch.init(app.bMap, new GeoCoderParser();Log.d("service map", "started");mLocationListener = new LocationListener() Overridepublic void onLocationChanged(Location location) /Log.d(TAG, "location change");if (location != null) String strLog = String.format("經(jīng)度:%frn" + "緯度:%f", location.getLongitude(),location.getLatitude();pt = new GeoPoint(int)(location.getLatitude() * 1E6), (int)(location.getLongitude() * 1E6);mMKSearch.reverseGeocode(pt);app.setPt(pt);基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)13elseLog.v("Service", "getLocation error!");MKSearch 的查詢結(jié)果在 GeoCoderParse.onGetResult 方法中給出。public void onGetAddrResult(MKAddrInfo arg0, int arg1) if (arg1 != 0) String str = String.format("%d", arg1);Log.d(TAG, str);return;MKGeocoderAddressComponent address = arg0.addressComponents;Constants.CITY=address.city;Log.d(TAG, "Location info:" + address.province + address.city + address.district+address.street+address.streetNumber);5.3 MapApplication.java 類該類是整個(gè)軟件的基石,它綁定了后臺(tái)定位服務(wù),初始化了百度地圖SDK,諸如: BMapManager、MKSearch 、MKSearchListener 等公共類,避免了各 Activity 之間的沖突與提高了系統(tǒng)的流暢性,它還定義了軟件的公共變量。綜上,系統(tǒng)可以通過(guò)它來(lái)控制著整個(gè)軟件的行為。其核心代碼如下。首先,應(yīng)該在 androidmanifest.xml 文件中聲明。綁定后臺(tái)服務(wù)以及初始化百度地圖。MapApplication mApp=this;bMap=new BMapManager(mApp);boolean is=bMap.init(MAP_KEY, new MyGeneralListener();if(is)14/設(shè)置定位監(jiān)聽(tīng)時(shí)間間隔bMap.getLocationManager().setNotifyInternal(5, 2);bMap.getLocationManager().enableProvider(MKLocationManager.MK_NETWORK_PROVIDER);bMap.getLocationManager().enableProvider(MKLocationManager.MK_GPS_PROVIDER);elseToast.makeText(this, "地圖DSK啟動(dòng)失敗" ,Toast.LENGTH_LONG).show();final Intent intent=new Intent();intent.setAction("com.guidemap.ss"); bindService(intent, scon, Service.BIND_AUTO_CREATE);其中,MyGeneralListener()類的作用在于在初始化百度地圖 SDK時(shí)檢測(cè)錯(cuò)誤的發(fā)生,并為用戶提供提醒服務(wù)。用于為用戶提供導(dǎo)航、周邊信息搜索的MKSearch關(guān)鍵代碼如下(由于篇幅問(wèn)題,此處只寫(xiě)出了代碼框架,具體流程在導(dǎo)航、周邊信息查詢模塊處給出)。MKSearch mKSearch=new MKSearch();mKSearch.init(app.bMap, new MKSearchListener() Overridepublic void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) Overridepublic void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) Overridepublic void onGetSuggestionResult(MKSuggestionResult arg0, int arg1)Overridepublic void onGetRGCShareUrlResult(String arg0, int arg1)Overridepublic void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) Overridepublic void onGetPoiDetailSearchResult(int arg0, int arg1) 基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)15Overridepublic void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) Overridepublic void onGetBusDetailResult(MKBusLineResult arg0, int arg1)Overridepublic void onGetAddrResult(MKAddrInfo arg0, int arg1) );5.4 登錄模塊登錄模塊是整個(gè)系統(tǒng)的門(mén)戶,在現(xiàn)實(shí)中它的功能是否健全關(guān)系到整個(gè)系統(tǒng)給用戶的第一印象。在這個(gè)系統(tǒng)中,登錄模塊主要為用戶提供賬號(hào)登錄與注冊(cè),記住最后一次賬號(hào)與密碼,對(duì)系統(tǒng)進(jìn)行 GPS、WIFI 等狀態(tài)的檢測(cè),以及系統(tǒng)權(quán)限等功能。其界面圖如圖 5-3 所示。圖 5-3 登錄界面圖 當(dāng)用戶打開(kāi)系統(tǒng),首先便進(jìn)入這個(gè)登錄界面。假如用戶上一次成功登錄并勾選記住密碼,則系統(tǒng)會(huì)自動(dòng)為用戶填上上一次登錄所用賬號(hào)密碼。與此同時(shí),該模塊后臺(tái)會(huì)自動(dòng)檢測(cè)當(dāng)前手機(jī)的 GPS、WIFI 網(wǎng)絡(luò)狀態(tài),因?yàn)橄到y(tǒng)所實(shí)現(xiàn)的功能是基于上述兩種功能的,假如檢測(cè)到上述狀態(tài)為關(guān)閉時(shí)會(huì)提示打開(kāi)。當(dāng)用戶輸入正確賬號(hào)信息時(shí),系統(tǒng)便會(huì)跳轉(zhuǎn)至系統(tǒng)主界面。在注冊(cè)功能中,用戶可以填寫(xiě)賬號(hào)、密碼、E-mail 等信息,注冊(cè)成功的條件是輸入的賬號(hào)不重復(fù),各類16輸入格式正確。其中,登錄的功能流程圖如圖 5-4 所示。圖 5-4 登錄功能流程圖 5.5 首頁(yè)模塊由上述可知,首頁(yè)模塊是軟件功能的核心,正是它奠定了軟件的屬性:智能導(dǎo)游。它由兩個(gè)核心界面構(gòu)成:主界面、景點(diǎn)信息界面。其對(duì)應(yīng)的界面圖如圖 5-5 所示。開(kāi)始服務(wù)端檢測(cè)賬號(hào)數(shù)據(jù)并將結(jié)果反饋至系統(tǒng)登錄,向服務(wù)端發(fā)送賬號(hào)信息讀取上一次記錄并填上對(duì)應(yīng)的框存在上一次賬號(hào)記錄?登錄失敗用戶輸入賬號(hào)密碼的信息登錄成功賬號(hào)密碼正確?結(jié)束NNYY基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)17圖 5-5 首頁(yè)界面圖首先,用戶一旦登錄成功后,系統(tǒng)就會(huì)根據(jù)定位信息向服務(wù)端的 MySQL 數(shù)據(jù)庫(kù)請(qǐng)求當(dāng)?shù)氐木包c(diǎn)數(shù)據(jù),并將其顯示在地圖上。此后,用戶可以根據(jù)需要,使用以下功能:(1) 、模糊搜索,在輸入框中輸入用戶需要了解的景點(diǎn)名稱,系統(tǒng)就會(huì)將其單獨(dú)顯示出來(lái)然后將其置于地圖中心;(2) 、切換城市,系統(tǒng)默認(rèn)城市是用戶當(dāng)前所在城市,如果需要,用戶可以實(shí)時(shí)切換城市以了解更多景點(diǎn);(3) 、查詢、下載景點(diǎn)詳細(xì)信息。其模塊功能流程圖如圖5-6所示。為了更好地處理想 Web 站點(diǎn)請(qǐng)求,包括處理 Session、Cookie 等細(xì)節(jié)問(wèn)題,Apache 開(kāi)源組織提供了一個(gè) HttpClient 項(xiàng)目,作為一個(gè)簡(jiǎn)單的 Http 客戶端(而不是瀏覽器) 。它可以用于發(fā)送 HTTP 請(qǐng)求,接受 HTTP 響應(yīng) 8。由于本系統(tǒng)需要從服務(wù)端遠(yuǎn)程獲取景點(diǎn)信息,我采用這個(gè) Apache HttpClient,數(shù)據(jù)格式采用 JSON,從服務(wù)端獲取信息的核心方法如下。public static String doGet(String url,Context context) /判斷網(wǎng)絡(luò)if(checkNetwork(context)=false)return null;elseHttpGet httpget =new HttpGet(url);BasicHttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 5000);18開(kāi)始初始化百度地圖N標(biāo)注景點(diǎn)向后臺(tái)定位服務(wù)請(qǐng)求實(shí)時(shí)位置信息位置為空?Y獲取上一次定位的信息根據(jù)位置信息向服務(wù)端請(qǐng)求景點(diǎn)數(shù)據(jù)結(jié)束圖 5-6 景點(diǎn)信息標(biāo)注功能流程圖HttpConnectionParams.setSoTimeout(httpParams, 5000); HttpClient httpcliend=new DefaultHttpClient(httpParams);String result=new String();try HttpResponse httpresponse=httpcliend.execute(httpget);HttpEntity httpentity= httpresponse.getEntity();InputStream inputstream= httpentity.getContent();BufferedReader buff=new BufferedReader(new InputStreamReader(inputstream);String line=new String();while(line=buff.readLine()!=null)基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)19result=result+line;/System.out.println(result); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();result=null;return result;根據(jù)信息將景點(diǎn)標(biāo)注:public OverItemT(Drawable marker, MapsActivity context, ArrayList slist) super(boundCenterBottom(marker);/ TODO Auto-generated constructor stubthis.marker=marker;this.slist=slist;this.ma=context;/根據(jù)gplist 來(lái)制作OverlayItemList lgp=new ArrayList();OverlayItem ot;for(Spot spot:slist)Log.e("getLayer", String.valueOf(spot.getPoi().getLat()+"+"+String.valueOf(spot.getPoi().getLng();lgp.add(new GeoPoint(int)(spot.getPoi().getLat()*1e6),(int)(spot.getPoi().getLng()*1e6); for(int i=0;i<lgp.size();i+)GeoPoint gp=(GeoPoint)lgp.get(i); if("null".equals(slist.get(i).getFavourableinfo()ot=new OverlayItem(gp,slist.get(i).getName()+"(優(yōu)惠景點(diǎn))","gpoint"+i);elseot=new OverlayItem(gp,slist.get(i).getName(),"gpoi20nt"+i);if(i=0)setFirstSpot(gp);mGeoList.add(ot); populate();/更新5.6 導(dǎo)航模塊導(dǎo)航模塊,顧名思義,它的設(shè)計(jì)目標(biāo)是為游客提供景點(diǎn)的導(dǎo)航服務(wù),它彌補(bǔ)了人工導(dǎo)游難以隨時(shí)為旅游指路的缺點(diǎn),豐富了導(dǎo)游的服務(wù),讓游客可以更加方便地在旅游區(qū)瀏覽。導(dǎo)航模塊界面如圖 5-7 所示。圖 5-7 導(dǎo)航模塊界面圖此模塊設(shè)計(jì)了兩種功能:任意地點(diǎn)的導(dǎo)航和指定景點(diǎn)的導(dǎo)航。而每種導(dǎo)航功能可以為旅游查詢出三種路徑:公交車、自駕、步行。在導(dǎo)航方案的選擇上,本模塊采用了基于 Baidu Maps API 的 MKSearch 與 MKSearchListener。當(dāng)用戶將搜索條件輸入系統(tǒng)時(shí),系統(tǒng)即調(diào)用 MKSearch 中的 TransitSearch(String city,MKplanNode start, MKplanNode end) 或 WalkingSearch(String startC ity,MK planNode start, String endCity,MKplanNode end)發(fā)起搜索,得到信息后為用戶在地圖顯示出路徑。導(dǎo)航模塊功能流程圖如圖 5-8 所示?;?Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)21圖 5-8 導(dǎo)航模塊功能流程圖5.7 周邊信息查詢模塊周邊信息查詢模塊為用戶提供了對(duì)某城市一定范圍內(nèi)的諸如餐飲、衛(wèi)生間、加油站、酒店等豐富信息等關(guān)鍵詞的查詢。周邊信息查詢模塊界面如圖 5-9 所示。根據(jù)設(shè)計(jì),用戶可以指定搜索中心點(diǎn)(定位或自定義) 、范圍、搜索的Point 類型,例如:肇慶學(xué)院圖書(shū)館、范圍 1000m、類型酒店,系統(tǒng)即可為用戶查詢到在肇慶學(xué)院圖書(shū)館周邊 1000m 范圍內(nèi)的酒店。如導(dǎo)航模塊一般,采用了基于 Baidu Maps API 的 MKSearch 與MKSearchListener。當(dāng)用戶將搜索條件輸入系統(tǒng)時(shí),系統(tǒng)即調(diào)用 MKSearch 中的開(kāi)始初始化百度地圖 API實(shí)時(shí)從 MapApplication中獲取位置信息獲取用戶輸入的搜索條件調(diào)用 MKSearch 查詢路徑信息,并返回至 MKSearchListener結(jié)束從 MKSearchListener 獲取路徑信息,地圖顯示22poiSearchNearby(String key,GeoPoint ptLB,int radius),方法發(fā)起周邊 Point 搜索。圖 5-9 周邊信息查詢模塊界面圖周邊信息查詢模塊功能流程圖如圖 5-10 所示。開(kāi)始初始化百度地圖 API實(shí)時(shí)從 MapApplication中獲取位置信息調(diào)用 MKSearch 搜索周邊 Point信息,并返回至MKSearchListener結(jié)束從 MKSearchListener 獲取周邊 Point 信息,地圖顯示獲取用戶輸入的搜索條件基于 Android 的驢友導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)23圖 5-10 周邊信息查詢模塊功能流程圖5.8 個(gè)人資料模塊個(gè)人資料管理模塊為用戶提供了個(gè)人信息查詢更新、個(gè)人景點(diǎn)收藏的查詢與管理功能,其主要布局界面有兩個(gè),如圖 5-11 所示。圖 5-11 個(gè)人資料模塊界面圖當(dāng)用戶選中“我的”選項(xiàng)卡后,進(jìn)入此模塊主界面。用戶可以在此模塊查看的個(gè)人賬號(hào)信息,包括賬號(hào)、郵箱、注冊(cè)時(shí)間、賬號(hào)權(quán)限,并可以根據(jù)需要進(jìn)行包括賬號(hào)名、郵箱、密碼在內(nèi)的信息修改,而在我的收藏方面,界面以Listview 方式羅列了用戶收藏在本地的景點(diǎn)信息,可以讓用戶得以查看自己收藏到本地的景點(diǎn)信息,同時(shí)也可以通過(guò)特定手勢(shì)對(duì)其進(jìn)行刪除操作。模塊主界面的個(gè)人資料信息刷新、信息獲取與更新等由一個(gè)后臺(tái)核心線程進(jìn)行維護(hù)。個(gè)人資料管理線程功能流程圖如圖 5-12 所示。在個(gè)人收藏功能方面,景點(diǎn)信息在首頁(yè)模塊中下載,以 JSON 格式的 TXT文件方式儲(chǔ)存在手機(jī) SD 卡中以項(xiàng)目名命名目錄下,文件夾則以景點(diǎn)的 ID 命名。在查看時(shí),該模塊會(huì)根據(jù)景點(diǎn) ID 搜索到指定目錄的 TXT 文件,并加以解析,然后以 LisView 方式將其可視化。此時(shí),用戶則可以根據(jù)需要,按照指定手勢(shì)對(duì)信息進(jìn)行查詢、刪除。例如,在 ListView 的 Item 中滑動(dòng)手勢(shì),將每個(gè) Item的刪除按鈕可視化,按下即可實(shí)現(xiàn)對(duì)信息的刪除。個(gè)人收藏功能流程圖如圖 5-13 所示。24開(kāi)始從后臺(tái)定位服務(wù)獲取地址信息需要用戶信息?向服務(wù)端 MySQL 數(shù)據(jù)庫(kù)請(qǐng)求用戶信息數(shù)據(jù)Y需要更新用戶信息?Y更新服務(wù)端 MySQL 數(shù)據(jù)庫(kù)指定用戶信息刷新 UINN結(jié)束圖 5-12 個(gè)人資料管理

注意事項(xiàng)

本文(基于android的智能導(dǎo)航系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn))為本站會(huì)員(QQ加14****9609)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!