一、获取密钥

在百度地图开发中,选择开发文档中的安卓地图SDK,并且点击获取密钥

在获取密钥的过程中,我们选择安卓开发,并且勾选好自己所需的服务之后,最重要的一步是获取SAH1码,这个码的获取流程较为复杂,下文将讲解如何获取SHA1码

二、获取SHA1码以及相应的AK码

在自己的安卓项目中,点击project structure,找到项目的jdk路径

在文件管理系统中打开路径,找到这个文件,并且点开bin目录,在bin目录中找名为keytool的文件

将keytool的文件路径复制,在Android Studio下面的Terminal命令行中输入命令,进入keytool的目录

在进入该路径之后,我们输入keytool -list -v -keystore C:\Users\lalala\.android\debug.keystore -alias androiddebugkey来得到SHA1码(注意红色背景中的是自己的文件路径,其他都相同),进入之后需要输入密码,一般为android

得到SHA1码

填入SHA1码

在安卓项目的manifest中的这一项即为包名

填入此处

点击完成后可获取最后的AK码

三、Android Studio配置

(1) 在百度地图开发中下载相应的sdk,并且选择jar包进行下载

(2)将开发包拷贝至工程

打开解压后的开发包文件夹,将其拷贝至工程project的lib文件下,如图:

并且在工程的Android下的grandle中输入这段代码

在工程更新之后,即配置完成

四、显示地图

(1)第一步 配置AndroidManifest.xml文件

①将AK码加入manifest中,即可

②在<application/>外部添加权限声明:

(2)第二步 在布局文件中添加地图容器

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

(3)第三步 地图初始化

新建一个自定义的Application,在其onCreate方法中完成SDK的初始化

public void onCreate() {super.onCreate();//在使用SDK各组件之前初始化context信息,传入ApplicationContextSDKInitializer.initialize(this);//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。SDKInitializer.setCoordType(CoordType.BD09LL);}

(4)第四步 创建地图Activity,管理MapView生命周期

private MapView mapView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mapView=findViewById(R.id.bmapView);mapView.getMap().setMapType(BaiduMap.MAP_TYPE_NORMAL);}@Overrideprotected void onResume() {super.onResume();mapView.onResume();}@Overrideprotected void onPause() {super.onPause();mapView.onPause();}@Overrideprotected void onDestroy() {super.onDestroy();mapView.onDestroy();}

五、显示定位

(1)配置AndroidManifest.xml文件

①加入如下权限使用声明

<!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

②在Application标签中声明定位的service组件

<service android:name="com.baidu.location.f"android:enabled="true"android:process=":remote"/>

(2)开启地图的定位图层

mBaiduMap.setMyLocationEnabled(true);

(3)构造地图数据

继承抽象类BDAbstractListener并重写其onReceieveLocation方法来获取定位数据,并将其传给MapView。

public class MyLocationListener extends BDAbstractLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {//mapView 销毁后不在处理新接收的位置if (location == null || mMapView == null){return;}MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.direction(location.getDirection()).latitude(location.getLatitude()).longitude(location.getLongitude()).build();mBaiduMap.setMyLocationData(locData);}
}

(4)通过LocationClient发起定位

//定位初始化
mLocationClient = new LocationClient(this);//通过LocationClientOption设置LocationClient相关参数
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); // 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);//设置locationClientOption
mLocationClient.setLocOption(option);//注册LocationListener监听器
MyLocationListener myLocationListener = new MyLocationListener();
mLocationClient.registerLocationListener(myLocationListener);
//开启地图定位图层
mLocationClient.start();

(5)正确管理各部分的生命周期

@Override
protected void onResume() {mMapView.onResume();super.onResume();
}@Override
protected void onPause() {mMapView.onPause();super.onPause();
}@Override
protected void onDestroy() {mLocationClient.stop();mBaiduMap.setMyLocationEnabled(false);mMapView.onDestroy();mMapView = null;super.onDestroy();
}

六、运行结果

(1)地图显示

(2)定位显示

七、代码源库

代码仓库地址:

GitHub - cyjdgithub/Mydaohangcyj

