百度地图的使用和学习1

     在之前的项目里面有遇到过应用百度地图的功能。具体的使用过后呢,感觉整体的使用过程还算简单的,整个API也把一般会用到的功能都描述的比较清楚,我们按照上面的介绍基本就能完成其中的功能。

     首先,要用百度地图的话就必须要去申请百度的开发者然后就可以去申请百度的一个API key。之后打开http://lbsyun.baidu.com/apiconsole/key这个网址,创建一个应用。

     

      

                    

      创建应用最重要的一步是【安全码】。安全码是有【数字签名】和【;】和【包名】组成。包名就是你所创建的项目的包的结构,是指AndroidManifest.xml中的manifest标签下的   package的值。

      数字签名指android的签名证书的SHA1值。这个这里就不介绍了,网上对于这一块的介绍还是很多的,通常我们的eclipse里面就能看到这个SHA1的值,然后加上我们的包名就可以生成这样的一个数字签名。

     这样的话我们接下来就要下载百度地图的sdk开发包了。这个网址是http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download,进去以后会有自定义的下载选项,具体的如图:

   

    

      这里可以对应你项目里面需要用到的功能来选择你的开发包中所包含的内容。这里我们就简单的如上图所示的下载该sdk开发包。之后我们就可以将下载的sdk包解压并且运用到我们的项目中去了。我之前也有讲过,现在主要是在做android的开发,所以这里呢也是运用在Android的项目当中。

     接下里就是要在项目中呢去加入这个sdk然后配置一些基础信息,最后来使用这个百度地图。好了,我们新建项目之后呢,在项目中加入如下图所示的

                                                                                                      

      完成以后呢,我们就要在项目中完成一些基础的配置信息了。首先我们需要在项目的application中添加我们所申请的API key,具体的代码实现如下图:

      

 <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data   
        android:name="com.baidu.lbsapi.API_KEY"   
        android:value="开发者 key" /> 

 

    在开发者key中添加入你刚才申请的key,之后我们就可以来进行开发了。

    我们的布局文件代码如下:

    

<com.baidu.mapapi.map.MapView  
        android:id="@+id/bmapview"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:clickable="true" />  

 

  好了接下来就是在activity当中呢来找到我们的这个布局然后就可以来实现地图的应用了。

  原则上呢,通过下面这几行代码呢就能实现地图在我们的项目中显示了。

   

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        // 在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        // 注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  

    }

  当然了,我们实现这一效果还需要添加必要的权限。主要的权限呢大概就下面的这些:

   

 <uses-permission android:name="android.permission.GET_ACCOUNTS" />   
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />   
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />   
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />   
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />   
    <uses-permission android:name="android.permission.INTERNET" />   
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />   
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />   
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />   
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />   
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />   
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />   
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  

    好了运行项目我们就能够得到百度地图的显示了。但是由于地图是一个比较耗费资源和电量的功能,所以我们还需要管理一下他的生命周期。周期管理的代码如下:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        // 在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        // 注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
          mMapView = (MapView) findViewById(R.id.bmapview);  
    }

    @Override  
    protected void onDestroy()  
    {  
        super.onDestroy();  
        // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mMapView.onDestroy();  
        mMapView = null;  
    }  
  
    @Override  
    protected void onResume()  
    {  
        super.onResume();  
        // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mMapView.onResume();  
    }  
  
    @Override  
    protected void onPause()  
    {  
        super.onPause();  
        // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mMapView.onPause();  
    }  

 

   好了大部分的代码都有注释,也并不难理解,基本上基础的地图已经可以显示在屏幕上了。下面贴上显示的效果图:

   

    好了今天就写到这里啦。。。下次会继续就介绍定位等地图的功能。因为许久不写博客了,可能会有错误和不好的地方,希望大家见谅!

 

posted on 2016-03-06 17:05  夜不孤城  阅读(338)  评论(0)    收藏  举报