关于这个主题可能会有类似的问题,但我需要您对某些特定要求的想法和建议。
这是我的需求 - 我们正在开发一款跟踪用户行程的应用程序。 该应用程序将开始在后台收集该用户的位置,当用户从应用程序“开始”他的旅行时。后台服务将根据用户在特定时间段内的移动来获取位置。 当用户从应用程序“停止”他的行程时,我们正在计算用户在所有记录位置的帮助下行驶的距离(使用谷歌距离计算 API)。 该应用程序在理想情况下运行良好。 但主要的挑战是—— 在某些情况下,我们无法获取用户的准确位置。影响的场景是 - 没有互联网、2g/3g 的数据计划、GPS 未返回准确数据的某些特定区域等。
不正确的经纬度数据导致不正确的行程距离和路线。这是应用程序的主要问题。
拜托,任何人都可以为此提出最佳替代方案/建议吗? 附言- 我们已经尝试过 GPS、网络、FusedLocationProvider。
编辑 2 --
我们已经根据精度和距离实现了逻辑。得到了更近的点。并且刚刚从谷歌遇到一个有用的 api,它纠正了一些偏离实际道路的位置点。在这里张贴以供其他人引用...
最佳答案
这是一个复杂的话题。
您必须考虑的一个因素。 Android Oreo 限制了后台服务,你想达到的效果是行不通的。
我会这样做(这是 Google 的推荐)
当有人开始旅行时(用户知道),您必须使用前台服务启动持续通知,不要再依赖后台服务了。检查 Google Fit 应用程序中的“开始 Activity ”功能。
至于没有信号,没有准确的GPS,嗯...这是地理问题!,你无能为力。或者,也许您可以使用 LocationProvider。
FusedLocationProvider 融合在每个请求位置更新的应用中。
阅读此内容,看看是否对您有帮助。
https://developer.android.com/guide/topics/location/strategies.html
关于android - 在后台获取准确的中间位置点并计算Android中起始位置和结束位置的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45838464/