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

?

基于Android的百度地圖多功能實(shí)現(xiàn)

2016-12-06 07:50:56馮先成周密徐川
武漢工程大學(xué)學(xué)報 2016年5期
關(guān)鍵詞:基類覆蓋物百度

馮先成,周密,徐川

1.武漢工程大學(xué)電氣信息學(xué)院,湖北 武漢 430205;2.智能機(jī)器人湖北省重點(diǎn)實(shí)驗(yàn)室(武漢工程大學(xué)),湖北 武漢 430205

基于Android的百度地圖多功能實(shí)現(xiàn)

馮先成1,2,周密1,徐川1

1.武漢工程大學(xué)電氣信息學(xué)院,湖北武漢430205;2.智能機(jī)器人湖北省重點(diǎn)實(shí)驗(yàn)室(武漢工程大學(xué)),湖北武漢430205

基于墨卡托投影法、A*算法等理論,調(diào)用百度地圖應(yīng)用程序接口(API)的SDKInitializer、MapView和BaiduMap三大核心類方法,設(shè)計出一套百度地圖的方案.首先進(jìn)行密鑰申請和清單文件的配置,再自定義一個基類BaseActivity,完成地圖界面初始化、調(diào)用生命周期方法等預(yù)操作.在基類上進(jìn)行地圖多功能開發(fā),實(shí)現(xiàn)了瀏覽地圖、搜尋地點(diǎn)、路線規(guī)劃、自我定位等應(yīng)用.結(jié)果表明,多功能百度地圖有較好的移植性、實(shí)用性,更加貼近用戶,能夠滿足用戶搜索、定位等基本功能的實(shí)際需求.

Android;百度地圖;A*算法;搜索

1 引言

百度地圖是一項(xiàng)網(wǎng)絡(luò)地圖搜索服務(wù)[1],地圖覆蓋區(qū)域廣、查詢功能多樣,Android是基于Linux的操作系統(tǒng),多用于移動設(shè)備.隨著移動通信網(wǎng)絡(luò)技術(shù)、互聯(lián)網(wǎng)技術(shù)、GPS技術(shù)[2]和GIS技術(shù)的發(fā)展,二者的結(jié)合使得一種新形式的電子地圖應(yīng)用服務(wù)得以出現(xiàn)[3].因此,為滿足用戶基本需求,需要申請百度地圖密鑰[4]和使用百度提供的開源核心類接口[5],在手機(jī)端設(shè)計并實(shí)現(xiàn)瀏覽地圖[6]、搜尋地點(diǎn)、路線規(guī)劃、自我定位[7]等多功能.

2 理論算法

2.1墨卡托投影

百度地圖使用的投影方法是墨卡托投影.墨卡托投影是由荷蘭地圖學(xué)家墨卡托(G.Mercator)于1569年創(chuàng)擬.假設(shè)地球被套在一個圓柱中,赤道與圓柱相切,然后在地球中心放一盞燈,把球面上的圖形投影到圓柱體上,再把圓柱體展開,就形成了一幅墨卡托投影的世界地圖,廣泛應(yīng)用于航空、航海中.假設(shè)墨卡托投影的坐標(biāo)系原點(diǎn)為(0,λ0),表示X軸為赤道,Y軸則在經(jīng)度為λ0處垂直于赤道,X軸的刻度是等距的,Y軸方向越靠近兩極變形越大.墨卡托投影公式為

式(1)中,λ為經(jīng)度,φ為緯度.即有經(jīng)緯度(φ,λ)對應(yīng)的墨卡托平面坐標(biāo)即為(x×R,y×R).很明顯,y方向的距離只有在赤道附近才是接近實(shí)際距離的.

2.2A*尋徑算法

A*算法可運(yùn)用到百度地圖路徑搜索中.A*算法是一種靜態(tài)路網(wǎng)中求解最短路徑最有效的直接搜索方法,算法中的距離估算值與實(shí)際值越接近,最終搜索速度越快.尋徑公式表示為

