FINE_LOCATION имеет меньшую точность, чем COARSE_LOCATION - PullRequest
4 голосов
/ 01 июля 2011

Согласно моему пониманию доступа к местоположению на Android:

  1. Провайдеру местоположения требуется разрешение ACCESS_COARSE_LOCATION, он имеет меньшую точность, но быстрее находит местоположение.
  2. Провайдеру GPS требуется разрешение ACCESS_FINE_LOCATION, он имеет более высокую точность и медленнее определяет местоположение.

Так что поймите лучше, я запустил следующий код

//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 Ответ

3 голосов
/ 01 июля 2011

Точность измерения - это точность местоположения в метрах, поэтому более низкое значение указывает на более точное местоположение.Таким образом, местоположение с точностью до 60,0 м может быть отклонено на расстояние до 60 м в любом направлении, тогда как местоположение с точностью до 5,0 м будет отклонено только на 5 м.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...