国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android的旅游地圖小幫手的開發(fā)

2019-09-10 07:22:44劉萍章勝江
現(xiàn)代信息科技 2019年7期
關鍵詞:軟件開發(fā)

劉萍 章勝江

摘? 要:隨著智能手機的飛速發(fā)展,Android平臺為很多人所熟知,人們使用Android的頻率也越來越高,Android手機在各個領域中的使用越發(fā)重要,通過使用手機可以獲得人們想要的信息。隨著社會生產(chǎn)力的提高,每個家庭除了生活開銷之外還有所結余,因此,越來越多的人利用工作之余出去游山玩水,但是在游玩的過程中,攜帶的紙質地圖不方便,或者忘記攜帶地圖,會給旅游帶來一定的麻煩。為了解決這個問題,本文提出基于Android的旅游地圖小幫手的開發(fā)。

關鍵詞:旅游地圖APP;Android;軟件開發(fā);移動終端地圖服務

中圖分類號:TP311 ? 文獻標識碼:A ? 文章編號:2096-4706(2019)07-0037-03

Abstract:With the rapid development of smart phones,Android platform is well known to many people. People use Android more frequently. The use of Android mobile phones in various fields is becoming more and more important. By using mobile phones,people can get the information they want. With the improvement of social productivity,every family has some surplus besides living expenses. Therefore,more and more people use their spare time to go sightseeing. But in the process of playing,it is inconvenient to carry paper maps or forget to carry maps,which will bring some trouble to tourism. In order to solve this problem,this paper proposes the development of a small assistant of tourism map based on Android.

Keywords:tourist Map APP;Android;software development;mobile Map service

0? 引? 言

移動終端地圖服務的前景主要分為兩個方面:一方面,移動設備上安裝的地圖會給使用者提供更加智能的服務,由智能手機系統(tǒng)Android所帶來的一系列變化使得手機地圖也向著更加智能的方向發(fā)展,為用戶提供一體化的生活服務,給人民的生活也帶來幫助,能夠幫助人們查詢行車的路線,也能夠幫助人們預訂旅游過程中需要住宿的酒店,還能夠在娛樂活動場所等方面給人們提供全方位的服務,這應該歸功于移動互聯(lián)網(wǎng)和手機終端的飛速發(fā)展;另一方面,對于開發(fā)者來說,手機地圖開放平臺可以根據(jù)用戶需求的不同來為其提供獨家的服務,這樣不但方便了軟件開發(fā)人員的工作,而且也能夠使開發(fā)出的產(chǎn)品更有針對性和用武之地,這對開發(fā)人員來說,能夠大大方便他們的開發(fā)過程。手機的應用在當下已經(jīng)成為主戰(zhàn)場,原來只能在電腦上運行的大部分應用現(xiàn)在都可以在手機上運用,使得人們的出行更加方便,可以通過手機隨時尋找自己想要的資料。

1? 基于Android的旅游地圖小幫手設計

基于Android的旅游地圖小幫手結構采用分層次設計,不但有UI層,還要有完成控制功能的控制層、完成前臺請求的邏輯層和存儲數(shù)據(jù)的數(shù)據(jù)層。

軟件架構如圖1所示。

UI:就是使用者與應用直接交互的那一層,UI獲取到用戶的意圖發(fā)送給后臺處理,后臺對用戶意圖進行處理之后再把得出的結果傳遞給UI層,UI加載布局文件顯示給用戶瀏覽。本款地圖服務應用的基礎就是UI層,UI主要是XML文件編寫的任務。

控制層:接收到UI層用戶的意圖后,接收數(shù)據(jù)并且傳遞給處理函數(shù),處理函數(shù)經(jīng)過一系列的傳遞處理后,返回結果給UI,用戶就得到了需要的信息。

邏輯層:用于處理一些前臺請求,例如搜索、定位、分享、獲取全景圖等。

數(shù)據(jù)層:由于都是通過網(wǎng)絡獲取到的數(shù)據(jù),因此沒有數(shù)據(jù)庫的設計,數(shù)據(jù)都是通過百度地圖API的接口獲取到的云端數(shù)據(jù),包括檢索得到的數(shù)據(jù)也都是通過百度API接口實現(xiàn)的,雖然數(shù)據(jù)不需要自己管理,但是數(shù)據(jù)的流向卻必須通過接口來傳遞。

基于Android的旅游地圖小幫手的功能結構如圖2所示,該圖展示了系統(tǒng)所有功能,包括各功能之間的關系。

2? 基于Android的旅游地圖小幫手核心功能

2.1? 地圖圖層

百度地圖API提供好幾種地圖,有普通地圖(2D/3D)、衛(wèi)星地圖、實時交通圖、熱力圖等,由于本應用采用版本較低的v2_4_0版本,所以只實現(xiàn)了普通地圖、衛(wèi)星地圖、交通圖三個基本的地圖,本節(jié)主要是介紹不同地圖間的轉換。

