0

我需要一些关于位置跟踪的说明,我使用以下代码片段来获取当前用户位置,在我的代码中,我会延迟一分钟调用位置侦听器。每次我得到不同的位置值时,我都不会移动/干扰设备,设备放在桌子上,我不明白为什么会这样,我的代码有什么问题还是我需要做一些事情指导我,提前谢谢,

locationManager = (LocationManager) HomeActivity.this
                .getSystemService(Context.LOCATION_SERVICE);
        locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {

                currentLatitude = Double.toString(location.getLatitude());
                currentLongitude = Double.toString(location.getLongitude());
            }

            public void onStatusChanged(String provider, int status,
                    Bundle extras) {
            }

            public void onProviderEnabled(String provider) {
            }

            public void onProviderDisabled(String provider) {
            }
        };

        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                60000, 0, locationListener);
}
4

1 回答 1

0

这对于 GPS 来说是正常的:
表示为 double 或 float 变量的坐标将具有几厘米或几毫米的分辨率。
但是有效精度要低得多:在天空视野良好的情况下,(外部)10m经常发生,最高可达30m。

在办公室内,您的位置会剧烈移动,最高可达 50-60m,如果您松开 GPS 并且手机切换到手机信号塔位置,则可能会发生最高 1000m 的移动。

这取决于 GPS 应用程序,但每个 GPS 应用程序都必须根据需要过滤 GPS 位置。

(设备移动时 GPS 更准确)

于 2013-03-27T20:28:50.563 回答