華商紅利優(yōu)選靈活配置基金投資價值分析報告畢業(yè)設計說明書_第1頁
華商紅利優(yōu)選靈活配置基金投資價值分析報告畢業(yè)設計說明書_第2頁
華商紅利優(yōu)選靈活配置基金投資價值分析報告畢業(yè)設計說明書_第3頁
華商紅利優(yōu)選靈活配置基金投資價值分析報告畢業(yè)設計說明書_第4頁
華商紅利優(yōu)選靈活配置基金投資價值分析報告畢業(yè)設計說明書_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

畢業(yè)設計說明書題目:基于安卓的公交客戶端的設計與實現(xiàn)產品設計工藝設計方案設計√類型:學生姓名:_______________________學號:___________________學院:___________軟件學院_____________專業(yè):_____軟件技術(軟件開發(fā)方向)___班級:______________學校指導教師:________企業(yè)指導教師:_____________________2016年03 月15日摘要在信息快速發(fā)展的今天,人們的出行變得越來越密切,所以在出行的時候借助一些地圖類的工具會特別的方便。畢竟在這個時代,幾乎人手一個手機,于是就出現(xiàn)了各種各樣的出行類的app。但是外面這個多種類繁雜的app到底哪個好用呢?于是就出現(xiàn)了一款叫做伴你隨行的公交旅行軟件。它的主要功能是擁有實時定位功能,讓你不再擔心迷路。公交查詢功能可以讓你的出行不再是個難題,線路規(guī)劃功能讓你隨時隨地想去哪就去哪。還有一個比較實用性的功能就是周邊旅游功能。它可以通過服務器實時獲取最新的周邊信息,讓你的生活充滿了無限的樂趣。該系統(tǒng)是基于Android平臺的設計,其主要功能公交查詢實時地圖等是通過調用第三方API來實現(xiàn)的,使用第三方API的好處是第三方平臺都已經將其方法分裝好了,用戶只需直接調用,然后進行一些自己想要的操作與實現(xiàn)的功能就可以了。本次開發(fā)使用的工具是AndroidStudio,JAVAJDK。服務器采用第三方框架Bmob,使用Bmob的一大好處就是它已經將網絡請求全部封裝好了,用戶只需要直接調用方法即可得到你想要的數(shù)據(jù),這樣極大地提高了開發(fā)的效率,讓開發(fā)人員節(jié)省了大量的時間和代碼量。關鍵詞:公交;地圖;旅游;安卓

