zoukankan      html  css  js  c++  java
  • Android 百度地图API(01)_开发环境 HelloBaiduMap

    转载于:http://blog.csdn.net/lmj623565791/article/details/37729091

    转载于:http://blog.csdn.net/crazy1235/article/details/42614603 

    百度地图SDK开发指南:http://developer.baidu.com/map/wiki/index.php?title=androidsdk/guide/introduction

    虽然百度地图网上相关代码比较多,大多可能都是比较旧的版本,且百度地图API的改动感觉也比较大,所以在此跟大家分享一下一天的劳动成功。

    一、申请AK(API Key)

        要想使用百度地图sdk,就必须申请一个百度地图的api key。申请流程挺简单的。

        首先注册成为百度的开发者,然后打开http://lbsyun.baidu.com/apiconsole/key这个网址,添加应用:


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

        例如:E6:20:57:A9:D9:E9:0C:A4:C5:51:17:B7:C1:E1:F2:D7:CC:37:D7:B1;com.example.bdmap_sample_01

        获取数字签名有两种方法:

        1. 第一种方法:使用eclipse查看。

        打开eclipse的Windows->Preferences菜单,在Android下的【Build】中可以看到SHA1的值,如下图:

        2. 第二种方法:使用keytool工具(jdk自带)查看。

        在控制台下,输入【cd .android】,然后输入【keytool -list -v -keystore debug.keystore】回车,然后提示你输入【秘钥库口令】,输入【android】回车然后就会显示SHA1的值。

    数字签名搞定了,然后创建应用就ok了。创建完成之后,应用列表中会显示相应的AK,也就是api key。

    二、下载SDK开发包

        打开http://lbsyun.baidu.com/sdk/download网址下载sdk,可以全部下载,也可以自定义下载。从V2.3.0之后的版本,SDK的开发包以可定制的形式提供下载,用户可以根据自己的项目需要勾选相应的功能下载对应的SDK开发包。

    三、在android项目中引用百度SDK

        1. 将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs/armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),并通过右击项目->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_vX_X_X.jar,确定后返回。如此就可以正常使用百度地图SDK为您提供的全部功能了,拷贝完成后的工程目录如下图所示;

        注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。
        注意:由于adt插件升级,若您使用Eclipse adt 22的话,需要对开发环境进行相应的设置,方法如下:
    1). 在Eclipse 中选中工程,右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态;
    2). Project -> clean-> clean all .

        2. 在AndroidManifest.xml的application中添加开发秘钥。

    <!-- 添加开发秘钥   -->
    <meta-data  
    	android:name="com.baidu.lbsapi.API_KEY"  
    	android:value="填写你申请的AK" />
        在AndroidManifest.xml中添加百度API所需权限:
    <!-- 百度API所需权限 -->  
    <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" />
        3. 在布局文件中添加地图控件:
    <!-- 添加地图控件 -->
    <com.baidu.mapapi.map.MapView  
        android:id="@+id/bmapview"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:clickable="true" /> 
        4. 在应用程序创建时初始化SDK引用的Context全局变量。
    public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    	
    	// 在使用SDK各组件之前初始化context信息,传入ApplicationContext  
    	// 注意该方法要再setContentView方法之前实现  
    	SDKInitializer.initialize(getApplicationContext());  
    	
    	setContentView(R.layout.activity_main); 
    	
    	// 获取地图控件引用  
        mMapView = (MapView) findViewById(R.id.bmapview); 
    	
    }

    好了,经过这四步就能显示地图了~~

    注意:在SDK各功能组件使用之前都需要调用

    SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中

        5. 不过地图很耗电,所以有必要管理其声明周期
    package com.example.bdmap_sample_01;
    
    import com.baidu.mapapi.SDKInitializer;
    import com.baidu.mapapi.map.MapView;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Window;
    
    public class MainActivity extends Activity {
    	
    	private MapView mMapView;	// 百度地图控件 
    	
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		  
    		// 在使用SDK各组件之前初始化context信息,传入ApplicationContext  
    		// 注意该方法要再setContentView方法之前实现  
    		SDKInitializer.initialize(getApplicationContext());  
    		
    		setContentView(R.layout.activity_main); 
    		
    		// 获取地图控件引用  
    	    mMapView = (MapView) findViewById(R.id.bmapview); 
    		
    	}
    
        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();  
        }  
    }
    

    好了,完成。其实百度开发指南上对HelloBaiduMap这篇也极其清楚~~~~


     Android 百度地图 SDK v3.0.0 (一)的源码: 源码点击下载


  • 相关阅读:
    TensorFlow 基础 (04)
    面向对象编程思想的介绍
    B2B、B2C、C2C、O2O的概念
    为什么我们需要域
    如何在阿里云服务器上搭建wordpress个人网站
    Ghost手动备份、还原系统详细图文教程
    IE浏览器下载文件保存时提示:“你没有权限在此位置中保存文件”解决办法
    电脑经常自动重启的一些解决办法
    ERP系统到底能做什么?
    SQL实用技巧:如何分割字符串
  • 原文地址:https://www.cnblogs.com/anyuan9/p/6171534.html
Copyright © 2011-2022 走看看