首先是地圖圖層顯示的設計,先創(chuàng)建兩個數(shù)組:圖層圖片iconsfortucen、圖層文字說明lever,在定義圖層時,由于需要在主界面上加載出其他的界面,需要用到inflate這個方法,然后利用適配器將定義的兩個數(shù)組添加到該界面。

(1)使用inflate()找出布局;

(2)通過findViewById()找到控件將gridview添加到gv_tucen中;

(3)setAdapter()將預先定義好的適配器內容添加到gv_tuen;

gv_tuen是嵌入到viewforlever視圖中的布局,通過以上三個步驟就可以將地圖圖層選擇的界面加載到主界面中,其中顯示出來的方法為initPop_tucen_Window();

然后是點擊事件的實現(xiàn),使用onItemClick()方法根據(jù)用戶點擊的不同顯示不同類型的地圖,所以此處使用switch來進行實現(xiàn):

(1)case0:設置為衛(wèi)星圖顯示,使用setSatelite(true)進行設置,然后將地圖刷新,具體為mapview.refresh();

(2)Case1:設置為普通地圖顯示,使用setSatelite(false)進行設置,這是因為地圖控件初始默認為普通交通圖,只需要把衛(wèi)星地圖關閉就可以設置為普通地圖狀態(tài),然后刷新地圖就可以切換至普通地圖;

(3)Case2:設置視角瀏覽地圖,這里與前面兩個的設置不一樣,這里通過地圖控制器設置俯視的視角,通過if判斷是否已經(jīng)設置為俯視,如果沒設置為俯視就通過? MapControl.setOverlooking()來設置為俯視,最后刷新地圖,需要注意的是這里要設置overlook這個布爾型變量來判斷是否設置了俯視圖。

2.2? 附近圖層

附近圖層實現(xiàn):點擊附近能夠彈出一個選擇界面,選擇搜索附近的賓館、酒店等,搜索后在地圖上會有紅色標記物,點擊這些標記物會有相應的名稱出現(xiàn),所以本功能塊主要分兩個過程來實現(xiàn):彈出附近界面;處理相應的搜索并顯示出來。

首先通過findViewById找到附近按鈕,對其注冊點擊事件setOnClickListener(),在注冊事件中,initPop_fujin_Window()用于加載附近界面,調用showAtLocation()方法顯示在屏幕中心。

initPop_fujin_Window()的實現(xiàn):通過創(chuàng)建一個Popup Window窗口,顯示viewforfujin,當然這個窗口必須進行相關的設置,例如可以在窗口外點擊屏幕、隱藏窗口,設置位置中心等。viewforfujin的實現(xiàn)與viewforlever類似,都是利用適配器將有關的顯示內容加載到gridview gv_fujin中,然后將gv_fujin加載到顯示窗口中顯示出來。

附近的顯示列表中有很多內容,為此創(chuàng)建了一個圖標數(shù)組以及相應的文字說明數(shù)組,圖標與文字疊加在一起組成一個元素放置在gridview中,以此類推,組成的元素有:KTV、賓館、美食、加油站、超市、公司、景點、快餐、酒店、洗浴、取款機、銀行等。

經(jīng)過以上的步驟基本實現(xiàn)了附近窗口的設計以及在主界面中的彈出顯示,附近窗口實現(xiàn)的效果如圖3所示。

2.3? 地圖顯示

地圖顯示為用戶提供一個地圖界面,在顯示時通過定位功能來加載用戶當前位置,地圖顯示不光在主界面需要用到,在其他很多的功能中也有非常多的應用,比如說在離線地圖中,如果要顯示已經(jīng)下載的地圖離線包,就需要用到地圖顯示功能;在全景圖中,當進行POI(Point of Interest)檢索時也需要用地圖來顯示搜索到的結果,從而獲取全景圖。用戶不只能夠瀏覽地圖,還能夠對地圖進行縮放控制、移動控制等。此外,用戶還可以瀏覽實時交通圖查看實時路況,也能從平面地圖切換成衛(wèi)星圖,視角可以切換到俯視。

2.4? 路線規(guī)劃

輸入起始點地址和終點地址,當啟用步行或者駕車搜索時,會得到一段路線規(guī)劃內容,通過列表形式列舉出每一段路程的信息,用戶通過這段路徑信息列表能夠非常清楚地知道下一步應該怎么行進。在這里,由于城市內步行與駕車使用的路線基本上一致,所以將步行和駕車路線規(guī)劃放到一起,這樣不只減少了代碼冗余而且減少了開發(fā)的工作量,同樣的原理,公交路線也是這樣獲取的,只是內容以及獲取接口不一樣。路線規(guī)劃是主界面搜索按鈕的跳轉界面,路線規(guī)劃界面提供了三種搜索入口,即通過“步行搜索”搜索步行的路線內容、通過“駕車搜索”搜索駕車路線內容、通過“公交搜索”搜索所有公交路線,除此之外還提供了地點搜索,可以通過搜索地點來顯示地圖。路線選擇是公交路線搜索按鈕的調轉界面,系統(tǒng)為用戶提供公交路線時,只需要點擊列表中的相應公交內容就可以查看公交詳情。路線詳情應與路線選擇共用一個界面,當發(fā)出步行路線搜索、駕車路線搜索、點開某個公交路線時出現(xiàn)路線詳情。

