【发布时间】:2016-12-14 06:58:07
【问题描述】:
我正在制作一个 android 函数,用于保存我的客户在登录到我的应用程序时所经过的路径。有点像优步跟踪骑行路径的方式。
这在大多数情况下都可以正常工作,就像我之前的许多人所说的那样,GoogleLocationclient API 有时会在其“onLocationChanged”函数中返回“BAD”位置。
让我定义“坏”位置:- 这些是在 LocationRequest.setPriority = LocationRequest.PRIORITY_HIGH_ACCURACY 和返回的 Location 的 Location.getAccuracy()
因此,为了解决这个问题,我设置了一个 3 点队列,它缓存 3 个连续的位置更新并将它们相互比较,并且仅当它到第一个和第三个位置的距离小于之间的位置时才保存中间位置第 1 点和第 3 点。
当在 2 个准确点之间只弹出一个错误点时,这种方法可以正常工作。
我的问题
当连续收到超过 2 个“错误”位置时,此逻辑无法过滤掉不正确的位置,并且不会验证未来的点。 :(
任何人都可以建议:- a) 优化位置更新过滤的算法
or
b) 算法在收集所有行程的位置点后过滤掉“BAD”位置。
非常感谢任何帮助。如果这是一个重复的问题,请原谅我的疏忽并将我链接到原始问题:)。
TIA。
【问题讨论】:
-
尝试改变Location.getAccuracy()
标签: android optimization google-location-services