返回顶部
首页 > 资讯 > 移动开发 >Android定位功能开发(1)——获取位置
  • 886
分享到

Android定位功能开发(1)——获取位置

androidandroidstudio 2023-10-24 21:10:32 886人浏览 薄情痞子
摘要

基于位置的服务包括三个方面:获取位置、地图服务、地理编码服务。 获取位置有两种方式,一种是通过GPS获得位置,精度高,耗电高,另一种是通过WLAN或通讯基站获得位置,精度低,耗电低。得到的位置信息是三维的,包括经度、纬度、海拔。 地图服务

基于位置的服务包括三个方面:获取位置、地图服务、地理编码服务。

  • 获取位置有两种方式,一种是通过GPS获得位置,精度高,耗电高,另一种是通过WLAN或通讯基站获得位置,精度低,耗电低。得到的位置信息是三维的,包括经度、纬度、海拔。
  • 地图服务实现的功能是将经纬度点显示在地图上,以及将地图上的点转化为经纬度。通过调用地图服务商(如谷歌、百度、高德等)的api接口,从其服务器上获取地图信息。
  • 地理编码服务实现经纬度点转化为地址,以及地址转化为经纬度。实现方法是通过Http协议调用互联网上的地址服务。

获取位置是所有基于位置的服务的基础,Android获取位置使用LocationManager类。首先获取LocationManager的实例,然后一般要检查位置服务是否开启。如果未开启,就打开设置位置服务界面。如果已开启,再检查应用的定位权限是否允许。都通过了,就可以设置一个位置监听器,有了位置信息就会调用监听器的相应方法。设置监听器时可以设置位置监听的最小时间间隔和最小距离间隔,只有这两个条件都满足时才会有位置信息。流程和关键代码如下图:

下面是一个获取位置的例子。例子的界面如下,最上面一行是两项设置,记录位置的最小时间间隔和最小距离,只有这两个条件同时满足,才会产生一个位置数据。第二行是两个按钮,分别启动和停止位置监听。再下面是一个文本,显示监听到的位置信息。

例子中,首先要在onCreate中获取LocationManager实例,并检查设备是否开启了位置服务,代码如下:

manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);if(!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) &&             !manager.isProviderEnabled(LocationManager.netWORK_PROVIDER)) {      askLocationSettings();}

可以从手机最上面的功能栏中开启/关闭手机的位置服务,如下图:

来源地址:https://blog.csdn.net/nanoage/article/details/128114107

--结束END--

本文标题: Android定位功能开发(1)——获取位置

本文链接: https://www.lsjlt.com/news/441869.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作