百度地图KEY的申请
2015-10-05 15:41
239 查看
创建应用
点击"创建应用",进入创建AK页面,输入应用名称,将应用类型改为:“Android SDK”:配置应用
在应用类型选为“Android SDK”后,需要配置应用的安全码,如下图所示:获取安全码
输入“安全码”。安全码的组成规则为:Android签名证书的sha1值+“;”+packagename(即:数字签名+分号+包名),例如:BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.baidumap.demo
注意:中间的分号为英文状态下的分号!
Android签名证书的sha1值获取方式有两种:
第一种方法:使用keytool
第1步:运行进入控制台
第2步:定位到.android文件夹下,输入cd .android
第3步:输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:
其中keytool为jdk自带工具;keystorefile为Android 签名证书文件
第二种方法:在adt 22中直接查看
如果使用adt 22,可以在eclipse中直接查看:windows -> preferance -> android -> build。 如下图示:
其中“SHA1 fingerprint”值即为Android签名证书的sha1值
获取包名
包名是Android应用程序本身在AndroidManifest.xml 中定义的名称,例如:
按照这样的步骤来,就会创建一个应用:
得到key之后就去下载SDK了
打开http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download网址下载sdk
下面的是转载别的文章:地址http://blog.csdn.net/crazy1235/article/details/42614603
三、在android项目中引用百度SDK
1. 将开发包中的jar包和so文件添加到libs文件下。2. 在AndroidManifest.xml中添加开发秘钥和所需权限。
[java] view
plaincopy
<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="填写你申请的AK" />
权限:
[java] view
plaincopy
<!-- 百度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. 在布局文件中添加地图控件:
[java] view
plaincopy
<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全局变量。
[java] view
plaincopy
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
init();
}
这里需要注意一下:initialize方法中必须传入的是ApplicationContext,传入this,或者MAinActivity.this都不行,不然会报运行时异常,所以百度建议把该方法放到Application的初始化方法中。
然后重写activity的生命周期的几个方法来管理地图的生命周期。在activity的onResume、onPause、onDestory方法中分别执行mapview的onReusme、onPause、onDestory方法。
[java] view
plaincopy
package com.bdmap.view;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
public class MainActivity extends Activity {
// 百度地图控件
private MapView mMapView = null;
// 百度地图对象
private BaiduMap bdMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
init();
}
/**
* 初始化方法
*/
private void init() {
mMapView = (MapView) findViewById(R.id.bmapview);
}
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
protected void onDestroy() {
mMapView.onDestroy();
mMapView = null;
super.onDestroy();
}
}
完成以上步骤,此时就可以完成一个简单的”Hello Map“程序了。
三、普通地图和卫星地图切换
百度地图将地图的类型分为两种:普通矢量地图和卫星图。[java] view
plaincopy
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
//普通地图
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
//卫星地图
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
四、显示实时交通图(路况图)
[java] viewplaincopy
//开启交通图
mBaiduMap.setTrafficEnabled(true);
五、显示热力图
热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。通俗来说就是显示地图上某一块区域的人的密集程度。类似于下图所示:[java] view
plaincopy
//开启热力图
mBaiduMap.setBaiduHeatMapEnabled(true);
相关文章推荐
- UNIX环境高级编程中的apue.h头文件的问题
- 关于JS操作DOM的一些小细节
- 下表法排序
- C#窗体操作SQL Server存储大文件方法分享
- C
- Linux的UIO经典例子讲解(二)
- JS跨域常见方案
- 2049不容易系列之(4)——考新郎
- 各种排序算法的大集合
- 计算1到100之间整数中9出现的次数
- 【教程】用安卓厨房制作你自己的卡刷包!你也可以是Romer !
- 关于以太网网线的总结详细
- java泛型,原始类型和桥方法
- 开始了解窗口程序
- 选择排序
- C++:预处理
- TextView——文本省略显示
- nginx安装部署
- 计算1-1/2+1/3-1/4+.....+1/99-1/100的值
- PAT1015 德才论