获得用户的速度 - getSpeed和cast

时间:2016-08-10 09:11:47

标签: android gps location google-play-services

我目前正在尝试使用GPS(Google Play定位服务)来提高用户的速度。

然而,我的代码的问题是速度停留在一个非常小的数字 - 下降到1.9 ^ E18,基本上为0.即使我四处走动,这个值也不会改变。

我目前正在尝试使用速度和时间戳手动计算用户的速度。但是,我还发现了一个名为getSpeed()的函数。我正在考虑使用它,但我在这里发现的许多抱怨说它总是返回零。

首先 - getSpeed()仅用于模拟位置,还是可以安全地使用GPS获取的位置对象?

其次如果getSpeed不起作用,我将需要继续手动获取速度。我相信铸造可能存在问题。 有人可以帮助我找到当前方法的问题吗?

public void onLocationChanged(Location location) {
        location.getLatitude();
        Toast.makeText(this, "Location Changed", Toast.LENGTH_SHORT).show();
        if (settings == null) {
            settings = getSharedPreferences(PREFS_NAME, 0);
        }

        int TimeDifference = (int) (location.getTime() - OldLocation.getTime());
        int distance = (int) OldLocation.distanceTo(location);

        double speed = distance / TimeDifference;

        if (LowerLimit < speed && speed < UpperLimit) {
            TimeInstance += TimeDifference;
        }

        if (TimeInstance>TimeLimit) {
            if (!dialogShown) {
                dialogShown = true;
                ViolationMessage();
                TimeInstance = 0;
            }
            else {
                TimeInstance = 0;
            }
        }
        OldLocation = location;
    }

0 个答案:

没有答案