百度地图KEY的申请

论坛 期权论坛 脚本     
匿名技术用户   2021-1-7 10:39   718   0

创建应用

点击"创建应用",进入创建AK页面,输入应用名称,将应用类型改为:“Android SDK”:

key3.png


key4.png

配置应用

在应用类型选为“Android SDK”后,需要配置应用的安全码,如下图所示:

key5.png

获取安全码

输入“安全码”。安全码的组成规则为: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步:运行进入控制台

and_key6.pngand_key7.png

第2步:定位到.android文件夹下,输入cd .android

and_key8.png

第3步:输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:

其中keytool为jdk自带工具;keystorefile为Android 签名证书文件

and_key9.png

and_key10.png

第二种方法:在adt 22中直接查看

如果使用adt 22,可以在eclipse中直接查看:windows -> preferance -> android -> build。 如下图示:

and_key11.png

其中“SHA1 fingerprint”值即为Android签名证书的sha1值


获取包名

包名是Android应用程序本身在AndroidManifest.xml 中定义的名称,例如:

and_key12.png


按照这样的步骤来,就会创建一个应用:


得到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 plain copy 在CODE上查看代码片 派生到我的代码片
  1. <application
  2. android:allowBackup="true"
  3. android:icon="@drawable/ic_launcher"
  4. android:label="@string/app_name"
  5. android:theme="@style/AppTheme" >
  6. <meta-data
  7. android:name="com.baidu.lbsapi.API_KEY"
  8. android:value="填写你申请的AK" />

权限:

[java] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <!-- 百度API所需权限 -->
  2. <uses-permission android:name="android.permission.GET_ACCOUNTS" />
  3. <uses-permission android:name="android.permission.USE_CREDENTIALS" />
  4. <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
  5. <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
  6. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  7. <uses-permission android:name="android.permission.INTERNET" />
  8. <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
  9. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  10. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  11. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  12. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  13. <uses-permission android:name="android.permission.BROADCAST_STICKY" />
  14. <uses-permission android:name="android.permission.WRITE_SETTINGS" />
  15. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
3. 在布局文件中添加地图控件:

[java] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <com.baidu.mapapi.map.MapView
  2. android:id="@+id/bmapview"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:clickable="true" />
4. 在应用程序创建时初始化SDK引用的Context全局变量。

[java] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. requestWindowFeature(Window.FEATURE_NO_TITLE);
  5. //
  6. SDKInitializer.initialize(getApplicationContext());
  7. setContentView(R.layout.activity_main);
  8. init();
  9. }

这里需要注意一下:initialize方法中必须传入的是ApplicationContext,传入this,或者MAinActivity.this都不行,不然会报运行时异常,所以百度建议把该方法放到Application的初始化方法中。

然后重写activity的生命周期的几个方法来管理地图的生命周期。在activity的onResume、onPause、onDestory方法中分别执行mapview的onReusme、onPause、onDestory方法。

[java] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. package com.bdmap.view;
  2. import com.baidu.mapapi.SDKInitializer;
  3. import com.baidu.mapapi.map.BaiduMap;
  4. import com.baidu.mapapi.map.MapView;
  5. import android.app.Activity;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.view.Window;
  9. public class MainActivity extends Activity {
  10. // 百度地图控件
  11. private MapView mMapView = null;
  12. // 百度地图对象
  13. private BaiduMap bdMap;
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. requestWindowFeature(Window.FEATURE_NO_TITLE);
  18. //
  19. SDKInitializer.initialize(getApplicationContext());
  20. setContentView(R.layout.activity_main);
  21. init();
  22. }
  23. /**
  24. * 初始化方法
  25. */
  26. private void init() {
  27. mMapView = (MapView) findViewById(R.id.bmapview);
  28. }
  29. @Override
  30. protected void onResume() {
  31. super.onResume();
  32. mMapView.onResume();
  33. }
  34. @Override
  35. protected void onPause() {
  36. super.onPause();
  37. mMapView.onPause();
  38. }
  39. @Override
  40. protected void onDestroy() {
  41. mMapView.onDestroy();
  42. mMapView = null;
  43. super.onDestroy();
  44. }
  45. }

完成以上步骤,此时就可以完成一个简单的”Hello Map“程序了。

三、普通地图和卫星地图切换

百度地图将地图的类型分为两种:普通矢量地图和卫星图。

[java] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mMapView = (MapView) findViewById(R.id.bmapView);
  2. mBaiduMap = mMapView.getMap();
  3. //普通地图
  4. mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
  5. //卫星地图
  6. mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);

四、显示实时交通图(路况图)

[java] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. //开启交通图
  2. mBaiduMap.setTrafficEnabled(true);

五、显示热力图

热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。通俗来说就是显示地图上某一块区域的人的密集程度。类似于下图所示:

[java] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. //开启热力图
  2. mBaiduMap.setBaiduHeatMapEnabled(true);

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP