Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android技術基礎 >> 第102章、百度地圖初探(從零開始學Android)

第102章、百度地圖初探(從零開始學Android)

編輯:Android技術基礎

地圖以前都是基本屬於導航專有的,但伴隨著智能機的普及,手機地圖也成為了智能機的必備,而且谷歌、百度、凱立德、高德目前對地圖的競爭似乎也進入了白熱化。也許,在以往感覺這個東東是可望不可及的,而今天伴隨著各個地圖供應商API的開放,對我們開發者也變得越來越容易了。

我們今天對百度地圖初探,以揭開這層神秘的面紗。

准備工作:

(1)第一步、申請密鑰;
該套SDK提供的服務是免費的,接口無使用次數限制。您需先申請密鑰(key),才可使用該套SDK。

申請網址:http://developer.baidu.com/map/android-mobile-apply-key.htm

\

填寫完畢之後,經審核,百度會給您一個密鑰。例如:

\

(2)第二步,下載Android SDKv2.0.0(矢量地圖版)

下載地址:http://developer.baidu.com/map/static/doc/BaiduMap_AndroidSDK_v2.0.0_Lib.zip

(3)第三步,解壓縮AndroidSDK_v2.0.0_Lib.zip

\

准備工作至此已經結束。

 

一、工程配置

1、第一步,在工程裡新建libs文件夾,將開發包裡的baidumapapi_v2_0_0.jar拷貝到libs根目錄下,將libBMapApiEngine_v2_0_0.so和libvi_voslib.so 拷貝到libs\armeabi目錄下,拷貝完成後的工程目錄如下圖所示;

\

2、第二步:在工程屬性->Java Build Path->Libraries中選擇“Add External JARs”,選定baidumapapi_v2_0_0.jar,確定後返回。

通過以上兩步操作後,您就可以正常使用百度地圖SDK為您提供的全部功能了。

二、設計界面

1、布局文件

打開res/layout/activity_main.xml文件。
輸入以下代碼:

[html] view plain copy  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.         android:orientation="vertical"  
  4.         android:layout_width="match_parent"  
  5.         android:layout_height="match_parent">  
  6.           
  7.     <com.baidu.mapapi.map.MapView   
  8.         android:id="@+id/mapview"  
  9.         android:layout_width="match_parent"  
  10.         android:layout_height="match_parent"  
  11.         android:clickable="true" />  
  12.           
  13. </LinearLayout>  

注:使用百度地圖要使用<com.baidu.mapapi.MapView ...>,這個就是用來顯示地圖的MapView控件。
三、程序文件

1、MainActivity.java
打開“src/com.genwoxue.baidumap/MainActivity.java”文件。
然後輸入以下代碼:

[java] view plain copy  
  1. package com.genwoxue.baidumap;  
  2.   
  3. //導入地圖相關包  
  4. import android.app.Activity;  
  5. import android.os.Bundle;  
  6. import com.baidu.mapapi.BMapManager;  
  7. import com.baidu.mapapi.map.MapController;  
  8. import com.baidu.mapapi.map.MapView;  
  9. import com.baidu.platform.comapi.basestruct.GeoPoint;  
  10.   
  11. public class MainActivity extends Activity {  
  12.      BMapManager mBMapMan = null;   
  13.      MapView mMapView = null;  
  14.       
  15.     @Override  
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.           
  18.         super.onCreate(savedInstanceState);  
  19.         //初始化BMapManager對象(注意:請在試用setContentView前初始化,否則會報錯)  
  20.         mBMapMan=new BMapManager(getApplication());  
  21.         mBMapMan.init("9BFF43A016092BFE3698B8E456B6896FCFC029EE", null);    
  22.         setContentView(R.layout.activity_main);  
  23.           
  24.         mMapView=(MapView)findViewById(R.id.mapview);  
  25.         mMapView.setBuiltInZoomControls(true);  
  26.           
  27.         //設置啟用內置的縮放控件  
  28.         MapController mMapController=mMapView.getController();  
  29.         // 得到mMapView的控制權,可以用它控制和驅動平移和縮放  
  30.         GeoPoint point =new GeoPoint((int)(34.7569* 1E6),(int)(113.6632* 1E6));  
  31.         //用給定的經緯度構造一個GeoPoint,單位是微度 (度 * 1E6)  
  32.         mMapController.setCenter(point);//設置地圖中心點  
  33.         mMapController.setZoom(12);//設置地圖zoom級別  
  34.     }  
  35.       
  36.     @Override  
  37.     protected void onDestroy(){  
  38.             mMapView.destroy();  
  39.             if(mBMapMan!=null){  
  40.                 mBMapMan.destroy();  
  41.                 mBMapMan=null;  
  42.             }  
  43.             super.onDestroy();  
  44.     }  
  45.     @Override  
  46.     protected void onPause(){  
  47.             mMapView.onPause();  
  48.             if(mBMapMan!=null){  
  49.                 mBMapMan.stop();  
  50.             }  
  51.             super.onPause();  
  52.     }  
  53.     @Override  
  54.     protected void onResume(){  
  55.             mMapView.onResume();  
  56.             if(mBMapMan!=null){  
  57.                 mBMapMan.start();  
  58.             }  
  59.             super.onResume();  
  60.     }  
  61. }  


四、配置文件
打開“AndroidManifest.xml”文件。
然後輸入以下代碼:

[html] view plain copy  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.genwoxue.baidumap"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="10"  
  9.         android:targetSdkVersion="15" />  
  10.       
  11.     <application  
  12.         android:allowBackup="true"  
  13.         android:icon="@drawable/ic_launcher"  
  14.         android:label="@string/app_name"  
  15.         android:theme="@style/AppTheme" >  
  16.         <activity  
  17.             android:name="com.genwoxue.baidumap.MainActivity"  
  18.             android:label="@string/app_name" >  
  19.             <intent-filter>  
  20.                 <action android:name="android.intent.action.MAIN" />  
  21.                 <category android:name="android.intent.category.LAUNCHER" />  
  22.             </intent-filter>  
  23.         </activity>  
  24.         <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"></service>  
  25.     </application>  
  26.       
  27.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  28.     <uses-permission android:name="android.permission.INTERNET" />  
  29.     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  30.     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
  31.     <!-- SDK離線地圖和cache功能需要讀寫外部存儲器 -->  
  32.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  33.           
  34.     <supports-screens android:largeScreens="true"  
  35.                 android:normalScreens="true"  
  36.             android:smallScreens="true"  
  37.             android:resizeable="true"  
  38.             android:anyDensity="true"/>  
  39.   
  40. </manifest>  


五、運行結果

 

  \

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved