FINE_LOCATION的准确性低于COARSE_LOCATION

时间:2011-07-01 15:28:54

标签: android android-location

根据我在Android上访问位置的理解:

  1. 位置提供程序需要权限ACCESS_COARSE_LOCATION,准确性较低,但检索位置的速度更快。
  2. GPS提供商需要获得权限ACCESS_FINE_LOCATION,准确度更高,检索位置的速度更慢。
  3. 所以更好地理解这一点,我运行了以下代码

    //Go through a list of all location providers to get the "best" one
    List<String> locationProviders = locationManager.getAllProviders();
    for (String locationProviderInit : locationProviders) {
        Log.d(DEBUG_TAG, "found locationProvider:" + locationProviderInit);
        Location lastKnownLocation = locationManager.getLastKnownLocation(locationProviderInit);
        if (lastKnownLocation != null) {
            Log.d(DEBUG_TAG, "accuracy: " + lastKnownLocation.getAccuracy());
            Log.d(DEBUG_TAG, "time: " + lastKnownLocation.getTime());
        }
    }
    

    虽然网络位置提供商始终给出60.0的准确度,但GPS位置提供商通常会提供更低的准确度。时间更长。

    不确定为什么会这样。

1 个答案:

答案 0 :(得分:3)

精度测量是以米为单位的精度,因此较低的值表示更精确的位置。因此,精确到60.0米范围内的位置可以在任何方向上偏离60米,而精确到5.0米以内的位置最多只能偏离5米。