Кто-нибудь знает правильную интерпретацию измерений точности, возвращаемых getAccuracy ()? Например, рассчитываются ли они как:
Вероятность круговой ошибки (имеется в виду, если я правильно понимаю, радиус круга уверенности 50%)?
Радиус круга уверенности 95%?
что-то другое?
Кроме того, какие именно расчеты используются и насколько мы можем на них полагаться? Зависит ли это от источника оценки местоположения (GPS или сеть)?
Большое спасибо за любой совет, который вы можете мне дать.
Ответы:
Чтобы ответить на одну часть вопроса, число
the radius of 68% confidence,
означает, что существует 68% -ная вероятность того, что истинное местоположение находится в пределах радиуса измеренной точки в метрах. Предполагая, что ошибки распределены нормально (что, как говорится в документации, не обязательно верно), это означает, что это одно стандартное отклонение. Например, еслиLocation.getAccuracy
возвращается 10, то с вероятностью 68% истинное местоположение устройства находится в пределах 10 метров от указанных координат.http://developer.android.com/reference/android/location/Location.html#getAccuracy ()
источник
Местоположение - сложная задача, когда у вас ограниченный срок службы батареи и когда нет сигнала GPS в зданиях и в районах с большим количеством больших зданий и т. Д. Но Android значительно упрощает эту задачу. Когда вы запрашиваете местоположение, вам просто нужно указать, какая точность вам нужна.
Если вы укажете, что вам нужен
accuracy
пример*100 meters*
, Android попытается получить местоположение, и если он сможет получить местоположение с точностью до 70 метров, он вернет его вам, но если Android может получить местоположение с точностью выше 100 метров, ваше приложение будет ждать и ничего не получит, пока не будет найдено местоположение с такой точностью.Обычно Android сначала получает Cell ID, а затем отправляет его на сервер Google, который сопоставляет такие Cell ID, и сервер возвращает широту и долготу с точностью, которая низкая, например, 1000 метров. К этому времени Android также попытается увидеть все сети Wi-Fi в этом районе и также отправит информацию о них на сервер Google, и, если возможно, сервер Google вернет новое местоположение с более высокой точностью, например, на 800 метров.
К этому времени GPS будет включен. Устройству GPS требуется не менее 30 секунд с момента холодного запуска, чтобы получить исправление, поэтому, если оно удастся исправить, оно вернет широту и долготу, но снова с точностью, которая будет максимально возможной для примера 100 метров. Чем дольше работает GPS, тем выше точность.
Важное примечание: для первых двух методов требуется подключение к Интернету. Если нет подключения для передачи данных, вам придется дождаться GPS, но если устройство находится в здании, вы, вероятно, не получите местоположение.
источник
В документации по getAccuracy сказано, что он возвращает точность в метрах. Я предполагаю, что это означает, что если вы получите возвращаемое значение 60, вы находитесь где-то в круге с радиусом 60 метров вокруг указанной позиции.
источник
Насколько я могу судить по исходному коду Android, это зависит от аппаратного обеспечения устройства и того, какое значение оно выбирает для возврата.
В
GpsLocationProvider.java
файле естьreportLocation
метод, который вызывается собственным кодом, и ему передается точность в качестве значения. Таким образом, по крайней мере, в рамках, похоже, не происходит никаких вычислений.Репозиторий git git qcom (который, я считаю, является Qualcomm) проходит в
hor_unc_circular
параметр для точности , который , кажется, подразумевает , что, по крайней мере, что реализация использует CER.источник
Если, как указано в документации, это точность, то фактическая позиция пользователя находится где-то в пределах QUOTED_LOCATION +/- ACCURACY. Таким образом, точность определяет радиус, в котором вы можете ожидать, что пользователь будет. В документации не говорится о том, насколько вы можете быть уверены, что пользователь находится в пределах радиуса - стандарт 95%, так что я предполагаю, что это все.
источник
Я понимаю, что вы просите однозначного ответа с точки зрения вероятности, но я думаю, что здесь следует учесть две вещи.
Во-первых, поставщик должен решить, что он хочет вставить в это значение, поэтому, в зависимости от поставщика, это может быть просто неверным предположением.
Во-вторых, это может помочь думать об этом как о потенциальной проблеме округления. Если я пытаюсь вычислить ваше местоположение на основе количества входных данных, и некоторые из этих входов доступны только для определенного количества значащих цифр, тогда можно рассчитать местоположение только с заданным количеством значащих цифр.
Подумайте об этом так - что "примерно" один плюс "примерно" сто. Вероятно, около сотни, потому что точность сотни, вероятно, меньше, чем величина 1. Если я внезапно скажу, что ответ будет около 101, то я могу в конечном итоге иметь в виду уровень точности, которого не было. Однако, если я на самом деле укажу точность, то я могу сказать, что она 100 плюс-минус 10 плюс 1 плюс-минус .1 равно 101 плюс или минус 10. Я понимаю, что это обычно относится к чему-то вроде уровня уверенности 95% ( стандартная ошибка), но опять же, все предполагает, что провайдер понимает статистику, а не просто догадывается.
источник