目錄1.緒論 .緒論1.1系統(tǒng)開發(fā)與背景來到一個陌生的城市,如果想去一個地方,可以乘坐出租車但是價格相對較貴,最省錢的辦法應該是坐公交車,當然你說是走路最省錢的話我無話可說。但是對于一個陌生的城市我們并不了解,那么怎么才能查詢公交車信息呢?所以隨著移動應用的飛速發(fā)展,掌上app成為了人們喜愛的一種方式。所以作為軟件開發(fā)方面的學子,有必要為城市的公共交通做出一份貢獻。1.2社會現(xiàn)狀城市公共交通是與人民群眾生產生活息息相關的重要基礎設施。改革開放以來,我國城市公共交通有了較快發(fā)展,但隨著經濟社會發(fā)展和城鎮(zhèn)化進程的加快,一些城市交通擁堵、群眾出行不便等問題日益突出,嚴重影響了城市發(fā)展和人民群眾生活水平的提高。優(yōu)先發(fā)展城市公共交通是提高交通資源利用效率,緩解交通擁堵的重要手段。為解決好城市交通問題,促進城市健康發(fā)展,現(xiàn)就優(yōu)先發(fā)展城市公共交通提出以下意見:一、進一步提高認識我國土地資源稀缺,城市人口密集,群眾收入水平總體還不高,優(yōu)先發(fā)展公共交通符合城市發(fā)展和交通發(fā)展的實際,是貫徹落實科學發(fā)展觀和建設節(jié)約型社會的重要舉措。各地區(qū)和有關部門要進一步提高認識,確立公共交通在城市交通中的優(yōu)先地位,明確指導思想和目標任務,采取有力措施,加快發(fā)展步伐。要通過科學規(guī)劃和建設,提高線網密度和站點覆蓋率,優(yōu)化運營結構,形成干支協(xié)調、結構合理、高效快捷并與城市規(guī)模、人口和經濟發(fā)展相適應的公共交通系統(tǒng)。要進一步放開搞活公共交通行業(yè),完善支持政策,提高運營質量和效率,為群眾提供安全可靠、方便周到、經濟舒適的公共交通服務。要充分發(fā)揮公共交通運量大、價格低廉的優(yōu)勢,引導群眾選擇公共交通作為主要出行方式。二、充分發(fā)揮規(guī)劃調控作用(一)科學編制公共交通規(guī)劃。交通規(guī)劃是城市總體規(guī)劃的重要組成部分。城市人民政府要在對交通現(xiàn)狀、需求和發(fā)展前景進行充分調查研究的基礎上,以公共交通為核心,通過編制實施城市綜合交通體系規(guī)劃、公共交通專項規(guī)劃和軌道交通建設規(guī)劃,科學配置和利用交通資源,建立以公共交通為導向的城市發(fā)展和土地配置模式。城市交通規(guī)劃要與城市總體布局和人口產業(yè)分布相協(xié)調,確定發(fā)展戰(zhàn)略目標、任務、有關技術和經濟政策;綜合考慮各種交通方式、換乘樞紐配置,以及與對外交通的銜接,重點確定公共交通結構、線網分布、場站布局、用地規(guī)模、建設計劃等。(二)保障規(guī)劃的編制和組織實施。城市人民政府要大力支持公共交通規(guī)劃編制工作,將規(guī)劃編制所需經費納入財政預算,確保編制任務的完成。要保持規(guī)劃的嚴肅性和穩(wěn)定性,保障規(guī)劃的組織實施。采取有力措施,切實防止和糾正違反規(guī)劃、侵占公共交通基礎設施及其建設用地的行為,保證優(yōu)先發(fā)展公共交通的需要。(三)建立健全法律法規(guī)和標準體系。要從實際出發(fā),借鑒國內外優(yōu)先發(fā)展公共交通的成功經驗,從規(guī)劃、建設、管理等方面,加快建立確保公共交通優(yōu)先發(fā)展的法律法規(guī)體系。要健全場站建設、車輛配備與更新、設施裝備、服務質量等方面的技術標準體系。進一步強化法律法規(guī)和標準的指導作用,促進城市公共交通健康有序發(fā)展。1.3研究的內容公交查詢系統(tǒng)是一款通過第三方地圖SDK獲取地圖信息的最新的移動應用,本研究的目的在于為廣大出行的市民和旅客朋友提供便利的交通,還能為外出游玩的游客推薦一些好玩的值得去的景點,也能達到某種商業(yè)目的。研究的主要內容包括以下幾個方面:安卓開發(fā)包括安卓的UI開發(fā)、移動端對于服務端的訪問。百度地圖API開發(fā)百度地圖SDK的調用、地圖功能的實現(xiàn)、路線規(guī)劃、公交查詢等方面。(3)BmobAPI開發(fā)BmobSDK的使用、客戶端與Bmob的通訊、添加數(shù)據(jù)到Bmob服務器、從Bmob服務器獲取數(shù)據(jù)。1.4文章的組織結構文章的組成結構安排如下:第一章緒論介紹了系統(tǒng)開發(fā)的背景與意義,對文章的研究內容和組織進行了闡述。第二章主要討論了系統(tǒng)的需求以及與實現(xiàn)相關的關鍵技術。第三章詳細說明了系統(tǒng)的業(yè)務建模與設計。對系統(tǒng)的用戶角色以及功能需求進行了詳細的介紹。2.系統(tǒng)需求分析與關鍵技術隨著智能手機和3G、4G網絡的普及,基于移動端的公交查詢系統(tǒng)具備了非常完備的運行平臺。從經濟、技術以及運營方面來分析,該系統(tǒng)開發(fā)成本低廉,容易實現(xiàn)。另外,本系統(tǒng)服務于各個城市的市民、全國各地旅游的游客,核心功能包括公交查詢、線路規(guī)劃等實用性功能。2.1可行性分析2.1.1經濟可行性開發(fā)該系統(tǒng)所需的相關資料可以通過已存在的相關系統(tǒng)進行調查和采集,所需的軟件系統(tǒng)和硬件平臺都易于獲取,開發(fā)成本很低,容易實現(xiàn),從經濟角度來考慮,是可以正常運行的。2.1.2技術可行性技術可行性主要考慮到現(xiàn)有的技術是否能夠順利的完成開發(fā)工作,軟件與硬件設施是否滿足開發(fā)需求。本系統(tǒng)采用的J2EE開發(fā)體系、AndroidSDK以及百度地圖SDK還有Bmob后端云都是開源體系??梢詮木W上下載相關內容,易于獲得,并且網上有大量的案例、開發(fā)文檔和參考資料。當前的計算機硬件配置也完全滿足開發(fā)的需求,因此技術上是絕對可行的。2.1.3運營可行性本系統(tǒng)是全方位解決市民出行方面的問題。例如:公交查詢、線路規(guī)劃、周邊旅游等一系列出行問題的移動應用軟件,非常具有實用價值。隨著“綠色出行、低碳生活”理念的深入人心,未來市民們出行的選擇會更多的偏向于公共交通,采用低碳環(huán)保的出行方式,例如公交車、地鐵等交通工具。一旦用戶量上來,附著在移動應用上的廣告推送費用是非??捎^的。2.2功能分析2.2.1客戶端功能客戶端主要面向的是用戶,主要完成實時地圖定位、公交查詢、線路規(guī)劃等操作。還可以進行登錄操作,這樣就可以獲取用戶信息,進行其他的操作。實時地圖定位用戶可以在主界面通過點擊進入實時地圖定位界面,用戶可以通過點擊頁面上的三個按鈕進行不同的操作。分別是定位到當前位置、顯示交通狀況、切換圖層顯示。圖層顯示分為平面圖和衛(wèi)星圖,可以滿足不同用戶的不同需求。公交查詢同樣通過主界面點擊進入公交查詢頁面,用戶通過輸入城市和公交車名字來獲取該趟車的站點信息,早晚班時間等相關信息。給用戶提供了便捷的服務同時還考慮了用戶的體驗感。線路規(guī)劃線路規(guī)劃界面也是采用主界面點擊事件來進行跳轉的,用戶通過輸入目的地來進行搜索,查詢結果包括駕車、步行和騎行三種方式,基本上涵蓋了所有用戶的需求。2.2.2服務端功能該系統(tǒng)的服務端是使用的目前比較流行的Bmob后端云來實現(xiàn)的。使用Bmob后端云技術的主要優(yōu)勢是簡單方便,開發(fā)人員只需要下載相應的SDK導入jar包到工程中即可使用。具體操作是Bmob后端云會根據(jù)開發(fā)人員創(chuàng)建的java對象來自動創(chuàng)建數(shù)據(jù)庫表,然后利用對象進行數(shù)據(jù)的增刪改查操作,方便快捷。開發(fā)人員進行數(shù)據(jù)的管理可以登錄Bmob后端云的網站通過登陸之后進入相應的頁面進行數(shù)據(jù)的操作,使用起來非常的方便快捷。2.3關鍵技術2.3.1百度地圖API百度地圖API是為開發(fā)者免費提供的一套基于百度地圖的應用接口,包括JavaScriptAPI、Web服務API、AndroidSDK、iosSDK、定位SDK等多種開發(fā)工具與服務,提供基本地圖展現(xiàn)、搜索、定位、路線規(guī)劃、LBS云儲存與檢索等功能。開發(fā)人員只需注冊百度賬號,通過開發(fā)者認證之后,創(chuàng)建一個項目獲取百度地圖的key即可。百度地圖API適用于PC端、移動端、服務端等多種設備,多種操作系統(tǒng)。百度移動版地圖SDK,分為Android版與Symbian版,為移動設備地圖應用開發(fā)提供基本地圖、本地搜索、路線規(guī)劃、定位等服務。若用戶使用該套SDK,也需要先申請key。百度地圖定位SDK,與百度移動版地圖SDK相比,是以更小的體積提供給開發(fā)者,幫助開發(fā)者完成位置信息獲取與應用開發(fā)的工具。百度地圖目前提供Android和Symbian版本,且開發(fā)者是不需要申請key就可使用。百度地圖車聯(lián)網API,是百度地圖于2012年6月推出的,為車聯(lián)網行業(yè)定制的一套API。提供地圖顯示、地址解析、位置描述、本地搜索、周邊搜索、駕車路徑規(guī)劃、信息發(fā)送、天氣、交通事件等多種服務。百度地圖LBS云,是百度地圖2012年8月底新推出的,也是在百度世界大會2012為開發(fā)者提供的”七大武器“之一,即百度地圖針對LBS開發(fā)者全新推出的服務,借助百度云服務與云計算,通過地圖API,實現(xiàn)用戶的海量位置數(shù)據(jù)云存儲,同時,也可實現(xiàn)快速云檢索。LBS·云將位置數(shù)據(jù)存儲、空間檢索、地圖展現(xiàn)等任務一站式托管在百度云端,為開發(fā)者降低開發(fā)成本,有利于開發(fā)者提高開發(fā)效率。2.3.2BmobSDK對于很多Android/ios/wp個人移動開發(fā)者來說,開發(fā)一個具有網絡功能的應用不是一件容易的事,不僅需要購買/租賃服務器,還必須掌握一門諸如Java/.net/php這類的服務器開發(fā)語言,每開發(fā)一款移動應用程序,就必須開發(fā)維護對應的服務器程序。這一切對于移動開發(fā)者來說,都是一個冗長的噩夢。如何讓移動開發(fā)者從繁瑣的機械勞動中解脫出來,將更多精力投入到移動應用程序的創(chuàng)意研發(fā),從而不斷提升產品質量呢?Bmob移動應用云儲存平臺的誕生就很好地解決了以上難題。在Bmob平臺上,只需注冊一個帳號,成功后申請創(chuàng)建任意多個數(shù)據(jù)庫,獲得對應的Key,下載對應版本的SDK并將其嵌入到移動應用中,便可以調用存取API,進行數(shù)據(jù)的任意操作。有了Bmob,您在5分鐘內就可以學會如何開發(fā)一個云存儲的移動應用軟件,給應用軟件快速添加一個安全靈活的后臺管理系統(tǒng),方便您瀏覽終端保存的各種信息。2.3.3AndroidSDKAndroid是谷歌(Google)公司推出的手機開發(fā)平臺。與iPhone相似,Android采用WebKit瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網功能,用戶能夠在手機上查看電子郵件、搜索網址和觀看視頻節(jié)目等,比iPhone等其他手機更強調搜索功能,界面更強大,可以說是一種融入全部Web應用的單一平臺。SDK:(SoftwareDevelopmentKit)軟件開發(fā)工具包一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應用軟件時的開發(fā)工具的集合。安卓系統(tǒng)其吸引力之處在于它的卡放心和服務免費性。Android對第三方軟件完全開放,這樣使得開發(fā)者在開發(fā)程序時擁有更大的自由度,同事與其他廠商不同。1.安裝下載好AndroidSDK后,開始安裝,AndroidSDK采用了Java語言,所以需要先安裝JDK5.0及以上版本。直接下載jdk安裝文件安裝更為方便。AndroidSDK不用安裝,下載后,直接解壓即可,將下載后的SDK的壓縮包解壓到適當?shù)奈恢?,就這么簡單;SDK安裝OK。使用Eclipse進行android應用開發(fā)需要給Eclipse裝adt插件,這樣Eclipse就可以和androidsdk建立連接,可以在Eclipse中啟動android模擬器進行程序調試等ADT插件安裝這里不再累贅,插件的安裝URL為:也可以下載adt的zip包安裝安裝完插件后,需要做一些簡單的配置:(1)在Eclipse中,選擇Window>Preference;(2)從左側的菜單中,選擇Android項;(3)設置SDKLocation,點Browse選擇SDK的安裝根目錄;(4)OK,完成。2.發(fā)展情況Android項目目前正在從手機運營商、手機廠商、開發(fā)者和消費者那里獲得大力支持。谷歌移動平臺主管安迪·魯賓(AndyRubin)表示,與軟件開發(fā)合作伙伴的密切接觸正在進行中。從2007年11月開始,谷歌開始向服務提供商、芯片廠商和手機銷售商提供Android平臺,并組建“開放手機聯(lián)盟”,其成員超過30家。2014年3月10日早間消息,谷歌(1214.79,-4.82,-0.40%)Android、應用和Chrome高級副總裁桑達爾·皮采(SundarPichai)上周六在SXSW互動大會上宣布,該公司很快就將推出針對可穿戴設備設計的AndroidSDK(軟件開發(fā)套件)。谷歌將在SDK中向開發(fā)者闡述谷歌對該市場運作方式的愿景。從拉斯維加斯國際消費電子展(CES)到巴塞羅那移動世界大會(MWC),可穿戴設備一直都是今年各大科技盛會的重要主題??纱┐髟O備中那些體積小巧、性能強大的芯片將給Android帶來巨大提升,他對這一前景頗感振奮。這一新的SDK不僅是針對智能手表的。谷歌的職責是為開發(fā)者提供系統(tǒng)軟件和API(應用編程接口),而具體針對哪種產品進行開發(fā),則取決于開發(fā)者和合作伙伴。3.業(yè)務建模與設計本系統(tǒng)包括兩個部分,面向用戶的Android移動端,提供公交查詢、實時定位、線路規(guī)劃等功能;還有就是服務器端,本系統(tǒng)采用的是Bmob后端云技術作為后臺數(shù)據(jù)的提供,給客戶端提供數(shù)據(jù)的添加的查詢。3.1系統(tǒng)整體設計系統(tǒng)采用J2EE開發(fā)體系、百度地圖服務、Bmob后端云服務、主流移動端操作系統(tǒng)Android軟件開發(fā)技術,充分考慮與其他信息系統(tǒng)的開放互聯(lián)、多源數(shù)據(jù)接口、數(shù)據(jù)之間的關聯(lián)以及網絡環(huán)境的開放性基礎上,繼承地圖SDK查詢功能和路徑規(guī)劃等相關功能。系統(tǒng)主要是Android客戶端來實現(xiàn)所有的操作,給用戶提供了公交查詢、線路規(guī)劃、周邊旅游推薦等功能。主要面向的是用戶,用戶無需登錄即可進行查詢操作,也可以選擇登陸添加個人信息。Android客戶端采用J2EE平臺,使用Bmob后端云技術進行數(shù)據(jù)的儲存與讀取,同時作為后臺服務器管理用戶數(shù)據(jù)。只要使用AndroidSDK開發(fā)平臺以及百度地圖API和Bmob后端云技術。3.2業(yè)務用例建模業(yè)務建模(BusinessModeling)是以軟件模型方式描述企業(yè)管理和業(yè)務所涉及的對象和要素、以及它們的屬性、行為和彼此關系,業(yè)務建模強調以體系的方式來理解、設計和構架企業(yè)信息系統(tǒng)。3.2.1角色分析本系統(tǒng)中所涉及的角色主要是用戶,即使用該系統(tǒng)的人,他們可以利用移動客戶端進行公交系統(tǒng)查詢、線路規(guī)劃服務、實時定位功能和周邊旅游服務。3.2.2客戶端用例分析客戶端主要具有的功能有公交查詢,實時地圖,路徑規(guī)劃,周邊旅游和登錄注冊功能,具體用例如圖3.1所示。

