【问题标题】:Getting Speed using Google Play Location API使用 Google Play Location API 获得速度
【发布时间】:2013-11-08 11:57:45
【问题描述】:

我正在使用来自新的 GooglePlay API(LocationClient 类)的融合位置提供程序。但是 Location.GetSpeed() 方法没有返回正确的速度(显示 0)。我读到我必须使用 LocationManager 类来获得速度,但是当我尝试 LocationManager 时,出现了一个新问题。位置管理器 NetworkProvider 不工作,这是一个有问题的线程 http://code.google.com/p/android/issues/detail?id=57707 。 那么获得运动速度的最佳方法是什么。我试着计算它的距离/时间,但它不准确..

【问题讨论】:

  • 重点是我每 15 秒获得一次坐标,如果您在行驶时向左或向右转,您经过的距离不是位置管理器的 2 个点之间的距离.. 以及位置客户端并不总是准确的,在信号低的地方可能精度较低,并且计算出非常错误的距离,例如 300 公里/小时..

标签: android performance gps location


【解决方案1】:

提供速度的唯一传感器是 GPS。
Wlan 和 GSm 基站定位无法提供速度。

如果您需要速度,则必须确保将 GPS 专门用作位置提供程序。 您不能将 NetworkProvider 用于该任务。

如果速度是一项重要要求,它比电池消耗具有更高的优先级,则您必须仅使用 GPS Provider。你必须避免融合的位置提供者。

从技术上讲,没有 GPS 就不可能有速度。

【讨论】:

  • 问题是指 Fused Locations 提供商,它只允许基于功耗的四个标准;您没有机会请求特定的提供商(例如仅 GPS)。你是说 OP 需要放弃 Fused Locations?
  • 您只能通过 GPS 提供商获得速度。如果速度是一个重要要求,它比电池消耗具有更高的优先级,则您必须仅使用 GPS Provider。你必须避免融合的位置提供者。
【解决方案2】:

我在使用 Google Play Location API 时也遇到了这个问题, 我希望这会有所帮助。

返回 0 是因为您的设备无法锁定 GPS,或无法连接到 GPS。

我尝试使用较旧的 lenovo 设备获取速度,但它返回 0,因为它无法锁定 gps。

我尝试使用三星 Galaxy nexus,它返回了我的速度(具有更好的 GPS 传感器)。

您手机中的 GPS 传感器可能不好,或者您所在的区域 GPS 信号较弱,例如房屋或建筑物内。

即使你在没有连接gps的情况下使用locationManager获取速度,你的getSpeed仍然会返回0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-16
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    相关资源
    最近更新 更多