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

?

Android系統(tǒng)中基于Baidu Map的應(yīng)用技術(shù)研究

2014-10-27 16:33:57徐麗仙
無線互聯(lián)科技 2014年9期
關(guān)鍵詞:百度檢索編碼

徐麗仙

摘 要:智能手機和無線通信技術(shù)高速發(fā)展,為大量應(yīng)用提供了技術(shù)支撐,以地圖服務(wù)為基礎(chǔ)的應(yīng)用給我們提供了很多便利。其中Baidu Map由于有著豐富的功能,提供多樣的應(yīng)用接口,更加方便開發(fā)人員調(diào)用,越來越受到他們的歡迎。Baidu Map現(xiàn)在使用的是SDK3.0版本,在以前版本上做了修改。本文研究了在Android平臺上如何實現(xiàn)新的地圖加載過程和地址編碼的轉(zhuǎn)換,為使用Baidu Map SDK3.0進行相關(guān)Android應(yīng)用開發(fā)的技術(shù)人員提供一定的參考。

關(guān)鍵詞:Android;BaiduMap;SDK3.0;地圖加載;地址編碼

隨著智能手機處理器、存儲器等相關(guān)硬件技術(shù)的快速發(fā)展,以及軟件技術(shù)的突飛猛進,智能手機改變了我們的生活。它除了通信、聊天和游戲功能外在手機購物、電子支付、其他信息交互等方面發(fā)揮了更多的作用,為我們的生活提供了快捷方便的信息通道。當前手機大部分采用iOS、Windows Phone和Android操作系統(tǒng),而由于Android系統(tǒng)擁有市場份額大、平臺開放性、豐富的硬件選擇、軟件開發(fā)不受限制等很多優(yōu)點,國內(nèi)手機廠商基本都采用Android系統(tǒng),因而基于Android平臺的應(yīng)用程序如雨后春筍,不但數(shù)量多,應(yīng)用也越加廣泛。同時推動了Android Market的發(fā)展,這正提供了良性發(fā)展循環(huán)。

在眾多應(yīng)用中,基于用戶位置的服務(wù)給人們提供更多方便[1],也是市場迅猛的增長點。除了汽車導(dǎo)航這種大型的應(yīng)用外,公交服務(wù)[2]、導(dǎo)游地理信息服務(wù)、虛擬校園、停車誘導(dǎo)服務(wù)等針對具體、適用的特定應(yīng)用定制也越來越多,而這些應(yīng)用都要基于地圖信息來完成開發(fā)。目前主要采用google地圖、天地圖和百度地圖,但是google退出中國大陸,需要通過香港、臺灣等地方取得服務(wù)信息,造成信息慢或者不暢通,加之實現(xiàn)過程也很麻煩,給開發(fā)者和用戶帶來了很多不便。百度地圖采用Mapbar提供數(shù)據(jù),Mapbar在包含基礎(chǔ)數(shù)據(jù)的同時,還有幾千家聯(lián)盟成員在整理和豐富各行業(yè)的最新信息。因此百度地圖提供了大量的地理信息,更新很快,節(jié)省流量,公交查詢較準確等特點在大陸應(yīng)用較為廣泛。

本論文以Android平臺為基礎(chǔ),研究在一些需要提供用戶位置服務(wù)的應(yīng)用程序中如何利用百度地圖提供的相關(guān)信息與服務(wù),實現(xiàn)基于地圖應(yīng)用的相關(guān)技術(shù),并為相關(guān)開發(fā)人員提供成熟的技術(shù)支持。

1 搭建Baidu Map開發(fā)環(huán)境

本文采用Eclipse作為IDE,并在Android平臺環(huán)境下實現(xiàn)。必須搭建相關(guān)開發(fā)平臺[3]才能實現(xiàn)Baidu Map應(yīng)用開發(fā),首先需要注冊百度用戶并申請百度地圖的開發(fā)密鑰(key),下載API開發(fā)包。

1.1 申請開發(fā)密鑰(key)

為保證能夠使用百度地圖SDK提供相關(guān)開發(fā)服務(wù),用戶必須要申請與百度賬號相關(guān)聯(lián)的開發(fā)密鑰。同時為了保證安全性,百度對v2.13以后版本的key驗證體系進行了更新。在新的機制中,一個key和一個應(yīng)用程序是唯一對應(yīng)的,而且只有在與此包名匹配的應(yīng)用程序才有效。但在同一個程序中多次使用地圖功能可以使用同一個密鑰。在地址http://developer.baidu.com/map中選擇Android開發(fā),申請過程如圖1所示。