對于路徑搜索問題,狀態(tài)就是圖中的節(jié)點(diǎn),代價就是距離.定義f(n)是代價估計,g(n)為實(shí)際代價,h(n)最佳路徑的估計代價.保證找到最短路徑(最優(yōu)解的)條件,關(guān)鍵在于估價函數(shù)f(n)的選?。ɑ蛘哒fh(n)的選?。?,以d(n)表達(dá)狀態(tài)n到目標(biāo)狀態(tài)的距離,那么h(n)的選取大致有如下3種情況:1)如果h(n)≤d(n)到目標(biāo)狀態(tài)的實(shí)際距離,這種情況下,搜索的點(diǎn)數(shù)多,搜索范圍大,效率低,但能得到最優(yōu)解;2)如果h(n)=d(n),即距離估計h(n)等于最短距離,那么搜索將嚴(yán)格沿著最短路徑進(jìn)行,此時的搜索效率是最高的;3)如果h(n)>d(n),則搜索的點(diǎn)數(shù)少、搜索范圍小、效率高,但不能保證得到最優(yōu)解.

圖1 API Key申請流程圖Fig.1Flowchart of applying API Key

3 總體方案設(shè)計

3.1API Key申請及清單文件配置

百度地圖是在軟件Eclipse中進(jìn)行開發(fā).首先,在Eclipse中導(dǎo)入百度地圖的核心開發(fā)包,開發(fā)包文件包括:baidumapapi_v3_3_0.jar、locSDK_5.0.jar、libBaiduMapSDK_v3_3_0_15.so和liblocSDK5.so等文件,其中,locSDK_5.0.jar和liblocSDK5.so為百度定位SDK所使用.

自v2.1.3版本開始,需要進(jìn)入新的key申請系統(tǒng).申請流程如圖1所示,打開命令行進(jìn)入Android簽名目錄,使用JDK的keytool.exe生成數(shù)字簽名,根據(jù)規(guī)則加上應(yīng)用包名,合成安全碼,進(jìn)而獲取key.申請密鑰和百度地圖開發(fā)權(quán)限需要在清單文件中配置.

3.2總體方案

基于開源的百度地圖API的核心類及接口,設(shè)計出一套總體方案,總體流程如圖2所示.

圖2 總體方案設(shè)計圖Fig.2Overall design diagram

當(dāng)打開手機(jī)APP時,會進(jìn)入菜單主頁面,這個頁面顯示的就是常用的百度地圖應(yīng)用列表.大致分為普通地圖顯示,地圖圖層切換(底圖、衛(wèi)星圖、實(shí)時交通信息圖),地圖覆蓋物(用戶自行對地圖進(jìn)行標(biāo)注)、指定范圍內(nèi)搜索、路線策略顯示(駕車、步行、公交換乘)、自我定位.任意打開一個菜單列表都會校驗(yàn)Key、GPS(定位時才需要)、網(wǎng)絡(luò)是否打開,不滿足條件,無法進(jìn)入應(yīng)用,界面會提示用戶打開相應(yīng)的操作.當(dāng)用戶進(jìn)入到某應(yīng)用時,按返回鍵會重新回到主頁面.

4 程序部分代碼及真機(jī)實(shí)現(xiàn)結(jié)果

4.1定義基類

在程序中首先定義了一個基類BaseActivity讓其作為父類[8],應(yīng)用開發(fā)的類都是繼承這個類,這樣使得代碼利用率高且程序簡潔.首先初始化基類,然后定義兩個對象即百度地圖控件對象和控制器對象,再使用MapStatusUpdateFactory類來描述地圖狀態(tài),如設(shè)置縮放級別、坐標(biāo)、中心點(diǎn).其流程如圖3所示.

圖3 定義基類Fig.3Defined base class

4.2覆蓋物

地圖覆蓋物[9]是覆蓋到地圖上的內(nèi)容,包括:本地覆蓋物和搜索覆蓋物.本地覆蓋物[11-13]的抽象基類:OverlayOptions,搜索覆蓋物抽象類:Overlay? Manager.對于本地覆蓋物,以marker覆蓋物為例,會先新建markerOptions對象,然后設(shè)置對象的位置、圖標(biāo)、是否可以拖拽(默認(rèn)是否)、標(biāo)題等,最后將覆蓋物添加至底圖中.圓形覆蓋物CircleOp?tions、文字覆蓋物TextOptions等大體思路都與上例是一致的.Marker覆蓋物運(yùn)行結(jié)果如圖4所示,圖4中加入了泡泡窗口.

圖4 marker覆蓋物Fig.4Marker options

