详解Android定位

移动开发 Android
移动互联时代,社交APP火热,应运而生大量基于LBS的兴趣点。本文将从三个方面讲解如何获取用户的实时位置。

相信很多的朋友都有在APP中实现定位的需求,今天我就再次超炒冷饭,为大家献上国内开发者常用到的三种定位方式。它们分别为GPS,百度和高德,惯例先简单介绍下定位的背景知识。

什么是GPS定位、基站定位和Wi-Fi定位?

1、GPS定位:根据设备GPS芯片和GPS卫星实现定位,GPS定位在室内是不可以使用的。GPS定位精度和芯片本身以及实际使用环境有关,一般情况下,GPS定位精度在10m左右。

2、基站定位:根据设备获取的基站信息实现定位,基站定位精度一般不受使用环境影响,主要和基站的覆盖半径有关。基站定位服务精度目前在200m左右。

3、Wi-Fi定位:根据设备获取的Wi-Fi的信息进行定位,Wi-Fi定位精度一般不受使用环境影响,主要和Wi-Fi半径,密度有关。Wi-Fi定位精度目前在20m左右。

目前智能手机都内置了GPS芯片,相对应的各个手机系统厂商也开放了对外的GPS接口。但是由于GPS受外界因素影响比较大,一般的APP也都是室内使 用,所以严重影响到了GPS搜星的数量。不过以前在外包公司接手过这么一个项目,主要面向室外的骑行爱好者使用,满足他们骑行路线的绘制。面对这样一个需 求,GPS定位是最靠谱的选择了,但是伤不起的耗电量呀。

所以一般比较靠谱的方式,就是使用百度高德这些企业为开发者提供的成熟方案,可以选择混合定位的方式以应对APP复杂的实际使用情况。混合定位就是使用以上三种定位技术,选择***的方式去获取当前的地理位置。下面来介绍下今天为大家带来的简单实践。

一、GPS定位

没有特别的业务需求,请慎用GPS定位,选用NETWORK_PROVIDER是个不错的选择。另外,大家有没有发注意到,通过GPS可以获取当前时间,在获取不到准确时间的时候是个不错的选择。

2、百度定位

 

百度定位的location里包含了很多的信息,足以应付我们工作的需要了。百度定位Jar包大小180Kb,相对来说还是可以接受的。百度的三种定位策略也正好是对应上述我们背景介绍的三种定位技术。

三、高德定位

 

 

 

高德定位回调的位置信息也是比较丰富的,而且依赖包大小140kb,一般我工作中定位都是用高德。

备注:通过Android系 统的LocationManager去定位也是满靠谱的,室外需求使用GPS provider,室内使用Network provider;定位的经度和效率也是可以接受的,而且还不用依赖第三方包,不会增加程序的体积。但是很多业务情形下,我们不止想得到简单的经纬度信 息,我们还需要城市、邮编、具体的位置等信息。

代码地址:https://github.com/JackCho/LocationDemo

本文链接:http://my.oschina.net/u/1171391/blog/294311

责任编辑:chenqingxiang 来源: oschina
相关推荐

2010-08-25 15:56:10

CSSPositioning定位

2014-07-17 14:51:52

2010-09-06 13:15:48

CSS定位

2010-09-10 12:40:06

CSS相对定位CSS绝对定位

2010-08-26 16:40:35

DIV定位

2010-09-08 16:22:32

PositionCSS

2010-09-14 16:20:19

DIV定位

2023-07-07 10:37:43

自动驾驶技术

2011-09-28 14:26:47

Linux红帽故障定位

2021-12-30 10:43:21

Android函数Crash

2023-07-20 10:04:37

底层路由配置

2019-09-18 08:06:08

Redis数据库命令

2011-05-27 15:02:15

Android ListView

2014-07-28 10:09:30

Android

2013-11-14 10:42:48

MTPAndroid

2017-01-11 19:05:45

AndroidAndroid Loa详解

2013-11-14 16:50:08

2011-05-27 15:56:30

Android

2013-12-25 09:34:26

Android SDKAndroid组件

2021-09-07 08:49:35

Android
点赞
收藏

51CTO技术栈公众号