详解Android定位

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

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

一、GPS定位:根据设备GPS芯片和GPS卫星实现定位,GPS定位在室内是不可使用的。GPS定位精度和芯片自己以及实际使用环境有关,通常状况下,GPS定位精度在10m左右。github

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

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

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

因此通常比较靠谱的方式,就是使用百度高德这些企业为开发者提供的成熟方案,能够选择混合定位的方式以应对APP复杂的实际使用状况。混合定位就是使用以上三种定位技术,选择最优的方式去获取当前的地理位置。下面来介绍下今天为你们带来的简单实践。接口

1、GPS定位开发

没有特别的业务需求,请慎用GPS定位,选用NETWORK_PROVIDER是个不错的选择。另外,你们有没有发注意到,经过GPS能够获取当前时间,在获取不到准确时间的时候是个不错的选择。get

 

二、百度定位it

 

百度定位的location里包含了不少的信息,足以应付咱们工做的须要了。百度定位Jar包大小180Kb,相对来讲仍是能够接受的。百度的三种定位策略也正好是对应上述咱们背景介绍的三种定位技术。

3、高德定位

 

高德定位回调的位置信息也是比较丰富的,并且依赖包大小140kb,通常我工做中定位都是用高德。

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

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

若是以为对你有所帮助,欢迎你们订阅个人微信公众帐号——Android干货分享(ID:android_share)。下面是微信的二维码,为你提供及时高质的Android干货。技术交流QQ群:318588906,欢迎你们加群,共同探讨下Android和Java技术,一块儿壮大咱们的微信干货分享社区。

相关文章
相关标签/搜索