對于搜索覆蓋物[14-15],包括位置檢索、周邊檢索、范圍檢索、公交檢索、駕乘檢索、步行檢索等,初始化PoiSearch類,通過setOnGetPoiSearch Re?sultListener方法注冊搜索結(jié)果的監(jiān)聽對象OnGet?PoiSearchResultListener,通過自定義MySearchLis?tener實(shí)現(xiàn)類,處理不同的回調(diào)方法,獲得搜索結(jié)果,再結(jié)合覆蓋物展示結(jié)果.以步行路線為例,流程如圖5所示.以從武漢工程大學(xué)步行到華中科技大學(xué)為例,運(yùn)行結(jié)果如圖6所示.

4.3定位

定位獲取位置主要有GPS定位、網(wǎng)絡(luò)定位和WIFI定位.定位流程如圖7所示.圖8為寢室WIFI定位.

圖5 步行檢索Fig.5Walk retrieval

圖6 步行路線查詢Fig.6Query of walk route

圖7 定位流程圖Fig.7Flowchart of positioning

圖8 寢室定位Fig.8Dormitory location

5 結(jié)語

本文基于墨卡托投影法及A*尋徑算法等理論方法,通過使用開源的百度地圖API核心類及接口,進(jìn)行了密鑰的申請、清單文件的配置,設(shè)計了一套百度地圖方案,在真機(jī)上實(shí)現(xiàn)了3個常見應(yīng)用,展示文字、全城搜索、公交換乘等其他應(yīng)用均已實(shí)現(xiàn),因篇幅有限沒有列出.基于Android平臺的地圖服務(wù)具有日常實(shí)用性,未來研究重點(diǎn)是在Android平臺下,完善和創(chuàng)新百度地圖的應(yīng)用,并以百度地圖為基礎(chǔ),進(jìn)一步拓展研究用戶需求的其他項(xiàng)目.

[1]甄巍松,李國強(qiáng),魯統(tǒng)偉.基于特征點(diǎn)相似度的匹配定位算法[J].武漢工程大學(xué)學(xué)報,2011,33(4):85-88. ZHEN W S,LI G Q,LU T W.Match and location algorithm based on similarity of feature point[J]. Journal of Wuhan institute of technology,2011,33(4):85-88.

[2]魯統(tǒng)偉,林芹,李熹,等.記憶運(yùn)動方向的機(jī)器人避障算法[J].武漢工程大學(xué)學(xué)報,2013,35(4):66-71. LU T W,LIN Q,LI X,et al.Obstacle avoidance algorithm of robot based on recording move direction[J].Journal of Wuhan institute of technology,2013,35(4):66-71.

[3]靳巖,姚尚朗.Android開發(fā)入門與實(shí)踐[M].北京:人民郵電出版社,2009.

[4]楊瀟亮.基于安卓操作系統(tǒng)的應(yīng)用軟件開發(fā)[J].電子制作,2014(19):45-46. YANG X L.Application software development based on Android operating system[J].Practical electronics,2014(19):45-46.

[5]施連敏,蓋之華.基于Android的百度地圖應(yīng)用的搭建[J].技術(shù)與市場,2014,21(12):34-35. SHI L M,GAI Z H.The building of Baidu map application based on Android[J].Technology and market,2014,21(12):34-35.

[6]張波,趙雙明.基于Android平臺的百度地圖開發(fā)研究[J].軟件導(dǎo)刊,2015,14(7):96-98. ZHANG B,ZHAO S M.Baidu map development research based on Android[J].Software guide,2015, 14(7):96-98.

[7]張燕兵.Android手機(jī)定位與地圖設(shè)計與實(shí)現(xiàn)[D].長春:吉林大學(xué),2013.

[8]Android移動應(yīng)用基礎(chǔ)教程[M].北京:中國鐵道出版社,2015.

[9]孫迪,李沛鴻.百度地圖API在WebGIS中的應(yīng)用[J].河南科技,2013,11(22):165-166. SU D,LI P H.Application of Baidu map API in WebGIS[J].JournalofHenanscienceand technology,2013,11(22):165-166.

[10]潘偉洲,陳振洲,李興民.基于人工神經(jīng)網(wǎng)絡(luò)的百度地圖坐標(biāo)解密方法[J].計算機(jī)工程與應(yīng)用,2014,50(17):110-113. PAN W Z,CHEN Z Z,LI X M.Decryption method of Baidumap'scoordinatesbasedonartificialneural network[J].Computer engineering and applications,2014,50(17):110-113.

