您的位置:首页 > 移动开发 > Android开发

Android百度地图API学习(二) 开发基本流程

2013-10-10 17:29 316 查看
第一步 在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">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<com.baidu.mapapi.MapView
android: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);  
最后是效果图:


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: