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

jopen 9年前

        我将通过下面的讲解,教大家一步一步构建最基本的百度地图应用——基础地图展示:

       第一步:创建Android工程、导入百度地图开发包;

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

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

       第二步:在AndroidManifest.xml中添加各种权限;

       代码如下:

    <?xml version="1.0" encoding="utf-8"?>        <manifest xmlns:android="http://schemas.android.com/apk/res/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>  

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

       代码如下:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"            xmlns:tools="http://schemas.android.com/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>  

       第四步:在主类中定义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();            }                }  
  运行程序即可调启百度地图服务,展示您所需的地图,结果如下所示:</span>

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