• 行者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的情况下,用手机网络进行定位,为什么两次定位到的位置不同,应该是根据手机接入的基站的经纬度来判断位置,接入的基站不同,定位就不同。

    全力以赴不留遗憾
  • 相关阅读:
    C++Primer第7章 类
    网络编程I/O复用
    bg和fg
    I/O复用的高级应用一:非阻塞connect
    C++Primer第6章 函数
    mvn archetype:createfromproject报错The specified user settings file does not exist
    C++Primer第13章 拷贝控制
    g++编译多线程
    .NET开发者必备的19个开发工具
    jQuery UI Datepicker繁體中文年月選單換行的小修正
  • 原文地址:https://www.cnblogs.com/zhonghaijing/p/15204254.html
Copyright © 2020-2023  润新知