行者app定位不准的问题分析

       逝者如斯夫,来到印尼首都4个月了,疫情期间,骑行算是一项相对安全的运动。行者上的数据显示,探索雅加达将近1200公里,YouTube拍了些小短片(搜索zhonghaijing2017@gmail.com可见)。6月份总结了篇博客《行者app适配国外环境解决》,但实际上还遗留一个问题:app实时定位不准,虽然对骑行老鸟影响不大,但体验还是不太友好。有始有终,研究了一下定位不准的问题,分享如下,

 

 

 如上图,实际的终点和地图上的定位是有偏移的,而在骑行过程中,定位与实际位置,也是一直存在偏差。

1、什么原因会导致定位偏差?

首先查到的是知乎上的一篇文章《app定位和地图的那些坑》,链接https://zhuanlan.zhihu.com/p/22057348,提到了坐标系和精度的问题。百度地图在国内和国外使用不同的坐标系,而不同的定位方法,定位的精度也是不同。

于是对app开始了一系列测试,

a、使用GPS定位,行者APP定位的偏差位置总是固定的;

b、关闭GPS,用手机网络定位,行者APP定位准确;

c、关闭GPS,用手机网络定位,离开约400米,一段时间再次回到住处,位置出现200米以上偏差;

2、百度地图SDK对国内外的坐标使用有什么要求?

 参考于百度地图开放平台指南https://lbsyun.baidu.com/index.php?title=androidsdk/guide/coordtran

 

 

 

 

 

 

 

到这里,问题的定位开始有了方向。

3、寻找验证工具

a、从google map中https://www.google.com.hk/maps/获取实际点和定位点的经纬度

 

 

 

b、利用在线工具https://tool.lu/coordinate/对坐标系经纬度进行转化

 

 

 c、数据比较

通过前两步的数据得到的web中定位实际点位置,与行者app中的的实际定位位置一致。

4、结论(推测)

如上篇blog提到的,行者app目前只支持国内环境,没有海外版,国外使用需适配。

a、从验证的数据来看,行者调用GPS定位服务时,是先将坐标系GCJ02转换为BD09,再访问百度地图数据,在国内是符合百度地图开放平台规范的;到了国外后,应该不需要再作坐标系转换,直接使用即可;

b、行者优先使用GPS进行高精度定位,当GPS关闭时,或行者没赋予调用GPS权限时,会使用网络进行粗略定位;

b、关闭GPS的情况下,用手机网络进行定位,为什么两次定位到的位置不同,应该是根据手机接入的基站的经纬度来判断位置,接入的基站不同,定位就不同。

posted @ 2021-08-30 01:15  zhonghaijing123  阅读(1152)  评论(0编辑  收藏  举报