在配置應(yīng)用時應(yīng)用類型為for mobile,安全碼由數(shù)字簽名和包名合成之間用分號隔開,其中數(shù)字簽名可在開發(fā)工具Eclipse的winows → preferance → android→ build下SHA1 fingerprint一串由冒號分割的十六進制數(shù)據(jù)。包名是發(fā)開時在配置文件中的包,如項目中AndroidMainifest.xml文件里代碼package="com.android.mybaidu"指定的包名。

1.2 Android SDK[4]

百度地圖Android SDK是基于安卓系統(tǒng)設(shè)備的一套API,目前版本是v3.0.0,并提供全新的界面用于key申請。此API提供了很多實用功能。

⑴地圖功能,包括地圖的展示和操作。如2D、3D地圖、衛(wèi)星圖及實時交通圖等,并可實現(xiàn)縮放、旋轉(zhuǎn)和改變視角等控制操作。

⑵POI檢索,包括周邊指定半徑檢索、給定區(qū)域檢索和在一個城市內(nèi)檢索。

⑶地理編碼,將地球的經(jīng)緯度轉(zhuǎn)換為詳細中文地址或地址描述,以及中文地址或描述轉(zhuǎn)換為經(jīng)緯度信息。

⑷線路規(guī)劃,如公交信息查詢及換乘規(guī)劃,駕車步行線路檢索規(guī)劃等。

⑸定位功能,可通過GPS、WiFi、Base Station、IP混合定位模式等來實現(xiàn)定位功能。

除了上面的功能外還提供支持多種地圖覆蓋物,離線地圖導(dǎo)入,地理導(dǎo)航,實現(xiàn)海量數(shù)據(jù)數(shù)據(jù)存儲和高效檢索用戶數(shù)據(jù)的LBS云服務(wù)。還有短串分享、Place詳情頁展示等特色服務(wù)。

下載對應(yīng)SDK后,將文件baidumapapi_v3_0_0.jar和libBaiduMapSDK_3_0_0.so拷貝到項目的對應(yīng)文件夾下,如圖2所示。最后在Project→Properties→Java Build Path→Libraries選項下,通過Add External JARs按鈕添加baidumapapi_v3_0_0.jar文件完成配置如圖3所示。

2 地圖加載

新建項目后,在程序中加載顯示地圖是整個Map應(yīng)用的基礎(chǔ),是完成其他地圖操作的前提。這需要對配置文、布局文件和java文件進行修改。

2.1 AndroidManifest.xml配置文件

為了獲得地圖服務(wù),在該文件application下添加從baidu開放平臺上申請到的密鑰,并根據(jù)實際需要添加相應(yīng)的用戶權(quán)限許可,添加屏幕支持。

添加key代碼如下

android:value="這里為用戶申請的key"/>

添加權(quán)限[5]方法如下

android:name="android.permission.權(quán)限代碼">

其中主要相關(guān)權(quán)限配置代碼與說明如表1所示。

2.2 布局文件

布局文件是顯示地圖信息容器,用戶展示特定要求的地圖并根據(jù)需要通過覆蓋層進行位置圖標、路線標記。MapView控件用于顯示地圖信息,通過加載com.baidu.mapapi.map包調(diào)用MapView類,屬性設(shè)置代碼如下所示。

android:layout_height="fill_parent"

android:layout_width="fill_parent"

android:id="@+id/bmapView"

android:clickable="true"/>

2.3 應(yīng)用程序?qū)崿F(xiàn)

為了能夠使用SDK所提供的地圖服務(wù),首先要調(diào)用SDKInitializer類的initialize方法來初始化由getApplicationContext()得到的context信息,而且該方法要求在setContentView()方法前調(diào)用。方法如下代碼所示。

SDKInitializer.initialize(getApplicationContext());

調(diào)用MapView類[6]對象mapView的方法實現(xiàn)對地圖生命周期進行管理它是和Activity同步的。相關(guān)說明如表2所示,加載完成后在模擬器運行如圖4所示。

此外還有g(shù)etMap()方法取得地圖控制器給BaiduMap類的對象,只有該對象才能實現(xiàn)縮放、定位等功能。代碼為mBaiduMap = mMapView.getMap();

Baidu Map提供了衛(wèi)星地圖和普通地圖兩種類型地圖,通過調(diào)用前面mBaiduMap對象的setMapType()方法實現(xiàn),參數(shù)BaiduMap.MAP_TYPE_NORMAL和BaiduMap.MAP_TYPE_SATELLITE分別為普通地圖和衛(wèi)星地圖,顯示效果如圖 和 所示。在百度地圖服務(wù)中還提供了主要城市交通路況實時查詢功功能,隨著發(fā)展將會有更多城市加入到此項服務(wù)。

3 geocode技術(shù)

