【发布时间】:2012-07-24 05:56:25
【问题描述】:
我正在从事 Android 开发,我想开始搞乱 GPS 和捕捉速度。有没有办法可以使用 GPS 轻松捕捉速度并在屏幕上显示该速度?我可以使用任何简单的框架或内置函数吗?
【问题讨论】:
-
谢谢,我之前搜索过,没有找到。
标签: java android gps android-4.2-jelly-bean
我正在从事 Android 开发,我想开始搞乱 GPS 和捕捉速度。有没有办法可以使用 GPS 轻松捕捉速度并在屏幕上显示该速度?我可以使用任何简单的框架或内置函数吗?
【问题讨论】:
标签: java android gps android-4.2-jelly-bean
您必须使用LocationManager,它用于通过 GPS 获取用户位置,返回的 GPS 数据包括速度。您必须使用LocationListener 的onLocationChanged(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);
【讨论】:
我认为有两种方法可以实现:
首先,如果你在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
【讨论】: