java - 当设备缓慢移动或静止时 GPS 会波动

标签 java android gps accelerometer

我遇到了 GPS 提供的数据问题。

我在位置更改回调时计算距离,因此当设备空闲时,由于 GPS 波动,距离会增加。

我一直在使用 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 设备计算接近正确距离的优点。

关于java - 当设备缓慢移动或静止时 GPS 会波动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48184891/

相关文章:

java - 无法在部署到 Heroku 的 Java Tomcat 服务器中执行工作进程

java - 使用 testng 框架运行 selenium 测试时出现空异常错误

iphone - 将 GPS 坐标发送到服务器的最佳方式?

java - Android Geolocation 在模拟器中工作但不在手机中工作

java.util.zip.ZipException : duplicate entry: META_INF/LICENSE. txt

java - 如何为给定路径创建文件(包括文件夹)?

android - 更改 TextInputLayout 轮廓颜色(或如何覆盖主题/样式中的颜色)

java - ToggleButton 能否更改同一 Activity 中其他按钮的功能?

php - "registration_ids"字段不是 JSON 数组 (Firebase)

android - 如何从 Android 中的 GPS 获取坐标?