【问题标题】:Using the GPS to capture speed [duplicate]使用GPS捕捉速度[重复]
【发布时间】:2012-07-24 05:56:25
【问题描述】:

可能重复:
Detect a speed in android

我正在从事 Android 开发,我想开始搞乱 GPS 和捕捉速度。有没有办法可以使用 GPS 轻松捕捉速度并在屏幕上显示该速度?我可以使用任何简单的框架或内置函数吗?

【问题讨论】:

  • 谢谢,我之前搜索过,没有找到。

标签: java android gps android-4.2-jelly-bean


【解决方案1】:

您必须使用LocationManager,它用于通过 GPS 获取用户位置,返回的 GPS 数据包括速度。您必须使用LocationListeneronLocationChanged(Location location) 函数。

要获得速度,您需要这样做:

int speed = location.getSpeed();

以 m/s 为单位,如果您需要将其转换为 km/h,请使用:

int speed=(int) ((location.getSpeed()*3600)/1000);

如果您需要将其转换为 mph,请使用:

int speed=(int) (location.getSpeed()*2.2369);

【讨论】:

    【解决方案2】:

    我认为有两种方法可以实现:

    首先,如果你在android中引用Location类,你会发现它有一个名为getSpeed的方法。它说:

    Returns the speed of the device over ground in meters/second. 
    If hasSpeed() is false, 0.0f is returned. 
    

    所以,你可以这样写

    if (locationObj.hasSpeed()) {
        float speed = locationObj.getSpeed();
        // process data
    } else {
        // Speed information not available.
    }
    

    其次,您可以跟踪 gps 位置更新,以便您存储以前的位置和发生该更新的时间。现在,每次有新更新时,您都可以使用Location 类的distanceTo 方法找到行进的距离。所以,要知道当前的速度,你可以使用公式,distance travelled / time difference between the updates

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-25
      • 2011-08-01
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2013-06-10
      相关资源
      最近更新 更多