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

简介: 百度地图开发-显示实时位置信息 04

在上一篇文章中,已经可以看到默认的百度地图,那就说明我们的操作是正确的,申请的密钥和引入地图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个属性,这些可以参考百度官方教程,上面说的很详细。


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


实时定位显示


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


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


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




目录
相关文章
|
3月前
|
Linux
|
6月前
|
Linux
百度搜索:蓝易云【如何检查Linux硬盘大小、类型和硬件详细信息?】
通过上述方法,你可以在Linux系统中检查硬盘的大小、类型和硬件的详细信息。这些命令和工具将帮助你了解系统硬件的配置和使用情况,以便进行适当的管理和维护。
286 0
|
3月前
|
Linux
百度搜索:蓝易云【Linux系统中查看硬盘信息的方法有哪些?】
这些是在Linux系统中查看硬盘信息的常见方法。根据您的需求和具体环境,您可以选择适合您的方法来查看硬盘信息。
78 0
|
3月前
|
缓存 Linux
百度搜索:蓝易云【Linux系统中查看CPU信息的方法有哪些?】
这些是在Linux系统中查看CPU信息的常见方法。根据您的需求和具体环境,您可以选择适合您的方法来查看CPU信息。
58 0
|
3月前
|
缓存 Linux
百度搜索:蓝易云【Linux系统中查看内存信息的方法有哪些?】
这些是在Linux系统中查看内存信息的常见方法。根据您的需求和具体环境,您可以选择适合您的方法来查看内存信息。
78 0
|
9月前
|
移动开发 JavaScript 前端开发
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
147 0
|
9月前
|
移动开发 JavaScript 定位技术
百度地图开发:地图调起API(Web端)使用终点经纬度直接调用百度地图导航信息的解决方案
百度地图开发:地图调起API(Web端)使用终点经纬度直接调用百度地图导航信息的解决方案
218 0
|
4月前
|
Linux
百度搜索:蓝易云【Linux系统下获取系统、BIOS、进程、网络等相关信息的方法和工具。】
综上所述,通过使用命令行工具和图形化工具,可以在Linux系统下获取系统、BIOS、进程和网络等相关信息。根据具体的需求和使用场景,选择合适的工具和命令可以帮助你更好地了解和管理Linux系统。
65 2
|
9月前
|
小程序 JavaScript 前端开发
微信小程序学习实录3(环境部署、百度地图微信小程序、单击更换图标、弹窗信息、导航、支持腾讯百度高德地图调起)
微信小程序学习实录3(环境部署、百度地图微信小程序、单击更换图标、弹窗信息、导航、支持腾讯百度高德地图调起)
411 0
|
9月前
|
前端开发 定位技术
百度地图开发自定义信息窗口openInfoWindow样式的解决方案
百度地图开发自定义信息窗口openInfoWindow样式的解决方案
794 0