1 手机定位为什么有时候会不准确
一方面,网络定位依赖与周边监测到的基站和wifi信息,而这些信息有受各种因素的影响发生变化或者采集有误,导致定位的偏差。
另一方面,定位本身也有一定精度范围随机误差,从几十米到上公里都是正常的情况,所以有时候看到定位结果有一定偏差,这也是为什么有时候您会看到您的位置并没有变化,但是定位位置却总在小范围的跳动的原因。
如果使用GPS定位,相对来说是定位比较精确的方式,但受限制一般只能在室外使用,且卫星信号容易受气象,遮挡等因素影响,而且手机自身GPS芯片的质量,也会对最终定位的的精准度有直接的影响。
2 什么是基站定位、WiFi定位和GPS定位
2.1 基站定位
根据设备获取的基站信息实现定位,基站定位精度一般不受使用环境影响,主要和基站的覆盖半径有关;
基站精度平均为200米左右,视所处区域运营商基站覆盖范围而定;
2.2 WiFi定位
根据设备获取的WiFi的信息进行定位,WiFi定位精度一般不受使用环境影响,主要和单一WiFi辐射半径、WIFI覆盖密度有关。
WIFI精度为20米左右,基站和WIFI定位结果都会返回相应的地址描述。
2.3 GPS定位
根据设备GPS/A-GPS芯片和GPS卫星实现定位,GPS定位在室内是不可以使用的。
GPS定位精度和芯片本身以及实际使用环境有关,一般情况下,GPS定位精度在10m左右。GPS定位在户外结果会较准,但GPS比较费电,且在室内不可用,目前GPS定位不能返回地址描述。
建议先开启GPS再进行定位(GPS和A-GPS有预热时间),GPS初次定位需要1分钟,有的甚至要两分钟才能定位。初次定位以后,再定位会快很多。
请合理按时控制GPS启动时刻,您可以在自己的程序中进行设定。
3 GPS定位为什么没有正常工作
1.确认手机带GPS模块并打开;
2.手机上的安全软件(例如360、安全管家或系统自带的安全中心)不要限制app的定位权限;
例如:MIUI系统在:安全中心-权限管理-定位里,检查一下是否限制了app的定位权限;
3.GPS定位要在开阔地带,室内无法接收到GPS信号,所以不要在室内尝试;
4.安卓系统运行时间长了,会有一些系统不问题因素造成的bug,确认以上三点没问题的还不能定位的,重启手机一下试试;
5.下载一款GPS测试软件(GPS Test等),测试手机gps是否正常。
4 为什么GPS定位时间长短不一
GPS模块一般支持冷启动(Cold start) 和热启动(Hot start) 两种模式。(注:暖启动warm-start不讨论。)
一般冷启动比热启动时间要长很多,以信号足够好为例,SirFIII的热启动为15秒以内,冷启动则需要42秒以内;在信号弱的情况下则需要更长时间。
热启动条件如下:
1.上次关机前的位置信息(经纬度,高度)已知(所以在车库内关机下次就一定是冷启动了);
2.当前时间、年历、星历已知(需要实时时钟支持);
3.距离上次关机时间不超过4小时(时间过长则星历变化了,即以前的卫星看不到了)。
5 打开WiFi开关会有助于提升定位精度吗
会的,因为手机会通过WiFi定位方式来进行定位,通过扫描能够探测到的WiFi热点信息,解析出热点的IP地址,并转换为地理位置。因此,手机只要能够感测到WiFi信号,就能获取当前位置,打开WiFi开关有助于提升定位精度。
在室外尽管没有连接上WiFi,但是手机只要能够感测到WiFi信号,就能获取当前位置,所以打开WiFi开关也有助于提升定位精度。
6 定位SDK和定位API的区别
6.1 定位SDK
是为移动平台APP专门打造的定位工具。
它在天地图定位API基础上封装了大量的定位策略,充分利用WIFI、基站、GPS的特性,返回融合定位结果。不仅提高了定位效果,也最大程度的降低了开发者的使用成本。天地图定位SDK返回坐标位置,结果能正确地显示在天地图上,适用于Android和iOS两个移动平台。
6.2 定位API
是获取网络定位结果的一整套解决方案,它更适用于非Android、iOS的智能硬件解决方案中,API可以返回WIFI定位和基站定位结果。
7 定位策略是什么
定位SDK融合基站+WiFi+ GPS定位,输出了三种定位模式:高精度模式,低功耗模式,仅用设备模式。
定位SDK会根据设备所处的环境自动调整定位策略,如在同一个的位置没有移动时,SDK会返回缓存定位结果,如果APP不希望使用缓存结果可以通过定位类型进行过滤。
8 如何获得更准确的定位
Android除了系统(基站、WiFi、GPS等下拉图标开关)的开关,以及Android系统设置选项(位置信息访问权限),还包括手机上的安全软件(例如360、安全管家或系统自带的安全中心)针对app的定位权限设置;
如果不同的设置对你的App没有开启定位权限,会造成不能定位或者只能够采用一种(GPS、WiFi和基站)方式定位,导致定位精度达不到要求。