【摘 要】網(wǎng)絡(luò)電子地圖的應(yīng)用提高了人們尋找目的地、查詢路線的效率,節(jié)省了很多時(shí)間,給人們出行帶來更多便利。那么移動終端的便攜,操控方便,使得手機(jī)地圖受到熱捧。本文講解的是利用百度地圖API自己實(shí)現(xiàn)一個(gè)手機(jī)百度地圖頁面。
【關(guān)鍵詞】百度地圖 API Android
在講解實(shí)現(xiàn)之前,先來介紹一下相關(guān)知識。
API接口相信大家都不陌生,多多少少都聽說過或用過(如:微信api,淘寶api,百度地圖api,新浪微博api,百度api,支付寶api等等),很多公司都將自己的API免費(fèi)提供給大家學(xué)習(xí)和應(yīng)用。
那么API是什么呢?API(即應(yīng)用程序接口)是一組定義、程序及協(xié)議的集合,通過API接口實(shí)現(xiàn)計(jì)算機(jī)軟件之間的相互通信。API 的一個(gè)主要功能是提供通用功能集。
那么要實(shí)現(xiàn)手機(jī)百度地圖頁面將離不開百度提供的百度地圖Android SDK。百度地圖Android SDK是一套基于Android 2.1(v1.3.5及以前版本支持Android 1.5以上系統(tǒng))及以上版本設(shè)備的應(yīng)用程序接口,我們可以通過該接口實(shí)現(xiàn)豐富的LBS功能:地圖、POI檢索、地理編碼、線路規(guī)劃、覆蓋物圖層、定位、離線地圖、導(dǎo)航、LBS云、特色功能。
以下將介紹如果實(shí)現(xiàn)一個(gè)百度地圖頁面
1.下載百度地圖SDK
我們可在百度地圖Android SDK的下載頁面下載到最新版的地圖SDK,參考下載地址為:http://developer.baidu.com/map/sdkandev-download.htm
2.獲取API Key
我們在使用SDK之前需要獲取百度地圖移動版API Key,該Key與我們的百度賬戶相關(guān)聯(lián)。
所以必須先有百度帳戶,才能獲得API Key。并且,該Key與我們引用API的程序名稱有關(guān),地圖初始化時(shí)需要用到Key,所以一定要妥善保存Key。
3.開發(fā)工具
Android開發(fā)工具有很多,我們可根據(jù)自己的喜好進(jìn)行選擇。在此,我推薦使用Eclipse作為自己的開發(fā)工具,本文也是針對Eclipse開發(fā)環(huán)境下進(jìn)行編寫的。
4.工程配置
第一步:創(chuàng)建一個(gè)工程:helloMap,將開發(fā)包里的baidumapapi_vX_X_X.jar拷貝到libs(如果沒有此文件夾可自己創(chuàng)建)根目錄下,將libBaiduMapSDK_vX_X_X.so拷貝到libs\armeabi目錄下(官網(wǎng)demo里已有這兩個(gè)文件,集成到自己的工程里需要自己添加),拷貝完成后的工程目錄如圖1所示。
第二步:在工程屬性->Java Build Path->Libraries中選擇“Add External JARs”,選定baidumapapi_vX_X_X.jar,確定后返回。
圖1 拷貝類包至工程目錄libs后截圖
5.實(shí)現(xiàn)顯示地圖
百度地圖SDK為開發(fā)者提供了便捷的顯示百度地圖數(shù)據(jù)的接口,通過以下幾步操作,即可在我們的應(yīng)用中使用百度地圖數(shù)據(jù):
第一步:創(chuàng)建并配置工程(具體方法參見前文工程配置部分的介紹);
第二步:在Manifest中添加使用權(quán)限及Android版本支持;
常用使用權(quán)限如下(我們可根據(jù)自身程序需求,添加所需權(quán)限):
<!--使用網(wǎng)絡(luò)功能所需權(quán)限 -->
第三步:在布局activity_main.xml文件中修改為如下代碼所示:
<?xml version=”1.0” encoding=”utf-8”?>
android:orientation=”vertical” android:layout_width=”fill_parent” android:layout_height=”fill_parent”> android:layout_width=”fill_parent” android:layout_height=”fill_parent” android:clickable=”true” />
第四步:創(chuàng)建地圖Activity,并import相關(guān)類:
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.map.MKMapViewListener;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapView;
import com.baidu.platform.comapi.basestruct.GeoPoint;
public class MainActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
}
}
第五步:初始化地圖Activity、使用Key:
在MainActivity中定義成員變量:
BMapManager mBMapMan = 1;
MapView mMapView = 1;
在onCreate方法中增加以下代碼,并將我們申請的Key替換“我的Key”
super.onCreate(savedInstanceState);
mBMapMan=new BMapManager(getApplication());
mBMapMan.init(“我的Key\", 1);
//注意:請?jiān)谠囉胹etContentView前初始化BMapManager對象,否則會報(bào)錯(cuò)
setContentView(R.layout.activity_main);
mMapView=(MapView)findViewById(R.id.bmapsView);
mMapView.setBuiltInZoomControls(true);
//設(shè)置啟用內(nèi)置的縮放控件
MapController mMapController=mMapView.getController();
// 得到mMapView的控制權(quán),可以用它控制和驅(qū)動平移和縮放
GeoPoint point =new GeoPoint((int)(28.690* 1E6),(int)(115.894* 1E6));
//用給定的經(jīng)緯度構(gòu)造一個(gè)GeoPoint,單位是微度 (度 * 1E6)
mMapController.setCenter(point);//設(shè)置地圖中心點(diǎn)
mMapController.setZoom(12);//設(shè)置地圖zoom級別
完成以上步驟后,將我自己的手機(jī)(我的手機(jī)是android 4.1)用數(shù)據(jù)線接上電腦,將工程直接在手機(jī)上安裝運(yùn)行,如圖2所示,然后點(diǎn)擊手機(jī)中安裝的應(yīng)用helloMap,即可在我的手機(jī)中顯示百度地圖頁面,如圖3所示:
圖2 將應(yīng)用安裝到我手機(jī)中顯示截圖
圖3 點(diǎn)擊helloMap后顯示南昌市地圖