我遇到GPS fluctuation.
问题
我正在计算distance upon the location change callback
,因此当设备空闲时,由于这种波动问题,距离会增加。
我一直在使用FusedLocationProviderClient进行位置更新。
fusedLocationClient.requestLocationUpdates(locationRequest,
locationCallback, Looper.myLooper());
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
mLocationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
onNewLocation(locationResult.getLastLocation());
}
};
private void createLocationRequest() {
locationRequest = new LocationRequest();
locationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS);
locationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
最佳答案
GPS的定位精度不超过4或5米。也就是说,每次计算位置时,半径都不得小于4米。有时,计算出的位置会向前方移动米,有时向左,向后移动米。
如果您不希望考虑这些小变化,则必须由您的代码来区分用户是否真正移动。
听起来很难,是的,但这是应用程序或GPS设备计算接近正确距离的优点。