2.5? 分享功能

分享功能需要將通過MKSearchListener監(jiān)聽器得到的定位數(shù)據(jù)通過系統(tǒng)發(fā)送出去,達到分享的目的。所以該功能沒有額外使用別的類實現(xiàn),直接在主界面定義該按鈕的點擊事件,通過MKSearch對象得到定位數(shù)據(jù)。

當使用者按下分享按鈕時,share_btn()函數(shù)執(zhí)行,該函數(shù)首先利用requestLocation()函數(shù),運用該函數(shù)是為了獲取到當前位置的信息,并且得到當前位置的地理位置經(jīng)緯度信息pt,requestLocation()能夠啟用LocClient對象的requestLocation()方法,該方法能夠引起B(yǎng)DLocation-ListenerImpl監(jiān)聽器onReceiveLocation方法的回調,回調的結果就是位置經(jīng)緯度pt1,該經(jīng)緯度信息對于后面非常重要,因為要分享的結果就是通過這個pt1這個變量解析出來的。

通過定位函數(shù)將經(jīng)緯度信息pt1獲取到了之后,調用百度地圖API search包中MKsearch類的reverseGeocode方法獲取地址信息,該方法中的一個參數(shù)就是以地理坐標點為參數(shù),這里傳遞的形參是requestLocation()方法處理得到的pt1坐標點。

reverseGeocode()方法是一個根據(jù)地理坐標點獲取地理信息的異步函數(shù),返回結果在MKSearchListener里onGetAddrResult()方法通知,在該方法獲取該地址信息后,賦給變量currentAddr。

接著利用poiRGCShareURLSearch()方法得到地址信息共享URL,將其命名為“分享地址”。得到了分享URL后,結果回調給onGetShareUrlResult函數(shù),該函數(shù)中創(chuàng)建了一個發(fā)送的意圖,將發(fā)送的內容設置為前面得到的地址信息+URL分享地址,格式為:"您的朋友通過生活小地圖與您分享一個位置:"+currentAddr+"/"+result.url,設置的函數(shù)為intent.putExtra。最后將已經(jīng)打包好的intent發(fā)送內容通過createChooser方法調用本地應用發(fā)送地址給其他人,分享地址。

3? 結? 論

手機的應用在當下已經(jīng)成為主戰(zhàn)場,原來在電腦上的大部分應用現(xiàn)在都可以在手機上完成,使得人們的出行更加方便,可以通過它去找自己想要的資料。本文開發(fā)的基于Android的旅游地圖小幫手使用百度地圖SDK,實現(xiàn)定位、導航、路線、全景等地圖功能,具有較強的實用價值。

參考文獻:

[1] 施連敏,蓋之華.基于Android的百度地圖應用的搭建 [J].技術與市場,2014,21(12):34-35+38.

[2] 張國平,王建璽,董桂林.基于Android平臺的手機地圖服務設計 [J].計算技術與自動化,2015,34(1):111-115.

[3] 柳婷.基于Android手機地圖服務系統(tǒng)的設計與實現(xiàn) [D].北京:北京郵電大學,2013.

[4] 周穎穎.基于Android平臺的手機地圖系統(tǒng)的實現(xiàn) [J].現(xiàn)代計算機(專業(yè)版),2013(22):74-76.

[5] Google.Android developers. [EB/OL].http://developer.android.com/guide/components/fundame ntals.html.2014.

作者簡介:劉萍(1981-),女,漢族,江西高安人,講師,本科,主要研究方向:計算機應用;章勝江(1977-),男,漢族,安徽東至人,副教授,碩士,主要研究方向:信息技術管理。

猜你喜歡
軟件開發(fā)
信息安全環(huán)境下的計算機軟件開發(fā)研究
計算機軟件開發(fā)中的分層技術運用
建模技術在軟件開發(fā)中的應用
軟件開發(fā)中數(shù)據(jù)庫設計理論的實踐
核電廠定期試驗管理軟件開發(fā)
科技視界(2016年21期)2016-10-17 20:50:03
FPGA軟件開發(fā)過程中編碼規(guī)范的作用
科技視界(2016年20期)2016-09-29 13:35:10
成武县| 沈丘县| 嘉禾县| 威远县| 南丰县| 萝北县| 航空| 荆门市| 怀仁县| 宣汉县| 灵丘县| 城口县| 朝阳市| 长寿区| 汽车| 会泽县| 台江县| 疏附县| 灵石县| 晋城| 婺源县| 年辖:市辖区| 建平县| 河东区| 阜平县| 阜新| 瓮安县| 荣成市| 正定县| 喜德县| 瑞金市| 晋城| 永寿县| 高要市| 鄂尔多斯市| 个旧市| 闽清县| 成都市| 定边县| 文昌市| 肇庆市|