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

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

2016-03-12 17:27 507 查看
百度地图官方的简介: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 BaiduMapAndroid
SDK


开发工具

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();
}
}


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



以上的例子为大家介绍了如何构建一个基础的地图页面。地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。具体使用方法请参考MutiMapViewDemo中的相关介绍。
此外,自v2.3.5版本开始。MapView控件还增加了对Fragment框架的支持。用户可以使用SupportMapFragment控件完成相应框架内的开发工作(详见MapFragmentDemo)。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

其他参考:

简介

申请密钥

配置环境及发布

Hello
BaiduMap

基础地图

周边雷达

离线地图

检索功能

LBS云检索

计算工具

定位

事件监听

个性化地图

简介

申请密钥

配置环境及发布

Hello
BaiduMap

基础地图

周边雷达

离线地图

检索功能

LBS云检索

计算工具

定位

事件监听

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