百度地圖SDK for Android【Demo地圖展示】

jopen 12年前發布 | 66K 次閱讀 Android Android開發 移動開發

        我將通過下面的講解,教大家一步一步構建最基本的百度地圖應用——基礎地圖展示:

       第一步:創建Android工程、導入百度地圖開發包;

       配置好的工程如下圖所示:

 百度地圖SDK for Android【Demo地圖展示】

       第二步:在AndroidManifest.xml中添加各種權限;

       代碼如下:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=" package="com.baidumap.basemap"
android:versionCode="1"
android:versionName="1.0" >

    <uses-sdk  
        android:minSdkVersion="8"  
        android:targetSdkVersion="8" />  

    <supports-screens android:largeScreens="true"  
        android:normalScreens="true"  
        android:smallScreens="true"  
        android:resizeable="true"  
        android:anyDensity="true"/>  
    <!-- 添加屏幕支持 -->  

    <application  
        android:allowBackup="true"  
        android:icon="@drawable/ic_launcher"  
        android:label="@string/app_name"  
        android:theme="@style/AppTheme" >  
        <activity  
            android:name="com.baidumap.basemap.MainActivity"  
            android:label="@string/app_name"   
            android:screenOrientation="sensor"  
            android:configChanges="orientation|keyboardHidden">  
            <!-- 注意添加轉屏的相關設置 -->  

            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  

                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
    </application>  

    <!--使用網絡功能所需權限  -->  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  
    <!-- SDK離線地圖和cache功能需要讀寫外部存儲器 -->    
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>  
    <!-- 獲取設置信息和詳情頁直接撥打電話需要以下權限  -->    
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>    
    <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>  

</manifest>  </pre> <p></p>

       第三步:在布局文件中添加百度地圖控件(mapview);

       代碼如下:

    <RelativeLayout xmlns:android="
        xmlns:tools="
        android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

    <!-- 放入百度地圖的mapview -->  
    <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:clickable="true"/>  

</RelativeLayout>  </pre> <p></p>

       第四步:在主類中定義mapview對象和地圖管理對象,在oncreate方法里需要首先初始化地圖管理對象,然后初始化mapview對象,并且設置mapview的相應狀態;

       代碼如下:

    import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapView;
import com.baidu.platform.comapi.basestruct.GeoPoint;

import android.os.Bundle;  
import android.app.Activity;  


public class MainActivity extends Activity {  

    BMapManager bMapManager = null;  // 定義管理sdk的對象  
    MapView mapView = null;  // 定義mapview對象  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // 初始化管理對象,注意要在setContentView(R.layout.activity_main)之前初始化,否則會報錯  
        bMapManager = new BMapManager(getApplication());  
        bMapManager.init("輸入您申請的key", null);  

        setContentView(R.layout.activity_main);  

        // 初始化mapview對象,并且設置顯示縮放控件  
        mapView = (MapView) findViewById(R.id.bmapsView);  
        mapView.setBuiltInZoomControls(true);  

        // 定義地圖控件,獲取mapview的控制,并把地圖范圍定位北京市  
        MapController mapController = mapView.getController();  
        GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));  
        mapController.setCenter(point);  
        mapController.setZoom(12);  

    }  

    //注意在onResume、onDestroy和onPause中控制mapview和地圖管理對象的狀態  

    @Override  
    protected void onResume() {  
        // TODO Auto-generated method stub  
        mapView.onResume();  
        if(bMapManager!=null){  
        bMapManager.start();  
        }  
        super.onResume();  
    }  

    @Override  
    protected void onDestroy() {  
        // TODO Auto-generated method stub  
        mapView.destroy();  
        if(bMapManager!=null){  
            bMapManager.destroy();  
            bMapManager=null;  
        }  
        super.onDestroy();  
    }  

    @Override  
    protected void onPause() {  
        // TODO Auto-generated method stub  
        mapView.onPause();  
        if(bMapManager!=null){  
            bMapManager.stop();  
        }  
        super.onPause();  
    }  

}  </pre><span style="font-size:14px;"><span style="font-size:14px;">  </span>運行程序即可調啟百度地圖服務,展示您所需的地圖,結果如下所示:</span> <p></p>

來自:
http://blog.csdn.net/baidulbs/article/details/8564052

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!