圖3.1客戶端用例分析圖3.3業(yè)務流程建模3.3.1周邊旅游信息更新周邊旅游服務是根據(jù)你不同的地理位置向用戶實時推送一些附近的值得去的地方。用戶需要手動修改自己所處的城市位置來更新顯示列表。因為每次都去服務器獲取數(shù)據(jù)的話,對于內存的消耗是很大的,服務器的壓力也會隨之變大。其更新的互動見圖3.2所示。圖3.2周邊旅游用例分析圖3.3.2地圖功能查詢地圖功能的查詢需要打開GPS進行精準的獲取當前位置。地圖的查詢是通過請求百度地圖的服務器返回數(shù)據(jù)顯示。詳情見圖3.3所示。圖3.3地圖查詢功能用例分析圖3.4系統(tǒng)數(shù)據(jù)庫設計基于安卓的公交查詢系統(tǒng)主要是通過調用第三方API進行數(shù)據(jù)的查詢,所以該功能不需要實現(xiàn)數(shù)據(jù)庫的創(chuàng)建,但是在周邊旅游功能中的數(shù)據(jù)來自于服務器。為了減輕服務端的壓力,我們會將用戶上一次訪問的數(shù)據(jù)進行緩存到本地,采用SQLite本地數(shù)據(jù)庫來緩存。這樣用戶在新打開程序的情況下不至于每次都采用網絡請求,還有在用戶在網絡連接異常的時候可以顯示上一次的數(shù)據(jù)。3.4.1SQLite本地數(shù)據(jù)庫緩存的創(chuàng)建以下列出周邊旅游表的數(shù)據(jù)庫創(chuàng)建代碼。createtabletravel( travel_titlevarchar(40), travel_contentvarchar(200), travel_authorvarchar(20), travel_datedate, travel_picvarchar(100),--存儲圖片路徑 travel_content_picvarchar(100)--存儲圖片路徑)以下列出公告信息表的數(shù)據(jù)庫創(chuàng)建代碼。createtablenotice( notic_titlevarchar(40), notic_contentvarchar(200), notic_authorvarchar(20), notic_datedate, notic_picvarchar(100),--存儲圖片路徑 notic_content_picvarchar(100)--存儲圖片路徑)4.系統(tǒng)實現(xiàn)及應用4.1客戶端4.1.1客戶端主要功能Android客戶端中的實時地圖功能,用戶可以通過右上方的三個按鈕來進行相應的操作,從上到下分別為:實時定位、切換衛(wèi)星/平面圖和顯示或關閉交通狀況。具體情況如圖4.1所示。圖4.1實時地圖功能圖Android客戶端中的公交查詢功能的具體操作是在屏幕上方第一個輸入框輸入城市名,第二個輸入框輸入相應的公交路線點擊查詢按鈕即可在地圖上顯示相應的具體的公交線路圖,用戶還可以點擊線路按鈕跳轉頁面查看該路公交車所有的站點名稱,詳情如圖4.2所示。圖4.2公交查詢功能圖Android客戶端中的地圖線路規(guī)劃功能:用戶通過在屏幕上方的三個輸入框內分別輸入城市名、起點名和終點名即可。然后在輸入框下方四個按鈕選擇需要的路徑規(guī)劃類型即可顯示對應的線路詳情,具體操作顯示如圖4.3所示。圖4.3線路規(guī)劃功能截圖4.1.2調用百度地圖SDK主要代碼通過調用第三方百度地圖SDK來顯示地圖和進行相應的地圖操作。主要是通過清單文件注冊添加百度地圖開發(fā)平臺提供的key來進行驗證,代碼如下:<meta-data

android:name="com.baidu.lbsapi.API_KEY"

android:value="UWb4dz9lC8rIaSiG8Ii0tslUh5qKgfQB"/>開啟定位服務通過在清單文件中添加服務來實現(xiàn),代碼如下:<service

android:name="com.baidu.location.f"

android:enabled="true"

android:process=":remote">

</service>下面是實時地圖界面的代碼:publicclassMapActivityextendsAppCompatActivity{

BaiduMapbaiduMap;

MapViewmapView;

MyViewmv;

ImageViewshow,close;

//定位

privateLocationClientlocationClient=null;

privatestaticfinalintUPDATE_TIME=5000;

//privatestaticintLOCATION_COUTNS=0;

privatedoublelat;

privatedoublelng;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

SDKInitializer.initialize(getApplicationContext());//初始化

setContentView(R.layout.activity_map);

//初始化iamgeView組件

show=(ImageView)findViewById(R.id.show);

close=(ImageView)findViewById(R.id.close);

//自定義actionBar

mv=(MyView)findViewById(R.id.mv);

mv.setTitle("實時地圖");

mv.isHiddenEdit(true);

mv.setBackListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

MapActivity.this.finish();

}

});

//得到地圖

mapView=(MapView)findViewById(R.id.mapView);

baiduMap=mapView.getMap();//得到地圖對象

baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//平面圖

//定位

locationClient=newLocationClient(this);

//設置定位條件

LocationClientOptionoption=newLocationClientOption();

option.setOpenGps(true);//是否打開GPS

option.setCoorType("gcj02");//設置返回值的坐標類型。

option.setPriority(LocationClientOption.NetWorkFirst);//設置定位優(yōu)先級

option.setProdName("Bus");//設置產品線名稱。強烈建議您使用自定義的產品線名稱,方便我們以后為您提供更高效準確的定位服務。

option.setScanSpan(UPDATE_TIME);//設置定時定位的時間間隔。單位毫秒

locationClient.setLocOption(option);

//注冊位置監(jiān)聽器

locationClient.registerLocationListener(newBDLocationListener(){

@Override

publicvoidonReceiveLocation(BDLocationlocation){

//TODOAuto-generatedmethodstub

if(location==null){

return;

}

lat=location.getLatitude();

lng=location.getLongitude();

System.out.println(lat+"、"+lng);

}

});

}

publicvoidloc(Viewview){

//定位到當前位置

if(locationClient==null){

return;

}

if(locationClient.isStarted()){

locationClient.stop();

}else{

locationClient.start();

baiduMap.setMyLocationEnabled(true);//開啟定位

MyLocationDatalocationData=newMyLocationData.Builder()

.latitude(30.770069)

.longitude(114.210569)

.build();

baiduMap.setMyLocationData(locationData);

baiduMap.setMyLocationConfigeration(

newMyLocationConfiguration(

MyLocationConfiguration.LocationMode.FOLLOWING,true,null));

MapStatusUpdatemsu1=MapStatusUpdateFactory.zoomTo(17);

baiduMap.setMapStatus(msu1);//設置地圖等級為15級

LatLnglal=newLatLng(30.770069,114.210569);

MapStatusUpdatemsu2=MapStatusUpdateFactory.newLatLng(lal);

baiduMap.animateMapStatus(msu2);//動畫效果

locationClient.requestLocation();

}

}

