最近碰到了GPS定位准确性的问题,大部分客户反馈是比较准的,但是部分客户反馈确实不准。
以下是从高德官网找到的资料。
1、SDK定位策略
定位SDK融合基站+WiFi+ GPS定位,输出了三种定位模式:高精度模式,低功耗模式,仅用设备模式。
定位SDK会根据设备所处的环境自动调整定位策略,如在同一个的位置没有移动时,SDK会返回缓存定位结果,如果APP不希望使用缓存结果可以通过定位类型进行过滤。
2、SDK的三种定位模式的定位策略分别是怎样的?
1、高精度模式定位策略
这种定位模式下,会同时使用网络定位(基站、WIFI定位)和GPS定位,优先返回最高精度的定位结果。
2、低功耗模式定位策略
该定位模式下,不会使用GPS,只会使用网络定位(Wi-Fi和基站定位)。
3、仅用设备模式定位策略
这种定位模式下,不需要连接网络,只使用GPS进行定位,这种模式下不支持室内环境的定位。
3、为什么Android 定位SDK当前定位误差有几百或者上千米?
常见的Android定位结果有三种来源,一种是基站定位、一种是WIFI定位、这二者统称为网络定位;最后一种是GPS定位。
纯基站定位的精度在500-5000米之间,WIFI的定位精度在3-200米之间;GPS定位精度在5-几百米不等。
如果您的设备没有开启WIFI模块,采用基站定位,那么定位误差可能会非常大,建议您打开WIFI模块(不用连上,只需要打开即可)再发起定位请求。
解决方法:
开启数据流量(定位之后即可关闭),和WIFI模块,或者到户外采用GPS定位。
4、SDK的定位点会出现跳动?
定位点出现跳动解决方法如下:
1、开启数据流量(定位之后即可关闭),和设备WIFI模块后进行定位(采用高精度定位模式);或者到户外开启设备GPS模块采用采用高精度定位模式定位。
2、在开发时根据定位类型(通过AMapLocation类的getLocationType())进行定位点过滤,例如定位类型为6的点不进行业务运算。
3、在开发时根据精度(通过AMapLocation类的getAccuracy()方法获取)进行定位点过滤,例如精度大于10米的点不进行业务运算。
5、解决
总结来看。
1、在开发时,采用高精度模式定位策略。
2、一定要打开WiFi,即使没有链接,也要打开(从文档上看比较关键,且精度最高)。
3、尽量同时使用WiFi和流量。
4、保持手机的网络畅通。