我正在开发一个Android应用程序,该应用程序在两个位置之间具有逐步导航功能。但是,我一直在努力使导航顺畅。
我从Google API调用Directions Api来检索路线,并且我已经在地图上显示了它。切换到逐行导航时,我只需使用位置管理器(同时使用路线和精确位置)将标记设置到新位置(同时为标记设置动画)即可。一切正常,尽管gps和网络提供商的位置不正确,如以下链接中的图像所示。
尽管有时误差不会太大(例如,位置设置在街道旁的人行道上),但只要用户遵循路线,我就需要标记始终沿多段线移动,否则将不得不重新计算路线。此外,当我通过以前的位置和新的位置计算图标的方位时,有时图标会做些奇怪的事情。
我不想使用任何外部库,因为大多数不是免费的,并且该应用程序将来也不会供个人使用。 我的第一个想法是检查我的更新位置到折线的距离是否大于x(例如5),以检测这些错误。但是,我的应用程序必须重新计算路线,因此这不是有效的选择。 我已经读过卡尔曼算法来检测错误,但是人们说gps在内部已经使用该算法过滤了位置。
因此,我需要一些建议,以修复那些不准确的位置并像Mapbox或Google Maps或Uber一样进行流畅的导航。
链接到图像:https://ibb.co/n511We
黄线表示我所走的路线,紫色圆圈表示不正确的位置。