我目前正试图计算使用应用程序的人的速度。
我认为位置更新有问题,因为当我静坐时,它会检测到速度为零或大约为0,然后由于某种原因突然跳到无穷大(是的,应用程序显示' Infinity&# 39;),然后回到0。
我认为它与尝试除以零有关,但我不确定为什么。
这是我的代码:onConnected:
public void onConnected(Bundle connectionHint) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
LocationServices.FusedLocationApi.requestLocationUpdates(mLocationClient, mLocationRequest, this);
OldLocation = LocationServices.FusedLocationApi.getLastLocation(mLocationClient);
}
}
public void onLocationChanged(Location location) {
int ExceedInstance = PhoneBelt.getExceedInstance();
int ExceedingLimitInteger = PhoneBelt.getExceedInt();
float Distance = OldLocation.distanceTo(location);
long TimeDiff = location.getTime()-OldLocation.getTime();
long SecondDiff = TimeDiff/1000 % 6;
float Speed = Distance/SecondDiff;
}
为什么速度突然随机跳转到无限?
答案 0 :(得分:2)
我认为,它可能会导致,因为长的SecondDiff可以是0.最后,距离将被除以0,这将导致速度=无穷大。