情况描述:用百度定位做的打卡功能,用数据流量定位,华为小米手机能成功定位当前位置,换个品牌手机,定位位置偏差到旁边200m外的小区
资料参考
上面这段是百度官方文档里面的解释: 这个我 在做的时候基本是这种情况, 文档里面提到的 精度取决于芯片的问题,其实就是不同手机设备的差异。这个我专门做过测试,我用了5台手机测试: htc one ,三星I9118,htc t328w,红米1s,联想a820 。 这5台手机在室外同一个位置百度地图定位获取 经纬度坐标,测试结果是:
htc one 误差2-3米 有时候是0-1米 非常精确了相对来说,htc t328w 红米1s,联想 都是 15-30米左右,三星那个机型稍微差点 定位速度不仅慢,而且误差也较大 误差有时候是200多米,稳定后也是80米左右。这个稳定的意思是 ,gps初始化需要时间的,一般要2-3分钟以后,误差范围的数字会越来越小。
获取误差范围的方法是:BDLocation类下的方法 location.getRadius();//获取定位精度
--------------------- 本文来自 再见孙悟空_ 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/shaoyezhangliwei/article/details/44830301?utm_source=copy
解决思路,获取定位精度误差,打卡判断时,根据当前误差距离,适当增加判断范围.
@Override
public void onReceiveLocation(BDLocation bdLocation){
float radius = bdLocation.getRadius(); //获取定位精度,默认值为0.0f
}