gps定位服务(onlocationchange)距离计算方法与android不符

gps定位服务(onlocationchange)距离计算方法与android不符,android,gps,android-location,Android,Gps,Android Location,大约一年前,我问了一个类似的问题,得到了一些很好的建议(使用location.getaccurity()),如果精度低于某个阈值,就不要处理位置更改。这在当时我的手机上运行得很好,但就接收位置更新而言,我的新手机到处都是(没有双关语)。不幸的是,它们不是非常精确,因此如果我查找精度值(例如,小于7米),我在onlocationchanged处理程序中的逻辑将无法达到。结果,当这些点被绘制在我的谷歌地图上时,它捕捉到了一些点,然后在我徒步旅行时在一些地形上画了一条直线,我希望能够覆盖这些点,但我很

大约一年前,我问了一个类似的问题,得到了一些很好的建议(使用location.getaccurity()),如果精度低于某个阈值,就不要处理位置更改。这在当时我的手机上运行得很好,但就接收位置更新而言,我的新手机到处都是(没有双关语)。不幸的是,它们不是非常精确,因此如果我查找精度值(例如,小于7米),我在onlocationchanged处理程序中的逻辑将无法达到。结果,当这些点被绘制在我的谷歌地图上时,它捕捉到了一些点,然后在我徒步旅行时在一些地形上画了一条直线,我希望能够覆盖这些点,但我很确定,即使是超人也不能。但真正让我困扰的是,我的距离计算比实际应该的要短得多(这很明显,因为它认为我可以直接从A点飞到B点)

我试图解决这个问题,每次调用位置更改处理程序时都会记录一个计数,但不符合我的阈值,如果计数达到20,则记录该点,然后重置计数器。这使我更接近实际距离,但仍然不是很准确。我已经把这个值改为30,40等等,但是我不得不继续调整这个值来为这部手机找到一个合适的位置,这看起来很愚蠢。作为一个控制测试,我安装了MapMyRun,它的距离计算非常精确,而且它也只使用GPS定位服务

我不知道还能做些什么来让我的距离计算更准确。这显然是可以做到的,因为MapMyRun工作得很好

有人对其他想法有什么建议吗

短暂性脑缺血发作