移动开发之百度地图导航及定位相关推荐

  1. ios百度导航SDK,iOS开发之百度地图导航

    若遇到疑难问题可以去   ios导航SDK 论坛问题  查看和反馈:http://bbs.lbsyun.baidu.com/forum.php?mod=forumdisplay&fid=37 ...

  2. 微信公众平台开发(69)百度地图导航

    微信公众平台开发 百度地图导航 作者:方倍工作室  地址:http://www.cnblogs.com/txw1958/p/weixin69-navigation.html 一.获取坐标 打开百度地图 ...

  3. Android开发之百度地图定位打卡

    Android开发之百度地图定位打卡 一.效果图 二.下载百度地图SDK 三.代码实现 1.布局文件(activity_main) 2.布局文件(activity_map) 3.在res文件夹下新建m ...

  4. Android开发之百度地图定位

    Android开发之百度地图定位 一.效果图 二.下载百度地图SDK 1.打开[百度地图](https://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9% ...

  5. android百度导航实现,Android 集成百度地图实现设备定位

    Android 集成百度地图实现设备定位 步骤1: 申请android 端SDK : http://lbsyun.baidu.com/ 步骤2: 下载基础版SDK 步骤3: 下载示例程序 步骤4: 开 ...

  6. android百度地图自定义图层,百度地图开发之百度地图定位图层基本使用方法讲解...

    (一):基本介绍: 百度地图可以直接提供定位功能,并且把位置信息以图层的形式标注在地图上面(PopupView),同时还支持自定义设置图标,这样便于用户直接查看位置信息.要实现以上的方法,我们主要需要 ...

  7. html5 百度地图api文档,开发指南--百度地图JavaScript API大众版.doc

    开发指南--百度地图JavaScriptAPI大众版开发指南--百度地图JavaScriptAPI大众版 简介 JavaScript API大众版 JavaScript API功能介绍 百度地图Jav ...

  8. Android集成百度地图接口,实现定位+路径规划。新手教程

    本文主要内容包括:如何根据百度地图接口实现定位,并实现从A到B的路径规划功能(驾车,公交,步行).本文主要提供给新手参考,如果有错误希望博友们指出以便及时改正. 1.申请百度地图SDK的密钥(填写安全 ...

  9. html调用百度地图语音播报,实现百度地图导航演示的语音播放功能

    在上面,百度地图导航演示是本地导入的,那么如何在此基础上实现导航语音广播呢? 首先,为应用程序申请语音广播(也称为注册) SDK具有内置的百度TTS语音广播功能,在使用该应用程序之前,需要对应用程序进 ...

最新文章

  1. 可视化深入理解损失函数与梯度下降 | 技术头条
  2. 三星a60android9,三星A6058官方国行安卓9固件rom线刷升级包:CHM-A6058ZMU2BSC9
  3. CodeForces - 1354E Graph Coloring(dfs判断二分图+dp)
  4. Halcon例程详解(基于卡尺工具的匹配测量方法) —— measure_stamping_part.hdev
  5. IDEA clone项目
  6. Notes for Linux Administration Handbook (1) : Booting and Shutting Down
  7. 《如何写好科研论文》章节答案(清华)学堂在线(2020秋最新网课答案)
  8. 已知高维高斯联合概率分布求边缘概率分布以及条件概率分布
  9. 什么是VB.NET?
  10. 亚马逊后台付款表(Custom Transaction)详解
  11. 关于eWebEditor-在线HTML编辑器控…
  12. 最适合新手小白的TikTok干货运营手册
  13. chrome导入\导出登录密码
  14. leetcode 5473. 灯泡开关 IV(C++)
  15. STM32智能门锁之调试步进电机
  16. 请评价一下中国的东北大学计算机水平如何
  17. RPA机器人的10大基础功能与2大类型
  18. 西门子200SMART(五) 符号块
  19. extmail mysql数据库 重启_Extmail邮件服务器centos搭建(一)(示例代码)
  20. T1042/T2080 U-BOOT 移植阶段(四)调试网口问题不通解决

热门文章

  1. linux命令:ss命令的介绍
  2. CCACCN丨第二届社会美育国际艺术节 “2020·表情”优秀作品评选征稿通知
  3. Siri 创始人: AI 虚拟助手未来5年内将彻底改变医疗行业
  4. windows命令行指令
  5. 没有离职证明能入职吗(离职证明丢了能入职吗)
  6. android bitmap 失真,Bitmap.createScaledBitmap 失真
  7. 编程不适合12小时工作制,“我有灵感才工作” | 专访《Java编程思想》作者Bruce Eckel...
  8. About Significance Tests
  9. 计算机网络 王道考研2021 第三章:数据链路层 -- 局域网基本概念和体系结构、以太网(一种常用的局域网技术)、无线局域网、跨省短信通知原因、MAC
  10. java while 与 do while区别