2011-11-20 65 views
1

这似乎应该很简单,但我似乎无法得到如何使用Android的定位服务计算我的速度的清晰示例。计算Android中两个位置点之间的速度

我想要做的就是根据我以前和当前的GPS位置计算我的速度。 getSpeed()不起作用,因为它需要使用setSpeed()在某个点设置。

那么有没有任何示例代码,我可以在Eclipse中运行我的Android模拟器运行GPX文件,这将显示我的步伐在任何措施(米,英尺,英里等,无所谓 - 我总是可以将其转换为我需要的)。

在此先感谢,亚历克斯

回答

1

getSpeed()不工作,因为它需要在使用setSpeed某个时间点被设定( )。

(如果您正在使用实际设备 - )。不,速度取决于GPS芯片组,它应该比获取两个连续位置之间的距离和时间更准确。你不需要setSpeed()。请致电hasSpeed()查看速度是否有效。


(如果你使用的不是实际的设备) 我已经使用模拟位置提供/良好的成功在这里你可以设置要与米setSpeed()Location对象第二

以下是这样做的一些方法:

2

你刚才的意思是这样?以m/s为单位给出速度。

oldLocation.distanceTo(newLocation)/(newLocation.getTime() - oldLocation.getTime())

+2

这可能会工作,但有时可能会带来一些糟糕的结果(即由于一个计算错误的位置而引起的高振荡)。您可以通过计算更多位置数据集的平均值来使其更平滑。 – stefan

+0

还要记住'getTime()'返回毫秒数,而不是秒数。所以如果你期望'm/s',那么你的系数就是10^3。 – 2011-11-20 16:53:51

相关问题