【问题标题】:How to track distance via GPS on Android?如何在 Android 上通过 GPS 跟踪距离?
【发布时间】:2012-06-04 19:11:56
【问题描述】:

我将如何跟踪用户行进的距离?我不一定关心存储航点,尽管无论如何这可能是计算距离所必需的。 到目前为止,我正在创建一个 LocationManager 并注册一个 onLocationChanged 侦听器,然后在侦听器触发时计算两点之间的原始距离。

这里的问题是,如果我让应用程序在桌子上静止不动 10 到 15 分钟,它会说我已经旅行了 0.5 英里。我应该如何检查准确性并确定要使用的点?

或者,甚至更好 - 是否有一个 SDK 或 .jar 可以包含在我的项目中并调用它们的函数以使整个事情变得更容易?

感谢您的宝贵时间。

【问题讨论】:

    标签: android gps location tracking distance


    【解决方案1】:

    我不是 Android 程序员,但我在自己的嵌入式处理器中实现了此功能,其处理能力远低于运行 Andriod 的任何处理器。

    这与 GPS 确定的定位精度无关。如果你有一个固定的 GPS 接收器,它可以“完美”地看到天空,并随着时间的推移绘制它报告的位置,那么你会看到它在真实位置周围徘徊,向任何方向移动几米。如果您以非常小的步长累积行进的距离,围绕真实位置,您最终会得到显然将您带到月球并返回的距离。

    您需要设置一个大于 GPS 定位精度的移动阈值,然后仅在您确定已从上一个移动步骤中添加的点移动时才添加行进距离.

    【讨论】:

    • 谢谢!两个信息丰富的答案,但我正在寻找这个问题的逻辑而不是语法。
    • 这绝对是个好主意。道具。
    • 感谢您的回答!!几个月来我一直在寻找那个算法!
    【解决方案2】:

    您可以在它提供给您的 Location 对象上调用 getAccuracy() 来检查准确性。如果您的应用程序需要真正准确,您只能计算具有高精度的值。

    您还可以在 LocationManager 上调用 getProviders() 来检查您是否从 wifi、gps 或两者中获取坐标,如果当前未打开,请让用户使用他们的 gps,以便获得更多信息准确的点。

    【讨论】:

    • 我对这个科学领域完全陌生。准确度如何被认为足以使用?有没有更好的方法来判断用户是否移动了?
    • 这完全取决于您,以及准确性对您的应用程序功能的重要性。只知道 GPS 在建筑物内永远无法正常工作,所以它可能永远不会比在 5-20m 内更好。这是我目前能想到的知道他们是否搬家的唯一方法。这就是 LocationManager 和 onLocationChanged 的​​用途。
    • (BTW 精度以米为单位返回。因此,如果返回精度为 5,则它们可能在返回位置的 5 米半径范围内)。
    • 最后一个问题 - 我假设精度在半径范围内。例如:acc of 5 = 5m 任何方向,但用户可能所在的总直径为 10 米的球体/圆。听起来对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    相关资源
    最近更新 更多