第一步 在xml布局文件中加入mapview控件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextViewandroid:layout_width="fill_parent"
android:layout_height="wrap_content"android:text="@string/hello" />
<com.baidu.mapapi.MapViewandroid:id="@+id/bmapsView"
android:layout_width="fill_parent"android:layout_height="fill_parent"
android:clickable="true" />
</LinearLayout>
第二步,在Manifest中添加使用权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>第三步开始写主体工程了public class MainActivity extends MapActivity implements LocationListener
{
BMapManager mBMapMan;
MapController mMapController;
MKOfflineMap mOffline = null; //申明变量 离线地图
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//BMapManager的方法
mBMapMan = new BMapManager(getApplication());
// mBMapMan.init("3B388F2271D0255A779274772B906055B2942088", null);//这是普通的 地图管理器的 注册
mBMapMan.init("注册码", new MKGeneralListener() {
public void onGetPermissionState(int iError) {
// TODO 返回授权验证错误,通过错误代码判断原因,MKEvent中常量值。
System.out.println("");
}
public void onGetNetworkState(int iError) {
// TODO 返回网络错误,通过错误代码判断原因,MKEvent中常量值。
System.out.println("");
}
});
super.initMapActivity(mBMapMan);
//mapview的方法 ,都是一些地图显示情况。 MapView.LayoutParams可以进行布局的设置
MapView mMapView = (MapView) findViewById(R.id.bmapsView);
//设置启用内置的缩放控件
mMapView.setBuiltInZoomControls(true);
//交通图
//mMapView.setTraffic(true);
//卫星图
//mMapView.setSatellite(true);
//加入新的图层
mMapView.getOverlays().add(new MyOverlay());
//设置地图中心点
//mMapController.setCenter(p2);
//获取最大缩放级别
//int zoomax=mMapView.getMaxZoomLevel();
//获取当前缩放级别
//int currentzoom=mMapView.getZoomLevel();
//onDetachedFromWindow() 当mapview与window分离使用 就要清除缩放控件
//getProjection() 获取屏幕像素和经纬度转换
//Point point = mapView.getProjection().toPixels(p2, null);
//canvas.drawText("深圳新世纪", point.x, point.y, paint);
//获得覆盖层列表
//List<Overlay> lo=new ArrayList<Overlay>();
//lo=mMapView.getOverlays();
// MapController处理地图移动和缩放的工具类。
// 得到mMapView的控制权,可以用它控制和驱动平移和缩放
mMapController = mMapView.getController();
//设置地图zoom级别
mMapController.setZoom(15);}
最后要加入关于BMapManager的管理设置
@Override
protected void onDestroy() {
if (mBMapMan != null) {
mBMapMan.destroy();
mBMapMan = null;
}
super.onDestroy();
}
@Override
protected void onPause() {
if (mBMapMan != null) {
mBMapMan.stop();
}
super.onPause();
}
@Override
protected void onResume() {
if (mBMapMan != null) {
mBMapMan.start();
}
super.onResume();
}
这样就可以进行基本的使用了,在我们的模拟器上打开了一个百度地图,对地图进行移动显示等浏览。其实,基本的就是BMapManager 类和MapController类,BMapManager 类,负责管理地图引擎。mBMapMan = new BMapManager(getApplication());
mBMapMan.init("3B388F2271D0255A779274772B906055B2942088", null);//这是普通的 地图管理器的 注册mBMapMan.start();//开启api
MapController类,负责处理地图移动和缩放。mMapController = mMapView.getController();
//设置地图zoom级别
mMapController.setZoom(15);
最后是效果图: