在上一篇文章中,已经可以看到默认的百度地图,那就说明我们的操作是正确的,申请的密钥和引入地图SDK是没有问题的,接下来就是按照自己的业务需求来使用百度地图。

百度地图可以设置显示出不同的地图类型,有普通地图(默认的)、卫星地图、空白图。这三种在上一篇推文中进行了演示,可以根据自己的需求看应该使用那种。

其实百度地图可以做的操作还是很多的,比如显示手机的实时定位信息,绘制点,绘制线,添加标记和信息框等。那么我们就来看看如何实现实时的位置信息显示。

显示实时位置信息

目前我们使用的手机都自带GPS定位功能,可以在环境空旷不受干扰或者有运行商或wifi网络的情况下,获取到经纬度卫星坐标。

Android定位SDK,它支持全球定位,能够精准的获取经纬度信息。

目前在国内获得的坐标系类型有三种:

  • 国测局坐标

  • 百度墨卡托坐标

  • 百度经纬度坐标

在海外地区,只能获取到WGS84坐标,我们在开发过程中需要注意,每个地方获取到的坐标对应的坐标系可能不一样,如果开发业务有海外的需求,那么需要提前做好坐标的转换工作,否则可能会影响正常的业务逻辑。

定位SDK默认输出GCJ02坐标,地图SDK默认输出BD09II坐标。

目前下载的最新地图SDK,需要选中定位SDK,咱们教程刚开始就选择的是全量定位,也就是说目前可以直接使用操作代码获取到经纬度,可以实现实时定位的功能。

1、配置AndroidManifest.xml文件

在AndroidManifest.xml文件中需要提前加入对应的权限申请,这里和之前讲解的一样,需要申请网络定位和GPS定位的权限。如果目标主机的Android版本比较高,则需要动态进行申请(见上一篇推文)。

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

接着还需要在此文件中声明定位的service组件,这个很重要,如何没有做申请,定位SDK是无法获取到GPS信息的。

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

2、开启地图定位图层,构造地图数据

百度地图的定位功能是在定位图层中的,默认是关闭状态,需要在代码中手动进行打开。只要打开定位图层,那么后期关于实时定位的显示、标记点、线、面等在地图上就可以呈现出来。

mBaiduMap.setMyLocationEnabled(true);

百度地图获取定位信息是通过继承抽象类BDAbstractListener并重写其onReceieveLocation方法来获取定位数据,并将其传给MapView的。

其实说白了就是重写它后,如果内置的定位芯片或网络定位获取到GPS信息会通过重写后的方法获取到。此时我们就可以在方法中获取到我们业务所需要的经纬度信息。

接受采集的坐标信息

3、通过LocationClient发起定位

在OnCreate()方法中,通过实例化mLocationClient变量,并给其赋初始化,让其开始接收卫星信息。其中要注意的是,需要对mLocationClient设置参数信息,参数信息就是实例化LocationClientOption的具体信息。

LocationClientOption中包括是否开启GPS,多长时间接收一次等细节变量。

这里有个坑

目前根据地图SDK给的代码,对参数只设置了开始GPS,设置坐标类型和设置定位的间隔时间,是无法获取到坐标信息的。这里需要到定位SDK教程中,仔细阅读其关于如何声明设置LocationClientOption类,你就会发现其实可设置的内容很多,你可以根据自己的业务需求来进行调整。

下面代码是我已经验证成功可以获取到时候定位信息的,需要提前声明一个初始打开的变量,用于在首次定位的时候是否将地图显示在定位位置处。

定位初始化

定位参数配置

上面图片就是所有的逻辑代码,建议你按照上面的逻辑来操作,会得到实时的百度地图坐标。百度地图官网的教程只能算是参考,主要把一些基本概念介绍清楚了,但是如何新人只按照他那个进行操作,是很出现结果的(我就是在这里被坑惨了,一直调试不出来)。

这里还可以调整其定位点的光圈大小,定位模式,是否开启方向,设置自定义定位图标,精度圈填充颜色以及精度圈边框颜色5个属性,这些可以参考百度官方教程,上面说的很详细。

下面图片是成功运行的情况。

实时定位显示

对于一些官方的教程,有时候不能完全信。你要综合考虑,如果按照官方的教程来编码,出现不了你想要的结果,那么很有可能是教程没有及时更新或者没有给你交代清楚,那么此时就需要去互联网上找找解决方案,看是否别人也遇到了这个问题,是否有解决办法,自己多上手操作操作,就好了。

今天的分享就到这里,我们下期再会。

时间有点晚了,洗洗睡了,明天还得起床去打工。加油 打工人

小寄语

人生短暂,我不想去追求自己看不见的,我只想抓住我能看的见的。

原创不易,给个关注。

技术群:添加小编微信并备注进群

小编微信:mm1552923

公众号:dotNet编程大全

百度地图开发-显示实时位置信息 04相关推荐

  1. 百度地图利用位置提供服务器,利用百度地图API获取当前位置信息的实例

    利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了.这里分享一个制作的JS可以实现登录网页后定位: var map; var gpsPoint; var baiduPoint; ...

  2. JavaScript使用百度地图API获取当前位置信息

    使用步骤: 一.百度开放API平台申请AK 二.在线引入API 或者使用 npm 三.使用API获取位置 注意:百度API. 高德API 商业用途,均需授权 引用与配置 方式一 .在线引入API: & ...

  3. Android学习 - 百度地图开发基础

    什么是百度地图API? 百度地图移动版API(Android)是一套基于Android 1.5及以上设备的应用程序接口,通过该接口,您可以轻松访问百度服务和数据,构建功能丰富.交互性强的地图应用程序. ...

  4. 使用QT嵌入百度地图开发高B格岸基监控软件

    文章目录 1.简述 2.百度地图 2.1百度地图准备 2.2 百度地图开发 2.2.1实时绘制轨迹 2.2.2设定航点 3 QT软件开发 3.1使用QWebEngineView显示Html 3.2 M ...

  5. Android 百度地图API实现实时定位

    首先需要注册百度地图的开发者账号,选择个人开发者就可以.百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com) 然后获取AK这个在网上都有可以自己查看.下载.配置sdk可以 ...

  6. [android] 百度地图开发 (二).定位城市位置和城市POI搜索

    一. 百度地图城市定位和POI搜索知识       上一篇文章"百度地图开发(一)"中讲述了如何申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述如何定位城市位置.定位 ...

  7. [android] 百度地图开发 (三).定位当前位置及getLastKnownLocation获取location总为空问题

           前一篇百度地图开发讲述"(二).定位城市位置和城市POI搜索",主要通过监听对象MKSearchListener类实现城市兴趣点POI(Point of Intere ...

  8. 通过腾讯地图、高德地图、百度地图开发接口获取坐标对应的周边相关信息

    通过腾讯地图.高德地图.百度地图开发接口获取坐标对应的周边相关信息 更新: 以前出于好意暴露了个人的KEY,现已被烂用.为不影响您的业务,请使用我的KEY的朋友去申请自己的KEY,我的KEY将在不久后 ...

  9. html5获取我的位置并在百度地图上显示

    html5获取我的位置并在百度地图上显示 一.前言 二.在线演示和GitHub源码 一.前言 最近有兴趣研究了下移动端的地图api,发现其实挺简单的,HTML5也提供了地理位置API:Geolocat ...

最新文章

  1. VTK:图像亮度用法实战
  2. 鸿蒙2.0都来了,快搭个环境玩起来吧!
  3. 连不上网_手机连不上网?四种方法教你如何解决,建议收藏以备不时之需
  4. [人工智能]手语识别转文字落地深圳医院,厉害了我的腾讯
  5. 4种实例 advice aop_JAVA动态代理 和 Spring AOP 4种通知的简单实现
  6. linux命令界面输入不了密码,如何在 Linux 中不输入密码运行 sudo 命令
  7. 帆软单元格以HTML显示内容(点击更改herf值和onclik值)
  8. java 使用itextpdf分割pdf文件,pdf分页
  9. 夏时制英国和中国的时差是多少?伦敦与北京时差是多少?
  10. dacom蓝牙耳机怎么重置_无线蓝牙耳机 常见八大故障解决办法
  11. 笛卡尔空间力反馈的关节速度控制之机器人运动学库KDL安装及使用
  12. 大环境之下软件测试行业趋势能否上升?
  13. 学习博客:关键字package包的使用
  14. 单位冲激信号和数字信号处理
  15. 商务网站建设与维护【3】
  16. Premiere Pro mac 22.6版本更新功能
  17. 10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第8天 2018/11.2
  18. 08.区块链的应用有什么?区块链将带来什么变革?
  19. Java小记——异常机制
  20. bash中正确处理文件或路径名中的空格

热门文章

  1. 从0到1搭建数仓DWD层案例实践
  2. 《短线交易秘诀》读后感
  3. 正确在WPF中对Windows窗体背景进行设置
  4. Description Resource Path Location Type Call requires API level 5 (解决方法)
  5. 八年 Java 老鸟,写给 1-3 年程序员的几点建议,满满硬货指导
  6. BP神经网络原理分析及c++代码实现(下)
  7. MT6260与MT6261mt6261设计资料汇总
  8. Android 权限(一):权限大全
  9. 中国石油大学《输气管道设计与管理(含课程设计)》第一阶段在线作业
  10. 健身体测微信小程序,新手上路