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

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

第一步:创建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();
	}

}

运行程序即可调启百度地图服务,展示您所需的地图,结果如下所示:

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

点击下载工程文件!


更多详细信息请登录百度地图API官方网站:http://developer.baidu.com/map/
百度地图API论坛:http://bbs.lbsyun.baidu.com/

你可能感兴趣的:(android)