[11]朱根榮.百度地圖API應(yīng)用數(shù)例[J].電腦編程技巧與維護(hù),2013(23):29-33. ZHU G R.Application examples of Baidu maps API[J].Computer programming skills and maintenance,2013(23):29-33.

[12]付林,閆強(qiáng),李祥.基于百度地圖的小區(qū)域?qū)Ш綄?shí)現(xiàn)方案研究[J].計算機(jī)技術(shù)與發(fā)展,2014,24(5):223-226. FU L,YAN Q,LI X.Research on small area naviga?tion based on baidu maps[J].Computer technology and development,2014,24(5):223-226.

[13]鄭偉.基于Android的百度地圖車輛定位系統(tǒng)設(shè)計與實(shí)現(xiàn)[D].呼和浩特:內(nèi)蒙古大學(xué),2014.

[14]王紅崧,周海晏.基于百度地圖API的旅游地理信息系統(tǒng)開發(fā)[J].現(xiàn)代計算機(jī),2012(23):60-63. WANG H S,ZHOU H Y.Development of tourism geographic information system based on Baidu map API[J].Modern computer,2012(23):60-63.

[15]肖文漢,吳孝斌,曹瑩瑩,等.基于百度地圖API的停車場查尋系統(tǒng)的設(shè)計[J].計算機(jī)技術(shù)與發(fā)展,2014,24(4):227-229. XIAO W H,WU X B,CAO Y Y,et al.Design of finding parking system based on Baidu Map API[J]. Computer technology and development,2014,24(4):227-229.

本文編輯:陳小平

Implementation of Multi-Function Baidu Map Based on Android

FENG Xiancheng1,2,ZHOU Mi1,XU Chuan1
1.School of Electrical and Information Engineering,Wuhan Institute of Technology,Wuhan 430205,China;
2.Hubei Key Laboratory of Intelligent Robot(Wuhan Institute of Technology),Wuhan 430205,China

Based on the theories of Mercator projection and A*algorithm,a set of Baidu map plan was designed by using the methods of three core classes of Baidu map application program interface—SDK Initializer,MapView and BaiduMap.First,the key application and manifest configuration were completed,and then the base class BaseActivity was defined to complete the pre-operation such as the initialization of map interface and the calling of life cycle's method.By which the multi-function Baidu map was developed and the basic functions of map browsing,specified location search,route planning,positioning,etc.were implemented.The results indicate that the multi-function Baidu map has better portability,practicality and popularization,satisfying the users'requirement of search and location.

Android;baidumap;A*algorithm;searching

TP317

A

10.3969/j.issn.1674?2869.2016.05.015

1674-2869(2016)05-0490-05

2016-06-11

住房和城鄉(xiāng)建設(shè)部科研項(xiàng)目(2015-R3-007)

馮先成,碩士,副教授.E-mail:2023347921@QQ.com

猜你喜歡
基類覆蓋物百度
不同覆蓋物對絲栗栲種子發(fā)芽特性的影響
討論不同覆蓋物處理對雜草和容器苗生長的影響
建材與裝飾(2023年9期)2023-03-21 06:40:06
基于C#面向?qū)ο蟪绦蛟O(shè)計的封裝、繼承和多態(tài)分析
Robust adaptive UKF based on SVR for inertial based integrated navigation
不同覆蓋物對紅松播種育苗的影響
百度年度熱搜榜
青年與社會(2018年2期)2018-01-25 15:37:06
空戰(zhàn)游戲設(shè)計實(shí)例
有機(jī)地表覆蓋物在林地中的景觀評價體系研究
百度遭投行下調(diào)評級
IT時代周刊(2015年8期)2015-11-11 05:50:22
一種基于用戶興趣的STC改進(jìn)算法
阳江市| 大姚县| 黄石市| 新宁县| 海安县| 榆林市| 福州市| 礼泉县| 肇东市| 台山市| 靖远县| 固始县| 巫溪县| 礼泉县| 诸暨市| 辰溪县| 同仁县| 双江| 盖州市| 九江市| 容城县| 图片| 白朗县| 韶山市| 密山市| 怀仁县| 景宁| 蓝山县| 嘉定区| 华坪县| 于都县| 开阳县| 马鞍山市| 澳门| 巴楚县| 丰都县| 南投县| 寿阳县| 达日县| 手游| 剑阁县|