百度地图SDK v2.1.2使用方法

1.开发工具

    Android开发工具有很多,开发者可根据自己的喜好进行选择。在此,我们推荐开发者使用Eclipse作为自己的开发工具,本套开发指南也是针对Eclipse开发环境下进行编写的。

2.工程配置

    第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_v2_1_2.jar拷贝到 libs根目录下,将libapp_BaiduMapApplib_v2_1_2.so和libvi_voslib.so 拷贝到libs\armeabi目录下(官网demo里已有这三个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;

    注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。

andorid_dev1.jpg

    第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_v2_1_2.jar,确定后返回。

    通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

3.显示地图

    百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:

    第一步:创建并配置工程(具体方法参见工程配置部分的介绍);

    第二步:在Manifest中添加使用权限及Android版本支持;

    常用使用权限如下(开发者可根据自身程序需求,添加所需权限):

               
<!--使用网络功能所需权限  -->
<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>
<!-- 使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
</uses-permission>
<permission android:name="android.permission.BAIDU_LOCATION_SERVICE">
</permission>
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_GPS">                   
</uses-permission>

 

配置Application

<application
        android:name=".ui.DemoApplication"
        android:debuggable="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >

(自加)  需要添加DemoApplication文件,并设置name为DemoApplication,否则会报错如下

 

 

    配置Activity:

<activity android:name=".MyMapActivity" android:screenorientation="sensor" android:configchanges="orientation|keyboardHidden">  </activity>  

 

 

    添加屏幕及版本支持:

<supports-screens android:largescreens="true" android:normalscreens="true" android:smallscreens="true" android:resizeable="true" android:anydensity="true">
<uses-sdkandroid:minsdkversion="7">
                </uses-sdkandroid:minsdkversion="7"></supports-screens>

    第三步:在布局xml文件中添加地图控件,布局文件保存为activity_main.xml:

<!--?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="hello world">
            <com.baidu.mapapi.map.mapview android:id="@+id/bmapsView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true">
    </com.baidu.mapapi.map.mapview></textview></linearlayout>

 

     

    第四步:创建地图Activity,并import相关类:

    import android.app.Activity;
    import android.content.res.Configuration;
    import android.os.Bundle;
    import android.view.Menu;
    import android.widget.FrameLayout;
    import android.widget.Toast;
    import com.baidu.mapapi.BMapManager;
    import com.baidu.mapapi.map.MKMapViewListener;
    import com.baidu.mapapi.map.MapController;
    import com.baidu.mapapi.map.MapPoi;
    import com.baidu.mapapi.map.MapView;
    import com.baidu.platform.comapi.basestruct.GeoPoint;
     
    public class MyMapActivity extends Activity{
            @Override
            public void onCreate(Bundle savedInstanceState){
            }
    }

                

    第五步:初始化地图Activity、使用key:

    在MyMapActivity中定义成员变量:

BMapManager mBMapMan = null;
MapView mMapView = null;

 


             

    在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”

    super.onCreate(savedInstanceState);

    DemoApplication app = (DemoApplication)this.getApplication();
     if (app.mBMapManager == null) {
          app.mBMapManager = new BMapManager(this);
          /**
           * 如果BMapManager没有初始化则初始化BMapManager
           */
          app.mBMapManager.init(DemoApplication.strKey,new DemoApplication.MyGeneralListener());
    }

//注意:请在试用setContentView前初始化BMapManager对象,否则会报错 setContentView(R.layout.activity_main); mMapView=(MapView)findViewById(R.id.bmapsView); mMapView.setBuiltInZoomControls(true); //设置启用内置的缩放控件 MapController mMapController=mMapView.getController(); // 得到mMapView的控制权,可以用它控制和驱动平移和缩放 GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6)); //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6) mMapController.setCenter(point);//设置地图中心点 mMapController.setZoom(12);//设置地图zoom级别


    重写以下方法,管理API

    @Override
    protected void onDestroy(){
            mMapView.destroy();
            if(mBMapMan!=null){
                    mBMapMan.destroy();
                    mBMapMan=null;
            }
            super.onDestroy();
    }
    @Override
    protected void onPause(){
            mMapView.onPause();
            if(mBMapMan!=null){
                mBMapMan.stop();
            }
            super.onPause();
    }
    @Override
    protected void onResume(){
            mMapView.onResume();
            if(mBMapMan!=null){
                    mBMapMan.start();
            }
        super.onResume();
    }

                

 

    完成以上步骤后,运行程序,即可在您的应用中显示如下地图:

android_dev2.jpg

 

 

 

  

posted @ 2013-07-01 09:43  马小豆包  阅读(912)  评论(0编辑  收藏  举报