Как измеряется точность определения местоположения в Android?


кто-нибудь знает правильную интерпретацию измерений точности, возвращенных getAccuracy()? Например, они рассчитываются как:

  • круговая вероятность ошибки (что означает, если я правильно понимаю, радиус 50% доверительного круга)?

  • радиус 95% доверительного круга?

  • что-то еще?

кроме того, каковы фактические расчеты, которые используются и как на них можно сильно положиться? Зависит ли это от источника оценки местоположения (GPS против сети)?

большое спасибо за любые советы вы можете дать мне.

6 86

6 ответов:

чтобы ответить на одну часть вопроса, составляет the radius of 68% confidence, Это означает, что есть 68% вероятность того, что истинное местоположение находится в пределах радиуса измеряемой точки в метрах. Предполагая, что ошибки обычно распределяются (что, как говорят документы, не обязательно верно), это означает, что это одно стандартное отклонение. Например, если Location.getAccuracy возвращает 10, то есть 68% шанс, что истинное местоположение устройства находится в пределах 10 метров от сообщенного координирует.

http://developer.android.com/reference/android/location/Location.html#getAccuracy()

расположение сложно сделать, когда у вас есть ограниченный срок службы батареи, а когда нет GPS сигнала внутри зданий и в зонах со многими крупными здание и т. д. Но Android делает это намного проще. Когда вы запрашиваете местоположение, вам просто нужно указать, какая точность вам нужна.

Если вы укажете, что вы хотите *100 meters*, Android попытается получить местоположение, и если он может получить местоположение для точности 70 метров, он вернет его вам, но если Android может получить местоположение с точностью выше 100 метров, ваше приложение будет ждать и ничего не получит, пока не появится местоположение с такой точностью.

к этому времени GPS будет включен. GPS-устройству требуется не менее 30 секунд от холодного запуска, чтобы получить исправление, поэтому, если вы можете получить исправление, оно вернет широту и долготу, но снова с точностью, которая будет максимально возможной для примера 100 метров. Чем дольше работает GPS, тем точнее вы будете получить.

важное замечание: первые два метода требуют подключения к интернету. Если нет подключения к данным, вам придется подождать по GPS, но если устройство находится в здании, вы, вероятно, получите не место.

документация на getAccuracy говорит, что он возвращает точность в метрах. Я бы предположил, что это означает, что если вы получаете возвращаемое значение 60, вы находитесь где-то в круге с радиусом 60 метров вокруг поставляемой позиции.

насколько я могу видеть из быстрый взгляд на исходный код Android, это зависит от аппаратного устройства и какое значение он захочет вернуться.

The есть reportLocation метод который вызывается машинным кодом и получает переданную точность в качестве значения. Таким образом, по крайней мере, расчет не происходит в рамках.

qcom (который я считаю Qualcomm) GPS git repo передает the hor_unc_circular параметр для точности, который, по-видимому, подразумевает, что, по крайней мере, эта реализация использует CER.

Если, как указано в документах, это точность, то фактическое положение пользователей находится где - то в пределах QUOTED_LOCATION + / - точность. Таким образом, точность определяет радиус, где вы могли бы ожидать, что пользователь будет. В документах не говорится, насколько вы уверены, что пользователь находится в радиусе - Стандарт составляет 95%, поэтому я думаю, что это он.

Я понимаю, что вы просите определенного ответа с точки зрения вероятности, но я думаю, что здесь нужно рассмотреть две вещи. Во-первых, это зависит от поставщика, чтобы решить, что они хотят положить в это значение, так что в зависимости от поставщика, Это может быть просто плохая догадка. Во-вторых, это может помочь думать об этом как о потенциальной проблеме округления. Если я пытаюсь вычислить ваше местоположение на основе нескольких входов, и некоторые из этих входов доступны только для определенного количества значимых цифры, то это возможно только для расчета местоположения с заданным количеством значащих цифр. Подумайте об этом таким образом-что такое "один плюс" около "ста". Вероятно, около ста, потому что точность ста, вероятно, меньше, чем величина 1. Если я вдруг скажу, что ответ около 101, то я могу в конечном итоге подразумевать уровень точности, которого там не было. Однако, если я действительно укажу точность, то могу сказать, что это 100 плюс или минус 10 плюс 1 плюс или минус .Один это 101 плюс-минус 10. Я понимаю, что это обычно относится к чему-то вроде 95% - ного уровня доверия (Стандартная ошибка), но опять же, что все предполагает, что поставщик понимает статистику и не просто угадывает.