我目前正试图通过使用GooglePlayServices来提高一个人的速度。
我已经设法连接到了服务并获得了位置的更新,但问题是为有问题的人计算速度——也就是说,我很难划分时间和距离。
我之前已经发布过这个,有人建议选角长可以解决这个问题。它很快被标记为重复,所以我没有继续讨论,但我想说它不起作用。
下面是我当前的代码。
float Distance = OldLocation.distanceTo(location);
//Getting Difference in seconds
long TimeDiff = location.getTime()-OldLocation.getTime();
float SecondDiff = TimeUnit.MILLISECONDS.toSeconds(TimeDiff);
//Finally working out speed (m/s)
if (SecondDiff == 0) {
SecondDiff = 1;
}
float Speed = ((long)Distance/SecondDiff);
速度保持为0,而不是正确的值。我对它投了很长的票,但它拒绝了
我也试过:
float Speed = ((long)Distance/(long)SecondDiff);
和
float Speed = (long)(Distance/SecondDiff);
我问题的根源是什么?
为什么不通过getSpeed()方法来获取每个位置对象的速度,比如:
float speed = location.getSpeed();