Android基于位置的服务

      最后更新:2022-01-24 09:22:57 手机定位技术交流文章

      Android基于位置的服务

      1.基于位置的服务简介

      基于位置的服务简称LBS,主要的工作原理是利用无线电通讯网络或GSP等定位方式来确定出移动设备所在的位置.
      GPS定位的工作原理是基于手机内置的GPS硬件直接和卫星交互来获取当前的经纬度信息,精确度高,只能在户外使用.
      网络定位的工作原理是根据手机当前网络附近的三个基站进行测速,以此计算出手机和每个基站之间的距离,再通过三角形定位确定出一个大概的位置,精度一般,室内可用.

      2.申请API Key

      https://lbsyun.baidu.com/index.php?title=android-locsdk/geosdk-android-download

      3.使用百度定位

      1.准备LBS SDK

      将下载的开发包中BaiduLBS_Android.jar放入app/libs/下,将其他文件夹放入src/main/jniLibs的新建目录
      在app/build.gradle文件进行配置

      2.确定自己位置的经纬度

      AndroidManifest.xml

      3.选择定位模式

      百度LBS SDK的定位模式指定,有三种模式:Hight_Accuracy表示高精度模式,会在GPS信号正常的情况下优先使用GPS定位.Device_Sensors表示传感器模式,只会使用GPS定位.Battery_Saving表示节电模式,只会使用网络进行定位.(其中Height_Accuracy是默认的模式.)

      4.其他位置信息

      4.使用百度地图

      1.让地图显示出来

      2.移动到我的位置

      百度LBS SDK的API中提供了一个BaiduMap类,它是地图的总控制器,调用MapView的getMap()方法就能获取到BaiduMap的实例.
      BaiduMap baiduMap=mapView.getMap();
      有了BaiduMap后,就能够都地图进行操作.
      百度地图将缩放级别的取值范围限定在3到19之间,其中小数点位的值也是可以取值的,值越大,地图显示的信息就越精细.
      MapStatusUpdate update=MapStatusUpdateFactory.zoomTo(12.5f);
      baiduMap.animateMapStatus(update);
      其中MapStatusUpdateFactory的zoomTo()方法接收一个float型的参数,就是用于设置缩放级别的.zoomTo()方法返回一个MapStatusUpdate对象,我们把这个对象传入BaiduMap的animateMapStatus()方法当中即可完成缩放功能.
      让地图移动到某一个经纬度.需要借助LatLng类.参数一:纬度值,参数二:经度值.之后调用MapStatusUpdateFactory的newLatLng()方法将LatLng对象传入,newLatLng()方法返回的也是一个MapStatusUpdate对象,再把这个对象传入BaiduMap的animateMapStatus()方法当中,就可以将地图移动到指定的经纬度上.
      LatLng ll=new LatLng(39.915,116.404);
      MapStatusUpdate update=MapStatusUpdateFactory.newLng(ll);
      baiduMap.animateMapStatus(update);

      3.让"我"显示在地图上

      百度LBS SDK当中提供了一个MyLocationData.Builer类,这个类是用来封装设备当前所在位置的,只需要把经纬信息传入到这个类的相应方法中
      MyLocationData.Builder locationBuilder=new MyLocationData.Builder();
      locationBuilder.latitude(39.915);
      locationBuilder.longitude(116.404);
      MyLocationData.Builder类还提供了一个build()方法,当我们要把封装的信息都设置完成之后,只需调用它的build()方法,就会生成一个MyLocationData的实例,然后再将这个实例传入到BaiduMap的setMyLocationData()方法中,就可以让设备当前的位置显示在地图上了.
      MylocationData locationData=locationBuilder.build();
      baiduMap.setMyLocationData(locationData);

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/17260.html

          热门文章

          文章分类