无法正确获取速度值 - 施法不起作用



我目前正试图通过使用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();

最新更新