步骤
1.下载百度地图Android SDK,地址:http://developer.baidu.com/map/sdkandev-download.htm
Baidu_AndroidSDK_v1.3.5_Guide.chm
BaiduMapApi_Docs_Android_1.3.5---文档
BaiduMapApi_Lib_Android_1.3.5---jar包
BaiduMapApi_Sample_Android_1.3.5---例子
获取key 地址:http://developer.baidu.com/map/android-mobile-apply-key.htm
2.创建一个新的应用,清单文件里面copy权限和添加屏幕及版本支持,参考地址http://developer.baidu.com/map/sdkandev-2.htm,或者直接在百度提供的demo里面copy
3.jar包copy,可以直接从demo的lib目录里面拷贝,需要copy,文件夹armeabi和baidumapapi.jar
4.在布局文件里面提交,百度地图控件:
<com.baidu.mapapi.MapView android:id="@+id/bmapsView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
5.java代码
package com.android.mybaidu;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
public class MainActivity extends MapActivity {
//1.MapActivity显示在MapView类中的activity处理逻辑的基础类
private MapView mapView;
private BMapManager bMapManager;//地图引擎管理类,可以打开地图,可以停止地图
//百度地图的key
private String keyString="8CA9C86E319A0D344E0F1E2355AA772953521DA1";
//在百度地图上添加一些控件,比如是放大或缩小的控件
private MapController mapController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.bmapsView);
bMapManager=new BMapManager(this);
//2.必须要加载key
bMapManager.init(keyString, new MKGeneralListener() {//接口是监听授权结果
@Override
public void onGetPermissionState(int iError) {
}
@Override
public void onGetNetworkState(int iError) {
if(iError==300){//失败
Toast.makeText(MainActivity.this, "输入的key有误,请核实!!", 0).show();
}
}
});
//3.MapActivity方法 初始化activity
initMapActivity(bMapManager);
//表示可以设置缩放功能
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
//需要定义一个经纬度:北京天安门
GeoPoint geoPoint=new GeoPoint(((int)(39.915*1E6)), ((int)(116.404*1E6)));
mapController.setCenter(geoPoint);//设置一个中心点
mapController.setZoom(12);//设置缩放级别是12个级别
//显示交通地图
// mapView.setTraffic(true);
//显示卫星地图
mapView.setSatellite(true);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
protected void onDestroy() {
super.onDestroy();
if(bMapManager!=null){
bMapManager.destroy();
bMapManager=null;
}
}
@Override
protected void onResume() {
super.onResume();
if(bMapManager!=null){
bMapManager.start();
}
}
@Override
protected void onPause() {
super.onPause();
if(bMapManager!=null){
bMapManager.stop();
}
}
}