我在一年前问了一个类似的问题并给了一些很好的建议(使用location.getAccuracy()),如果准确度低于某个阈值,则不处理位置变化。这在我的手机上运行良好,但我的新手机在接收位置更新方面遍布地图(没有双关语)。不幸的是,它们不是很准确,所以如果我找到一个精确值,比如说不到7米,我的逻辑就不会达到onlocationchanged处理程序。因此,当我的谷歌地图上绘制点数时,它会抓住一些,然后在我徒步旅行的某些地形上绘制一条直线,我希望能够覆盖,但我很确定即使超人也不能。真正困扰我的是我的距离计算明显比实际要短(这很明显,因为它认为我能够直接从A点飞到B点)。
我尝试通过保持每次调用位置更改处理程序但不符合我的阈值的计数来解决此问题,如果该计数达到20,则记录该点然后重置计数器。这让我更接近实际距离,但仍然不是很准确。我已经将这个值改为30和40等,但是我不得不继续调整这个以找到这款手机的最佳位置。作为一个控制测试,我安装了MapMyRun,它的距离计算是现场开启的,它也只是使用GPS定位服务。
我不知道还能做些什么让我的距离计算更加准确。显然可以这样做,因为MapMyRun工作正常。
任何人对其他想法都有一些建议吗?
TIA