作关于位置或者定位的app的时候免不了使用地图功能,本人最近因为项目的需求须要使用百度地图的一些功能,因此这几天研究了一下,现写一下blog记录一下,欢迎你们评论指正!php
要想使用百度地图sdk,就必须申请一个百度地图的api key。申请流程挺简单的。html
首先注册成为百度的开发者,而后打开http://lbsyun.baidu.com/apiconsole/key这个网址,添加应用:java
建立应用最重要的一步是【安全码】。安全码是有【数字签名】和【;】和【包名】组成。包名就是你所建立的项目的包的结构,是指AndroidManifest.xml中的manifest标签下的package的值。android
数字签名指Android的签名证书的SHA1值。api
获取数字签名有两种方法:安全
1. 第一种方法:使用eclipse查看。app
打开eclipse的preferences菜单,在Android下的【Build】中能够看到SHA1的值,以下图:eclipse
2. 第二种方法:使用keytool工具(jdk自带)查看。ide
在控制台下,输入【cd .android】,而后输入【keytool -list -v -keystore debug.keystore】回车,而后提示你输入【秘钥库口令】,输入【android】回车而后就会显示SHA1的值。工具
数字签名搞定了,而后建立应用就ok了。建立完成以后,应用列表中会显示相应的AK,也就是api key。
打开http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download网址下载sdk,能够所有下载,也能够自定义下载。从V2.3.0以后的版本,SDK的开发包以可定制的形式提供下载,用户能够根据本身的项目须要勾选相应的功能下载对应的SDK开发包。
1. 将开发包中的jar包和so文件添加到libs文件下。
2. 在AndroidManifest.xml中添加开发秘钥和所需权限。
权限:
4. 在应用程序建立时初始化SDK引用的Context全局变量。
<span style="font-size:14px;"> @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); // SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); init(); } </span>
这里须要注意一下:initialize方法中必须传入的是ApplicationContext,传入this,或者MAinActivity.this都不行,否则会报运行时异常,因此百度建议把该方法放到Application的初始化方法中。
而后重写activity的生命周期的几个方法来管理地图的生命周期。在activity的onResume、onPause、onDestory方法中分别执行mapview的onReusme、onPause、onDestory方法。
百度地图将地图的类型分为两种:普通矢量地图和卫星图。
热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。通俗来讲就是显示地图上某一块区域的人的密集程度。相似于下图所示: