AndroidStudio 中使用 百度地图 <一> 百度地图的导入和集成,个人摘要

百度地图官方的简介:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/introduction

注意 POI 是Point of interest的简写。


其实官方的guide很好,但是就是没有SHA1的生成的过程,我只是把这个添加进来了。

整体的过程是:

0:创建keystore 文件,然后命令行得到SHA1,然后通过这个SHA1 和包名得到Key,

1:将Baidu SDK 集成到Android Studio 中,

2:使用引入的Baidu SDK,包括在Application 里面配置key 信息,然后是导入需要的权限,还有初始化


什么是百度地图Android SDK?

百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口, 您可以通过该接口实现丰富的LBS功能:

地图提供地图(2D、3D)的展示和缩放、平移、旋转、改变视角等地图操作;

POI检索可根据关键字,对POI数据进行周边、区域和城市内三种检索;

地理编码:提供地理坐标和地址之间相互转换的能力;

线路规划:支持公交信息查询、公交换乘查询、驾车线路规划和步行路径检索;

覆盖物提供多种地图覆盖物(自定义标注、几何图形、文字绘制、地形图图层、热力图图层等),满足开发者的各种需求;

定位采用多种定位模式,使用定位SDK获取位置信息,使用地图SDK我的位置图层进行位置展示;

离线地图:支持使用离线地图,节省用户流量,同时为用户带来更好的地图体验;

调启百度地图:利用SDK接口,直接在本地打开百度地图客户端或WebApp,实现地图功能。

周边雷达:利用周边雷达功能,开发者可在App内低成本、快速实现查找周边使用相同App的用户位置的功能。

LBS云检索:支持用户检索存储在LBS云内的自有POI数据,并展示;

瓦片图层:支持开发者在地图上添加自有瓦片数据;

特色功能:提供短串分享、Place详情检索、热力图等特色功能,帮助开发者搭建功能更加强大的应用;



0: 首先要生成一个key store的文件,





这样就可以得到key 文件了,例如这个key 文件的名字叫做WearApkKey.jks


先找到你.android 的目录,这个目录在你的用户的目录里面,然后将刚才的WearApkKey.jks 拷贝到这个目录下面。然后在cmd 命令行里面,在这个目录下面执行如下的蓝色命令,会得到很多的信息,最有用的就是SHA1的信息。


C:\Users\Kodulf\.android>keytool -list -v -keystore WearApkKey.jks

输入密钥库口令:


密钥库类型: JKS
密钥库提供方: SUN


您的密钥库包含 1 个条目


别名: wearapkkey
创建日期: 2016-2-3
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=zqxue
发布者: CN=zqxue
序列号: 36cfa4fb
有效期开始日期: Wed Feb 03 09:51:48 CST 2016, 截止日期: Sun Jan 27 09:51:48 CS
2041
证书指纹:
         MD5: C9:9F:9A:4B:C8:7A:7D:2F:D8:B7:93:4D:AF:E3:A6:AD
         SHA1: 3D:BB:11:01:E4:2E:B0:FE:AF:AF:2C:30:73:1E:14:A8:03:E6:06:F0
         SHA256: 67:FA:6F:F8:6C:48:72:9B:22:D8:C7:2E:D5:F4:88:B3:FB:85:94:AA:B
91:A2:5E:2A:C8:A7:BE:5F:15:B4:8B
         签名算法名称: SHA256withRSA
         版本: 3


扩展:


#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 80 20 B5 17 BB 78 9E D1   A4 4F 04 D6 B7 58 CE 3B  . ...x...O...X.;
0010: C3 55 92 46                                        .U.F
]
]


这个时候就得到了SHA1的码了。就是上面的那个,

然后去申请KEY


1:申请Key,可以参考官方的这个,注意这里的类型一定要选择Android SDK,然后包名就是build.gradle 里面的applicationId

defaultConfig {
    applicationId "tech.androidstudio.baidudemoandroidstudiotech"
    

  • 申请密钥


    2:下载SDK,然后导入Android Studio 中,进行集成,

    ---------------------------------------
    将jar包放到libs 里面,然后右键,在菜单里面选择“add as libary”
    然后再main 的文件夹下新建jniLibs。
    将除了jar文件的文件夹放到jniLibs里面了。
    点击rebuild,或者右边栏的gradle的刷新按钮。
    --------------------------------------


    可以参考

    配置环境及发布


  • 3:然后就是按照官网的写一个Hello BaiDu

  • Hello BaiduMap

    开发工具

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

    显示百度地图

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

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

    第二步:在AndroidManifest中添加开发密钥、所需权限等信息;

    (1)在application中添加开发密钥

    <application>  
        <meta-data  
            android:name="com.baidu.lbsapi.API_KEY"  
            android:value="开发者 key" />  
    </application>

    2)添加所需权限

    <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.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    第三步,在布局xml文件中添加地图控件;

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

    第四步,在应用程序创建时初始化 SDK引用的Context 全局变量:

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

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

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

    第五步,创建地图Activity,管理地图生命周期;

    public class MainActivity extends Activity {  
        MapView mMapView = null;  
        @Override  
        protected 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);  
        }  
        @Override  
        protected void onDestroy() {  
            super.onDestroy();  
            //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
            mMapView.onDestroy();  
        }  
        @Override  
        protected void onResume() {  
            super.onResume();  
            //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
            mMapView.onResume();  
            }  
        @Override  
        protected void onPause() {  
            super.onPause();  
            //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
            mMapView.onPause();  
            }  
        }

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

    android_dev2.jpg

    以上的例子为大家介绍了如何构建一个基础的地图页面。地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。具体使用方法请参考MutiMapViewDemo中的相关介绍。

    此外,自v2.3.5版本开始。MapView控件还增加了对Fragment框架的支持。用户可以使用SupportMapFragment控件完成相应框架内的开发工作(详见MapFragmentDemo)。



  • +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  • 其他参考:

  • 简介
  • 申请密钥
  • 配置环境及发布
  • Hello BaiduMap
  • 基础地图
  • 周边雷达
  • 离线地图
  • 检索功能
  • LBS云检索
  • 计算工具
  • 定位
  • 事件监听
  • 个性化地图




  • 简介
  • 申请密钥
  • 配置环境及发布
  • Hello BaiduMap
  • 基础地图
  • 周边雷达
  • 离线地图
  • 检索功能
  • LBS云检索
  • 计算工具
  • 定位
  • 事件监听
  • 个性化地图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值