畢業(yè)設(shè)計(jì)(論文)-基于手機(jī)定位的交通信息查詢軟件的設(shè)計(jì)與實(shí)現(xiàn).doc_第1頁
畢業(yè)設(shè)計(jì)(論文)-基于手機(jī)定位的交通信息查詢軟件的設(shè)計(jì)與實(shí)現(xiàn).doc_第2頁
畢業(yè)設(shè)計(jì)(論文)-基于手機(jī)定位的交通信息查詢軟件的設(shè)計(jì)與實(shí)現(xiàn).doc_第3頁
畢業(yè)設(shè)計(jì)(論文)-基于手機(jī)定位的交通信息查詢軟件的設(shè)計(jì)與實(shí)現(xiàn).doc_第4頁
畢業(yè)設(shè)計(jì)(論文)-基于手機(jī)定位的交通信息查詢軟件的設(shè)計(jì)與實(shí)現(xiàn).doc_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于手機(jī)定位的交通信息查詢軟件的設(shè)計(jì)與實(shí)現(xiàn)學(xué) 院:專 業(yè):姓 名:指導(dǎo)老師:信息學(xué)院信息工程0000學(xué) 號(hào):職 稱:00000000000中國珠海二一五年四月北京理工大學(xué)珠海學(xué)院2011屆本科生畢業(yè)設(shè)計(jì)或論文誠信承諾書本人鄭重承諾:本人承諾呈交的畢業(yè)設(shè)計(jì)基于手機(jī)定位的交通信息查詢軟件的設(shè)計(jì)與實(shí)現(xiàn)是在指導(dǎo)教師的指導(dǎo)下,獨(dú)立開展研究取得的成果,文中引用他人的觀點(diǎn)和材料,均在文后按順序列出其參考文獻(xiàn),設(shè)計(jì)使用的數(shù)據(jù)真實(shí)可靠。本人簽名: 日期: 2015年 04月 28日II基于手機(jī)定位的交通信息查詢軟件的設(shè)計(jì)與實(shí)現(xiàn)摘要隨著人們生活水平的提高,出行坐車成為日常生活中不可缺少的一部分。而乘往目的地的線路需要隨時(shí)掌握,為了能在手機(jī)上隨時(shí)查詢交通線路,針對(duì)基于位置的服務(wù)在旅游、查詢路線、移動(dòng)終端定位服務(wù)等場合的廣泛應(yīng)用,開發(fā)了一個(gè)基于Android平臺(tái)的交通線路手機(jī)查詢軟件,它基于android平臺(tái)開發(fā)的,利用Eclipse開發(fā)工具,主要以JAVA語言編寫,以及Android的一些控件,利用Android豐富的API,通過申請(qǐng)Map API Key實(shí)時(shí)調(diào)用百度 Map,設(shè)計(jì)并實(shí)現(xiàn)地圖的縮放、視圖的切換等功能完成了公交、地鐵線路、地圖的查詢、指南針及交通擁堵情況查看的功能。關(guān)鍵字:Android平臺(tái) 移動(dòng)終端定位服務(wù) 手機(jī)交通查詢Design and implementation of traffic information query software based on mobile phone locationAbstractWith the improvement of peoples living standard, car travel has become an indispensable part of daily life. The destination line needs to know, in order to check traffic lines on the phone, widely used for location based services in tourism, query line, mobile location services and other occasions, the development of a traffic line Android platform hand machine based on the query software, which is based on Android platform development. The use of Eclipse development tools, mainly in the JAVA language, and some Android controls, the use of Android rich API, Map API Key call in real time through the application of Baidu Map, Zoom, view switch function design and Realization of map completion of the bus, subway lines, map query, compass and traffic congestion checking function.Keywords: Android mobile location services mobile phone traffic query目錄誠信承諾書2摘要3Abstract41 前言61.1 研究背景和意義61.2 研究目標(biāo)61.3 研究內(nèi)容61.4 技術(shù)要求71.5 國內(nèi)外的發(fā)展概況72 軟件方案論證92.1 方案一:基于CellID的定位技術(shù)92.2 方案二:采用android手機(jī)自帶GPS定位功能93 軟件設(shè)計(jì)思路103.1 UI界面設(shè)計(jì)概述103.2 功能模塊分析103.3 模塊結(jié)構(gòu)圖113.4 程序流程圖114 應(yīng)用軟件實(shí)現(xiàn)124.1 程序界面的實(shí)現(xiàn)124.2 我的地圖功能的實(shí)現(xiàn)154.3 實(shí)時(shí)定位功能的實(shí)現(xiàn)174.4 地圖標(biāo)記及地點(diǎn)搜索功能的實(shí)現(xiàn)18參考文獻(xiàn)29致謝30附錄31附錄37北京理工大學(xué)珠海學(xué)院2011屆本科生畢業(yè)設(shè)計(jì)或論文1 前言1.1 研究背景和意義隨著經(jīng)濟(jì)對(duì)外開放水平的提高,全國工業(yè)化、城市化、機(jī)動(dòng)化日趨加速,城市的交通問題日益突出,交通擁堵頻繁發(fā)生。發(fā)展智能交通系統(tǒng)是解決城市交通問題的有效途徑之一。近年來,隨著計(jì)算機(jī)、通信和信息技術(shù)的發(fā)展,智能交通系統(tǒng)已得到大量的應(yīng)用,通過線圈、紅外、超聲波、視頻等檢測器,以及GPS定位等技術(shù)構(gòu)建的各種交通數(shù)據(jù)采集系統(tǒng)已被大量應(yīng)用。雖然它們都有各自的優(yōu)點(diǎn),但每種方法所得到的數(shù)據(jù)本身包含的特征都有很大的局限性,所以不可能只用一種檢測技術(shù)得到所有的交通信息,不可能只用一種信息采集方法滿足現(xiàn)代城市智能交通所需要的所有數(shù)據(jù)。考慮到手機(jī)的迅速普及,同時(shí)手機(jī)本身的功能越來越多,本文將移動(dòng)通信技術(shù)與傳統(tǒng)交通信息采集技術(shù)結(jié)合起來的,就是利用手機(jī)定位功能相結(jié)合進(jìn)行交通信息的采集技術(shù),從而得到比其他單一方法采集到更加豐富的信息,既包含靜態(tài)信息、動(dòng)態(tài)信息,又包含各類人員的各種出行行為信息。將這些信息同其他方法采集到的信息結(jié)合,得到更加有用的信息。這些信息經(jīng)過處理后得到有效的可直接利用的信息,如交通狀況信息、出行行為信息等,為進(jìn)一步的交通規(guī)劃和交通控制與管理工作提供有力的依據(jù)。 Android作為一款新型智能手機(jī)操作系統(tǒng),具有開放性好、軟硬件功能擴(kuò)展性強(qiáng)的特點(diǎn),開發(fā)基于Android的GPS應(yīng)用潛力巨大本文利用Android智能手機(jī)自帶的GPS定位功能,獲取地理坐標(biāo)數(shù)據(jù),實(shí)時(shí)將定位數(shù)據(jù)通過GPRS數(shù)據(jù)網(wǎng)絡(luò)傳送至監(jiān)控平臺(tái),平臺(tái)根據(jù)使用手機(jī)的人員所到達(dá)區(qū)域。建立了基于手機(jī)的交通信息采集系統(tǒng),列出系統(tǒng)的物理結(jié)構(gòu)、軟件結(jié)構(gòu)和系統(tǒng)工作流程。在深入分析手機(jī)用戶出行特性的基礎(chǔ)上,借鑒傳統(tǒng)人工調(diào)查法的優(yōu)點(diǎn),設(shè)計(jì)了基于手機(jī)的用戶出行信息采集中手機(jī)嵌入式菜單的內(nèi)容,并且利用安卓系統(tǒng)開發(fā)了交通出行行為信息智能收集嵌入式軟件,實(shí)現(xiàn)手機(jī)軟件采集出行信息功能。通過進(jìn)一步手機(jī)短信息功能與手機(jī)定位技術(shù)的有機(jī)結(jié)合,進(jìn)行交通信息的采集和處理,得到路段平均速度、交通量、交通密度等,并利用以路段平均速度為劃分指標(biāo)的服務(wù)水平進(jìn)行實(shí)時(shí)路況評(píng)估。1.2 研究目標(biāo)設(shè)計(jì)一款可以使用安卓手機(jī)定位和查詢交通路況的智能APP1.3 研究內(nèi)容結(jié)合手機(jī)定位功能,利用基于安卓系統(tǒng)開發(fā)的嵌入式手機(jī)軟件和手機(jī)定位技術(shù),對(duì)手機(jī)用戶交通出行行為信息智能收集與處理進(jìn)行研究與實(shí)現(xiàn)。其主要研究內(nèi)容包括:基于現(xiàn)有交通信息采集技術(shù)的優(yōu)缺點(diǎn)分析,并對(duì)現(xiàn)代通信系統(tǒng)及技術(shù)進(jìn)行總結(jié),建立基于手機(jī)的交通信息采集系統(tǒng);基于手機(jī)APP出行信息采集中嵌入式菜單內(nèi)容設(shè)計(jì);基于安卓出行行為信息智能收集嵌入式軟件實(shí)現(xiàn);手機(jī)定位技術(shù)在交通出行行為信息收集系統(tǒng)中的應(yīng)用研究;利用以路段平均速度為劃分指標(biāo)的服務(wù)水平進(jìn)行實(shí)時(shí)路況評(píng)估。1.4 技術(shù)要求1 手機(jī)用戶能夠向網(wǎng)絡(luò)服務(wù)器發(fā)送查詢指令2 查詢各路段交通行駛暢通狀態(tài)參考信息3 向網(wǎng)絡(luò)報(bào)告用戶當(dāng)前位置交通狀態(tài)信息。1.5 國內(nèi)外的發(fā)展概況Android安卓系統(tǒng)的日益廣泛使用,越來越多人發(fā)現(xiàn)手機(jī)潛在的力量,當(dāng)然手機(jī)應(yīng)用軟件app的朝陽也隨之并進(jìn)。當(dāng)前國內(nèi)外基于位置的服務(wù)開展如火如荼,在手機(jī)上拓展GPS功能己成為移動(dòng)應(yīng)用開發(fā)的一個(gè)熱點(diǎn)。在國外,由于市場需求,移動(dòng)定位技術(shù)得到了快速發(fā)展。同時(shí),無線定位技術(shù)(Location Based Services ,LBS)有著較大的發(fā)展空間和市場利潤。據(jù)統(tǒng)計(jì),GPS手機(jī)的普及將促進(jìn)定位服務(wù)的進(jìn)一步增長。這將在很大程度上推動(dòng)各大無線運(yùn)營商積極開發(fā)并研究手機(jī)定位技術(shù),擴(kuò)展手機(jī)的功能。國外最早使用手機(jī)定位技術(shù)主要進(jìn)行交通信息采集的實(shí)驗(yàn),相關(guān)研究成果如表1.1所示。表1.1 國外手機(jī)定位技術(shù)應(yīng)用于交通數(shù)據(jù)采集的情況年份國家研究機(jī)構(gòu)研究課題/項(xiàng)目技術(shù)類型1999法國交通研究協(xié)會(huì)使用手機(jī)進(jìn)行交通探測結(jié)合時(shí)間提前量的小區(qū)定位技術(shù)(GSM/CELL ID with TA)2000美國Berkeley對(duì)圣弗朗西斯科海灣道路網(wǎng)絡(luò)運(yùn)用手機(jī)作為探測估算行程時(shí)間輔助衛(wèi)星定位(GSM/A-GPS)2002英國ITIS美國專利:浮動(dòng)車交通數(shù)據(jù)建模和處理系統(tǒng)方法及應(yīng)用理論手機(jī)切換(GSM/handover)2002加拿大加拿大交通運(yùn)輸發(fā)展中心和CELL-Loc有限公司手機(jī)定位技術(shù)應(yīng)用于交通監(jiān)控:概念框架研究時(shí)間到達(dá)差(GSM/TDOA)2004荷蘭LogicaCMG公司為荷蘭的North Brabant省提供MTS時(shí)間到達(dá)差(GSM/TDOA)2005加拿大加拿大交通運(yùn)輸發(fā)展中心和Globis Data有限公司使用手機(jī)作為交通探測器的實(shí)驗(yàn)系統(tǒng)開發(fā)研究輔助衛(wèi)星定位(GSM/A-GPS)2008美國加利福尼亞州、Caltrans、諾基亞和Berkeley使用GPS手機(jī)作為交通探測器:一項(xiàng)實(shí)驗(yàn)研究輔助衛(wèi)星定位(GSM/A-GPS)隨著手機(jī)的普及和通信網(wǎng)絡(luò)的成熟,以及手機(jī)功能的不斷升級(jí),利用手機(jī)的定位技術(shù)進(jìn)行交通信息的采集思想逐漸開始應(yīng)用。目前國內(nèi)絕大多省份使用手機(jī)定位均需得到手機(jī)用戶的授權(quán)才能進(jìn)行。截至2011年底,國內(nèi)市場上的手機(jī)位置服務(wù)主要包括:電信CDMA手機(jī)GPS One定位(Cell ID、AGPS和AFLT綜合應(yīng)用技術(shù))、移動(dòng)手機(jī)位置服務(wù)、移動(dòng)A-GPS終端、聯(lián)通的AGPS。目前國內(nèi)手機(jī)定位軟件基本上是基于智能手機(jī)開發(fā)的,軟件可以應(yīng)用在Symbian、Android、Windows Mobile、Iphone等操作系統(tǒng)的手機(jī)上,其中Adnroid操作系統(tǒng)的手機(jī)用戶數(shù)量最多。2012年7月數(shù)據(jù),Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場59%的份額,中國市場占有率為76.7%。LURKER軟件支持所有Adnroid操作系統(tǒng)手機(jī)。目前來看,手機(jī)定位除了受到網(wǎng)絡(luò)帶寬限制之外,還受到諸多因素的阻礙。其中最重要的一點(diǎn)是,我國地理信息系統(tǒng)的建設(shè)和POI數(shù)據(jù)的采集、加工、整理、更新,是個(gè)相當(dāng)困難而艱巨的任務(wù)。無論是地理信息還是周邊的餐館、銀行等綜合服務(wù)信息,都處于高度變化狀態(tài),使得做GIS和POI的公司難度加大,也無形中提高了SP進(jìn)入該領(lǐng)域的門檻。用戶隱私也是定位服務(wù)最容易引發(fā)爭議的問題,也是阻礙用戶消費(fèi)的重要因素。針對(duì)定位服務(wù)的敏感性,運(yùn)營商需要在信用管理、信息安全、個(gè)人隱私保護(hù)等方面制定完善的流程體系、管理體系、認(rèn)證體系和管理規(guī)范。手機(jī)終端依然成為制約產(chǎn)業(yè)發(fā)展的最后一個(gè)環(huán)節(jié)。利用GPS技術(shù)的位置服務(wù)需要終端的大力支持,否則業(yè)務(wù)拓展也只是空話。目前能夠支持GPS one技術(shù)的終端在國內(nèi)還比較少。中國聯(lián)通推出的語音導(dǎo)航業(yè)務(wù),也只有三星、LG等少數(shù)終端手機(jī)提供支持。而且居高不下的終端價(jià)格,也阻礙了定位業(yè)務(wù)的普及和推廣。2 軟件方案論證2.1 方案一:基于CellID的定位技術(shù)采用CellID的定位技術(shù)實(shí)現(xiàn)簡單,不需要移動(dòng)臺(tái)提供任何定位測量信息,也無需對(duì)現(xiàn)有網(wǎng)絡(luò)進(jìn)行改動(dòng),只需要在網(wǎng)絡(luò)側(cè)增加簡單的定位流程處理即可,目前這種定位技術(shù)己經(jīng)在各移動(dòng)網(wǎng)絡(luò)中廣泛使用。該技術(shù)又稱起源蜂窩小區(qū)(Cell OfOrigin)定位技術(shù)。每個(gè)小區(qū)都有自己特定的小區(qū)標(biāo)識(shí)號(hào)(CellID),當(dāng)進(jìn)入某-d,區(qū)時(shí),移動(dòng)終端要在當(dāng)前小區(qū)進(jìn)行注冊(cè),系統(tǒng)的數(shù)據(jù)中就會(huì)有相應(yīng)的小區(qū)ID標(biāo)識(shí)。系統(tǒng)根據(jù)采集到的移動(dòng)終端所處小區(qū)的標(biāo)識(shí)移動(dòng)通信網(wǎng)絡(luò)的定位技術(shù)號(hào)來確定移動(dòng)終端用戶的位置。基于CellID的定位方法中移動(dòng)用戶的位置由其服務(wù)基站的位置信息確定。位置信息可以是小區(qū)ID,服務(wù)區(qū)域ID或與服務(wù)小區(qū)有關(guān)的位置坐標(biāo)。由于該技術(shù)根據(jù)移動(dòng)臺(tái)所處的CellID來確定用戶的位置,因此它的定位精度取決于蜂窩小區(qū)的半徑大小,從幾百米到幾十千米不等。在農(nóng)村地區(qū),小區(qū)的覆蓋范圍很大,所以定位精度很差。在城區(qū),小區(qū)覆蓋范圍較小,定位精度最大可提高為幾百米。其他技術(shù)相比,基于CellID的定位方法精度最低,當(dāng)需要精度較高的定位服務(wù)時(shí),CellID就無法滿足要求了。2.2 方案二:采用android手機(jī)自帶GPS定位功能在手機(jī)中集成GPS,可以非常輕松地實(shí)現(xiàn)車輛的自主導(dǎo)航,用戶將不再因?yàn)槊月返⒄`自己的行程,便捷而實(shí)用。越來越多帶GPS功能的手機(jī)反過來將會(huì)推動(dòng)位置服務(wù)(LBS)的發(fā)展。另一個(gè)促使在手機(jī)中集成GPS功能的因素是政策的導(dǎo)向,國家的政策大力支持促進(jìn)的手機(jī)GPS的發(fā)展。GPS芯片的接收靈敏度越高,搜星速度越快,功耗越低,使用就會(huì)越方便,用戶使用就會(huì)越廣泛。但是GPS的信號(hào)非常弱,任何干擾都會(huì)影響到它的接收效果和產(chǎn)品性能。因此GPS產(chǎn)品的設(shè)計(jì)優(yōu)化程度對(duì)產(chǎn)品的性能會(huì)產(chǎn)生極大的影響,從而影響用戶對(duì)GPS產(chǎn)品的認(rèn)可和接受程度。GPS系統(tǒng)的成本包括GPS模塊、GPS處理器等相關(guān)元器件和地圖的價(jià)格,導(dǎo)致GPS系統(tǒng)的成本和價(jià)格相對(duì)較高。不過隨著成本的降低和技術(shù)的進(jìn)步,許多終端廠商和手機(jī)設(shè)計(jì)企業(yè)正在推出相應(yīng)的方案和產(chǎn)品,手機(jī)GPS芯片和解決方案呈現(xiàn)出軟硬方案之爭,功耗和接收靈敏度成為關(guān)注重點(diǎn)。最新的手機(jī)定位技術(shù)是AGPS(Assisted GPS:輔助全球衛(wèi)星定位系統(tǒng)),它利用通訊基站信息來輔助GPS模塊進(jìn)行手機(jī)定位,主要改進(jìn)之處在于當(dāng)室內(nèi)沒有GPS信號(hào)的地方利用基站定位來提供位置信息,縮小定位盲區(qū);與純GPS和純基站定位相比,AGPS有更高的精度,一般可精確到10米;在GPS模塊啟動(dòng)搜星階段,通過基站定位來確定定位手機(jī)的大概位置,通過預(yù)存在手機(jī)中的GPS衛(wèi)星星歷圖,可以快速搜星,把搜星階段的時(shí)間由2-3分鐘,縮短到10秒鐘左右。由于GPS技術(shù)所具有的全天候、高精度和自動(dòng)測量的特點(diǎn),作為先進(jìn)的測量手段和新的生產(chǎn)力,已經(jīng)融入了國民經(jīng)濟(jì)建設(shè)、國防建設(shè)和社會(huì)發(fā)展的各個(gè)手機(jī)定位軟件應(yīng)用領(lǐng)域。在本設(shè)計(jì)中采用的是第二種方案。3 軟件設(shè)計(jì)思路3.1 UI界面設(shè)計(jì)概述UI即User Interface(用戶界面)的簡稱。UI設(shè)計(jì)則是指對(duì)軟件的人機(jī)交互、操作邏輯、界面美觀的整體設(shè)計(jì)。好的UI設(shè)計(jì)不僅是讓軟件變得有個(gè)性有品味,還要讓軟件的操作變得舒適、簡單、自由、充分體現(xiàn)軟件的定位和特點(diǎn)。UI的可用性包括一下幾點(diǎn):1 可理解軟件要為用戶使用,用戶必須可以理解軟件各元素對(duì)應(yīng)的功能。如果不能為用戶理解,那么需要提供一種非破壞性的途徑,使得用戶可以通過對(duì)該元素的操作,理解其對(duì)應(yīng)的功能。例如:刪除操作元素。用戶可以點(diǎn)擊刪除操作按鈕,提示用戶如何刪除操作或者是否確認(rèn)刪除操作,用戶可以更加詳細(xì)的理解該元素對(duì)應(yīng)的功能,同時(shí)可以取消該操作。2 可達(dá)到用戶是交互的中心,交互元素對(duì)應(yīng)用戶需要的功能。因此交互元素必須可以被用戶控制。用戶可以用諸如鍵盤、鼠標(biāo)之類的交互設(shè)備通過移動(dòng)和觸發(fā)已有的交互元素達(dá)到其它在此之前不可見或者不可交互的交互元素。要注意的是交互的次數(shù)會(huì)影響可達(dá)到的效果。當(dāng)一個(gè)功能被深深隱藏(一般來說超過4層)那么用戶達(dá)到該元素的幾率就大大降低了??蛇_(dá)到的效果也同界面設(shè)計(jì)有關(guān)。參考簡單導(dǎo)向原則,過于復(fù)雜的界面會(huì)影響可達(dá)到的效果。3 可控制軟件的交互流程,用戶可以控制。控制功能的執(zhí)行流程,用戶可以控制。如果確實(shí)無法提供用戶控制,則用能被目標(biāo)用戶理解的方式提示用戶。3.2 功能模塊分析本文將實(shí)現(xiàn)一個(gè)基于android手機(jī)定位的交通信息查詢軟件,該程序軟件可以如下功能。1 我的地圖功能:顯示一個(gè)地方的衛(wèi)星圖、街道圖、交通圖和對(duì)地圖進(jìn)行放大縮小。當(dāng)用戶想查看一個(gè)地方的街道情況和交通情況或更清晰地圖時(shí),可以使用此系列功能來進(jìn)行查看。2 實(shí)時(shí)定位功能:這是每款軟件的基礎(chǔ)功能,也是核心功能,該功能利用GPS原理對(duì)自己的位置進(jìn)行定位,可以隨時(shí)查詢手機(jī)用戶當(dāng)前的位置,當(dāng)手機(jī)用戶隨便到一個(gè)地方時(shí),可以使用此功能來確定自己當(dāng)前所在的位置。3 地圖標(biāo)記功能:支持多地點(diǎn)的標(biāo)記,用戶可以根據(jù)自己的需求對(duì)相關(guān)地點(diǎn)進(jìn)行標(biāo)識(shí)。4 地點(diǎn)搜索功能:該應(yīng)用程序還具有地點(diǎn)搜索功能,如果輸入某一關(guān)鍵字,地圖將在市區(qū)內(nèi)搜索帶有次關(guān)鍵字的所有地點(diǎn),顯示用戶需要查看的地方的地圖,當(dāng)用戶想了解某個(gè)地方時(shí),可以使用此功能來進(jìn)行查看。3.3 模塊結(jié)構(gòu)圖本軟件的各個(gè)功能模塊的結(jié)構(gòu)圖如圖3.1所示。交通情況開始我的地圖實(shí)時(shí)定位地圖標(biāo)記地點(diǎn)搜索街道顯示圖3.1 模塊結(jié)構(gòu)圖否 否 是 是 否 是 否 否 是 是開始我的地圖實(shí)時(shí)定位地圖標(biāo)記地點(diǎn)搜索街道顯示交通情況我的位置?放大縮小搜索路線?放大縮???實(shí)時(shí)路況?更新3.4 程序流程圖圖3.2 程序流程圖4 應(yīng)用軟件實(shí)現(xiàn)4.1 程序界面的實(shí)現(xiàn)在資源文件中,新建一個(gè)名為“MainActivity”的java文件,然后再activity_main.xml中定義界面的相關(guān)布局。首先在res/value目錄下的strings.xml文件中添加一些需要用到的字符串的定義,代碼如下: GPS導(dǎo)航 /定義軟件APP的名稱 Settings Hello world!然后在res/menu目錄下的main.xml文件中需要定義各功能的菜單,用來觸發(fā)個(gè)模塊功能的運(yùn)行,其代碼編寫如下: android:id=+id/plan android:icon=android:drawable/ic_menu_directions android:orderInCategory=1 android:title=路線 android:id=+id/view android:icon=android:drawable/ic_menu_sort_by_size android:orderInCategory=2 android:title=圖層 android:id=+id/location android:icon=android:drawable/ic_menu_myplaces android:orderInCategory=3 android:title=我的位置 android:id=+id/clear android:icon=android:drawable/ic_menu_revert android:orderInCategory=4 android:title=清空結(jié)果 android:id=+id/more android:icon=android:drawable/ic_menu_more android:orderInCategory=5 android:title=關(guān)于 其次在res/layout目錄下的分別建立route.xml、search_city和search_nearby文件,這三個(gè)文件分別用來實(shí)現(xiàn)路線搜索、具體地點(diǎn)搜索和周邊模糊搜索。如Route.xml需要在某省市內(nèi)搜索地點(diǎn)并到達(dá)該處,因此需要出發(fā)地點(diǎn)、到達(dá)省市及具體地點(diǎn)三個(gè)編輯文本框(即EditText控件),此外還需要一些只讀文本(即TextView)來提示用戶在編輯文本框需要輸入的內(nèi)容,其代碼編寫如下: EditText android:id=+id/start_city android:layout_width=wrap_content android:layout_height=wrap_content android:text=廣東 另外還需要根據(jù)用戶出行需求,定義路線搜索類型,如步行路線、公交路線或自駕路線,因此添加代碼如下: 在search_city和search_nearby文件中也類似,在某省市內(nèi)搜索某地點(diǎn),因此需要省市范圍及具體地點(diǎn)兩個(gè)編輯文本框和一些只讀文本(即TextView)來提示用戶在編輯文本框需要輸入的內(nèi)容。在本設(shè)計(jì)中,search_city文件定義的兩個(gè)編輯文本框分別是“廣州”和“KTV”,只讀文本為“市找”,那么連起來讀則是“廣州市找KTV”,因此用戶可以很明顯的知道在各個(gè)編輯文本框內(nèi)應(yīng)該輸入的內(nèi)容。在本設(shè)計(jì)中,search_nearby文件定義了“我周圍5000米內(nèi)的KTV”,其中“5000”和“KTV”為可編輯文本框,其余為只讀文本框。具體代碼可見附件3、附件4。4.2 我的地圖功能的實(shí)現(xiàn)當(dāng)開啟本軟件時(shí),則自動(dòng)執(zhí)行我的地圖功能顯示廣東省概要衛(wèi)星地圖,相關(guān)代碼如下:/* * 用MapController控制MapView */mapController = mapView.getController();GeoPoint geoPoint = new GeoPoint(int) (23.408004 * 1E6),(int) (113.394818 * 1E6); / 廣東省mapController.setCenter(geoPoint);mapController.setZoom(8);/* * GPRS開關(guān),只需調(diào)用gprsEnable(); */private boolean gprsEnable(boolean bEnable) Object argObjects = null;boolean isOpen = gprsIsOpenMethod(getMobileDataEnabled);if (isOpen = !bEnable) setGprsEnable(setMobileDataEnabled, bEnable);return isOpen;private boolean gprsIsOpenMethod(String methodName) Class cmClass = mCM.getClass();Class argClasses = null;Object argObject = null;Boolean isOpen = false;try Method method = cmClass.getMethod(methodName, argClasses);isOpen = (Boolean) method.invoke(mCM, argObject); catch (Exception e) e.printStackTrace();return isOpen;private void setGprsEnable(String methodName, boolean isEnable) Class cmClass = mCM.getClass();Class argClasses = new Class1;argClasses0 = boolean.class;try Method method = cmClass.getMethod(methodName, argClasses);method.invoke(mCM, isEnable); catch (Exception e) e.printStackTrace();運(yùn)行代碼后可看到效果如圖4.1所示圖4.1 我的地圖界面4.3 實(shí)時(shí)定位功能的實(shí)現(xiàn)當(dāng)在主界面上點(diǎn)擊左下角菜單或點(diǎn)擊系統(tǒng)自帶的菜單按鈕時(shí)會(huì)彈出若干個(gè)菜單按鈕,如圖4.2所示。圖4.2 菜單選項(xiàng)然后點(diǎn)擊“我的位置”按鈕后,會(huì)執(zhí)行以下代碼:myLocationManager.requestLocationUpdates(new myLocationListener();myLocationOverlay.enableMyLocation(); / 嘗試開啟MyLocation功能myLocationOverlay.enableCompass(); / 開啟磁場感應(yīng)傳感器mapView.getOverlays().add(myLocationOverlay); / 添加圖層mapController.animateTo(myLocationOverlay.getMyLocation();mapController.setZoom(18);mapView.invalidate();運(yùn)行完該部分代碼之后,“我的位置”所對(duì)應(yīng)的Activity會(huì)被執(zhí)行,效果如圖4.3所示:圖4.3 我的位置4.4 地圖標(biāo)記及地點(diǎn)搜索功能的實(shí)現(xiàn)當(dāng)點(diǎn)擊“搜索”按鈕后,會(huì)執(zhí)行以下代碼:final EditText search_nearby_m = (EditText) layout .findViewById(R.id.search_nearby_m);final EditText search_nearby_poi = (EditText) layout .findViewById(R.id.search_nearby_poi);final int m = Integer.parseInt(search_nearby_m .getText().toString();執(zhí)行完成后則會(huì)彈出效果如圖4.4所示。圖4.4 搜索方式然后點(diǎn)擊“城市搜索”后,會(huì)執(zhí)行以下代碼:i = getLayoutInflater();layout = i.inflate(R.layout.search_city, null);d = new AlertDialog.Builder(MainActivity.this).create();d.setTitle(城市搜索);d.setView(layout);/ AlertDialog按鈕事件DialogInterface.OnClickListener listener1 = new DialogInterface.OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) switch (which) case DialogInterface.BUTTON_POSITIVE: final EditText search_city_city = (EditText) layout.findViewById(R.id.search_city_city);final EditText search_city_poi = (EditText) layout.findViewById(R.id.search_city_poi);final String city = search_city_city.getText().toString();final String poi = search_city_poi.getText().toString();try mySearch.poiSearchInCity(city, poi); catch (Exception e) Toast.makeText(MainActivity.this, 無搜索內(nèi)容或輸入有誤,1000).show();break;/ 取消case DialogInterface.BUTTON_NEGATIVE:dialog.dismiss();break;d.setButton(DialogInterface.BUTTON_POSITIVE, 搜索, listener1);d.setButton(DialogInterface.BUTTON_NEGATIVE, 取消, listener1);d.show();執(zhí)行完成后,運(yùn)行效果如圖4.5所示。圖4.5 城市搜索若點(diǎn)擊“周邊搜索”后,則會(huì)執(zhí)行以下代碼:i = getLayoutInflater();layout = i.inflate(R.layout.search_nearby, null);d = new AlertDialog.Builder(MainActivity.this).create();d.setTitle(周邊搜索);d.setView(layout);/ AlertDialog按鈕事件DialogInterface.OnClickListener listener2 = new DialogInterface.OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) switch (which) case DialogInterface.BUTTON_POSITIVE:final EditText search_nearby_m = (EditText) layout.findViewById(R.id.search_nearby_m);final EditText search_nearby_poi = (EditText) layout.findViewById(R.id.search_nearby_poi);final int m = Integer.parseInt(search_nearby_m.getText().toString();final String poi = search_nearby_poi.getText().toString();try myLocationManager.requestLocationUpdates(new myLocationListener();myLocationOverlay.enableMyLocation();myLocationOverlay.enableCompass();mySearch.poiSearchNearBy(poi,myLocationOverlay.getMyLocation(), m); catch (Exception e) Toast.makeText(MainActivity.this, 無搜索內(nèi)容或輸入有誤,1000).show();break;/ 取消case DialogInterface.BUTTON_NEGATIVE:dialog.dismiss();break;d.setButton(DialogInterface.BUTTON_POSITIVE, 搜索, listener2);d.setButton(DialogInterface.BUTTON_NEGATIVE, 取消, listener2);d.show();執(zhí)行完成后,其運(yùn)行效果如圖4.6所示。圖4.6 周邊搜索交通情況及街道顯示功能的實(shí)現(xiàn)當(dāng)點(diǎn)擊“圖層”按鈕后,在彈出的選項(xiàng)中點(diǎn)擊“實(shí)時(shí)路況”后,則會(huì)執(zhí)行以下代碼:mapView.setTraffic(true);mapView.setSatellite(false);/* 位置監(jiān)聽器*/public class myLocationListener implements LocationListener Overridepublic void onLocationChanged(Location arg0) / TODO Auto-generated method stubif (arg0 = null) Toast.makeText(getApplication(), 定位失敗, 1000).show();return;final GeoPoint pt = new GeoPoint(int) (arg0.getLatitude() * 1000000),(int) (arg0.getLongitude() * 1000000);/* 搜索監(jiān)聽器*/public class citySearch implements MKSearchListener Overridepublic void onGetAddrResult(MKAddrInfo arg0, int arg1) / TODO Auto-generated method stubOverridepublic void onGetBusDetailResult(MKBusLineResult arg0, int arg1) / TODO Auto-generated method stubOverridepublic void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) / TODO Auto-generated method stubif (arg0 = null) return;mapView.getOverlays().clear();RouteOverlay routeOverlay = new RouteOverlay(MainActivity.this,mapView);routeOverlay.setData(arg0.getPlan(0).getRoute(0);mapView.getOverlays().add(routeOverlay);mapView.invalidate();Overridepublic void onGetPoiDetailSearchResult(int arg0, int a

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論