publicvoidchange(Viewview){

//更換顯示模式

if(baiduMap.getMapType()==BaiduMap.MAP_TYPE_NORMAL){

baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);//設置為衛(wèi)星圖

}elseif(baiduMap.getMapType()==BaiduMap.MAP_TYPE_SATELLITE){

baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);

}

}

publicvoidshow_traffic(Viewview){

//顯示交通狀況

baiduMap.setTrafficEnabled(true);//顯示交通狀況

show.setVisibility(View.INVISIBLE);

close.setVisibility(View.VISIBLE);

}

publicvoidclose_traffic(Viewview){

//顯示交通狀況

baiduMap.setTrafficEnabled(false);//顯示交通狀況

close.setVisibility(View.INVISIBLE);

show.setVisibility(View.VISIBLE);

}

@Override

protectedvoidonResume(){

super.onResume();

mapView.onResume();

}

@Override

protectedvoidonDestroy(){

super.onDestroy();

if(locationClient!=null&&locationClient.isStarted()){

locationClient.stop();

locationClient=null;

}

}

}4.1.3通過類管理器來實現(xiàn)雙擊返回鍵退出整個程序將方法封裝好了之后,只需在每個activity中調用ActivityManager.getInstance().addActivity();方法即可,然后在退出程序界面調用ActivityManager.getInstance().exit();即可實現(xiàn)該功能。具體代碼如下:publicclassActivityManager{

privateList<Activity>activityList=newLinkedList<Activity>();

privatestaticActivityManagerinstance;

publicActivityManager(){

//

}

//單例模式中獲取唯一的MyApplication實例

publicstaticActivityManagergetInstance(){

if(null==instance){

instance=newActivityManager();

}

returninstance;

}

//將activity添加到容器

publicvoidaddActivity(Activityactivity){

activityList.add(activity);

}

//遍歷所有activity并finish

publicvoidexit(){

for(Activityactivity:activityList){

activity.finish();

}

System.exit(0);

}

}4.2服務端為了降低開發(fā)成本,本系統(tǒng)采用第三方Bmob作為服務器來作為數(shù)據(jù)的提供源,使用起來簡單方便、快捷高效,不用考慮服務器的成本。4.2.1調用第三方BmobAPI使用BmobAPI作為服務器主要是通過導入jar包到工程,然后調用其方法進行數(shù)據(jù)的增刪改查即可。具體操作代碼如下:publicclassRimTravelActivityextendsActivity{

MyViewmv;

ListViewlv_travel;

TravelAdapteradapter;

ArrayList<HashMap<String,Object>>datas;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_travel);