即地理編碼技術(shù),地圖上的地理位置是通過經(jīng)度和緯度的交叉點來確定的,確定位置信息是實現(xiàn)其它功能服務(wù)的基礎(chǔ),智能終端可通過GPS、WiFi、3G或4G所提供的數(shù)據(jù)確定自己的位置。但在實際操作中用戶所關(guān)心的是省市區(qū)道路等信息,這就有時需要開發(fā)人根據(jù)具體使用目的進行處理。Baidu SDK V3.0專門提供了com.baidu.mapapi.search.geocode程序包提供相關(guān)服務(wù),其中包含多個功能類。

3.1 GeoCodeOption類和ReverseGeoCodeOption類

GeoCodeOption類用來設(shè)置保存地址位置信息,提供兩個方法,city()設(shè)置城市名稱,address()設(shè)置道路位置等具體信息。

ReverseGeoCodeOption類用于設(shè)置保存經(jīng)緯度位置坐標信息,由方法location(LatLng location)實現(xiàn)。

3.2 GeoCodeResult類和ReverseGeoCodeResult類

GeoCodeResult類,其中g(shù)etAddress()和getLocation()方法分別取得地址信息和位置信息。

ReverseGeoCodeResult類,共有五種方法getAddress()、getAddressDetail()、getBusinessCircle()、getLocation()和getPoiList(),分別取得簡要地址、層次化地址、所在商圈名稱、位置坐標和所在位置PIO信息。

3.3 GeoCoder類

GeoCoder類提供一些接口,用于實現(xiàn)查詢地理編碼操作。其方法主要有新建查詢newInstance()、執(zhí)行地址信息編碼到經(jīng)緯度請求geocode()、執(zhí)行經(jīng)緯度到地址信息請求reverseGeoCode()、設(shè)置查詢結(jié)果監(jiān)聽者setOnGetGeoCodeResultListener()和釋放查詢的地理編碼對象destroy()。

3.4 ReverseGeoCodeResult.AddressComponent類

該類按層次化的方式返回城市、區(qū)縣、街道名稱及門牌號信息。

4 小結(jié)

目前百度提供給開發(fā)者的是Andoid SDK3.0版本,與早期版本有不少區(qū)別。他對很多方法進行了簡化,有的也修改了,也增加了一些新的方法。特別在地圖初始化方面作了較大調(diào)整,取消了bMapManager對象的管理功能,改動的主要目的一方面是方便開發(fā)者的使用,另一方面也是為了增加前面列舉的適用功能。由于各種原因,本論文僅在題圖加載和地址編碼方面進行了研究,以后還將在導(dǎo)航、LBS云檢索、計算工具以及全景地圖功能等方面繼續(xù)學(xué)習(xí)研究,為開發(fā)提供一些技術(shù)總結(jié)。

[參考文獻]

[1]張倩怡.移動地圖“逐利”生活服務(wù)[N].北京日報,2014-01-02(第008版).

[2]劉龍,胡靜,宋鐵成.基于Android系統(tǒng)的公共交通客戶端的設(shè)計[J].電氣電子教學(xué)學(xué)報:2013(6):37-41

[3]焦健.Eclipse下Android環(huán)境的搭建[J].信息與電腦:2012(6):33-34.

[4]Android SDK v3.0.0概述[EB/OL].[2014-07-20]http://developer.baidu.com/map/sdk-android.htm

[5]吳大勇,鄭紫微.基于Android平臺的訪問權(quán)限機制優(yōu)化方案[J].計算機工程:2013(5):144-147.

[6]Android SDK v3.0.0參考類[EB/OL].[2014-07-20]http://developer.baidu.com/map/android_refer/index.html.

猜你喜歡
百度檢索編碼
基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
《全元詩》未編碼疑難字考辨十五則
Robust adaptive UKF based on SVR for inertial based integrated navigation
子帶編碼在圖像壓縮編碼中的應(yīng)用
電子制作(2019年22期)2020-01-14 03:16:24
2019年第4-6期便捷檢索目錄
Genome and healthcare
百度年度熱搜榜
青年與社會(2018年2期)2018-01-25 15:37:06
專利檢索中“語義”的表現(xiàn)
專利代理(2016年1期)2016-05-17 06:14:36
百度遭投行下調(diào)評級
IT時代周刊(2015年8期)2015-11-11 05:50:22
百度“放衛(wèi)星”,有沒有可能?
太空探索(2014年4期)2014-07-19 10:08:58
东方市| 尚志市| 通许县| 宁陵县| 正镶白旗| 宝鸡市| 泗水县| 和硕县| 普宁市| 德江县| 黔东| 泰来县| 农安县| 南汇区| 西平县| 方城县| 平顶山市| 石台县| 临汾市| 时尚| 康马县| 襄樊市| 安泽县| 宝鸡市| 西华县| 仙居县| 平遥县| 香港 | 晋州市| 光泽县| 曲松县| 柏乡县| 江阴市| 靖西县| 普兰店市| 拉萨市| 治多县| 会理县| 加查县| 青神县| 政和县|