mv=(MyView)findViewById(R.id.mv);

mv.setTitle("周邊旅游");

mv.isHiddenEdit(true);

View.OnClickListenerlistener=newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

RimTravelActivity.this.finish();

}

};

mv.setBackListener(listener);

datas=newArrayList<>();

initDatas();

lv_travel=(ListView)findViewById(R.id.lv_travel);

adapter=newTravelAdapter(this,datas);

lv_travel.setAdapter(adapter);

lv_travel.setOnItemClickListener(newAdapterView.OnItemClickListener(){

@Override

publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){

//通過意圖跳轉傳遞參數(shù)

Intentit=newIntent(RimTravelActivity.this,TravelDetailsActivity.class);

it.putExtra("title",datas.get(position).get("title").toString());

it.putExtra("content",datas.get(position).get("content").toString());

it.putExtra("date",datas.get(position).get("date").toString());

startActivity(it);

}

});

}

//加載數(shù)據(jù)>從網絡獲取

publicvoidinitDatas(){

BmobQuery<TravelInfo>bmobQuery=newBmobQuery<TravelInfo>();

bmobQuery.findObjects(this,newFindListener<TravelInfo>(){

@Override

publicvoidonSuccess(List<TravelInfo>list){

//查詢成功

for(TravelInfotravelInfo:list){

//迭代輸出

溫馨提示

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

評論

0/150

提交評論