¿Alguien conoce la interpretación correcta de las medidas de precisión devueltas por getAccuracy ()? Por ejemplo, se calculan como:
¿Probabilidad de error circular (es decir, si lo entiendo correctamente, radio de un círculo de confianza del 50%)?
¿Radio del círculo de confianza del 95%?
¿algo más?
Además, ¿cuáles son los cálculos reales que se utilizan y cuánto podemos confiar en ellos? ¿Depende de la fuente de la estimación de ubicación (GPS frente a red)?
Muchas gracias por cualquier consejo que me puedas dar.
Respuestas:
Para responder a una parte de la pregunta, el número
the radius of 68% confidence,
significa que hay un 68% de probabilidad de que la ubicación real esté dentro de ese radio del punto medido en metros. Suponiendo que los errores se distribuyen normalmente (lo que, como dicen los documentos, no es necesariamente cierto), eso significa que se trata de una desviación estándar. Por ejemplo, siLocation.getAccuracy
devuelve 10, entonces hay un 68% de probabilidad de que la verdadera ubicación del dispositivo esté dentro de los 10 metros de las coordenadas informadas.http://developer.android.com/reference/android/location/Location.html#getAccuracy ()
fuente
La ubicación es una tarea complicada, cuando tienes una batería de duración limitada y cuando no hay señal de GPS en edificios y en áreas con muchos edificios grandes, etc. Pero Android lo hace mucho más fácil. Cuando solicita una ubicación, solo tiene que especificar qué precisión necesita.
Si especifica que desea un
accuracy
ejemplo*100 meters*
, Android intentará obtener la ubicación y, si puede obtener una ubicación con una precisión de 70 metros, se la devolverá, pero si Android puede obtener una ubicación con una precisión superior a 100 metros, su aplicación esperará y no recibirá nada hasta que haya una ubicación con tal precisión.Por lo general, Android primero obtendrá el ID de celda y luego lo enviará al servidor de Google, que mapea dichos ID de celda y el servidor devolverá una latitud y longitud con una precisión que es baja, por ejemplo, 1000 metros. En este momento, Android también intentará ver todas las redes WiFi en el área y también enviará información sobre ellas al servidor de Google y, si es posible, el servidor de Google devolverá una nueva ubicación con mayor precisión, por ejemplo, 800 metros.
Para entonces, el GPS estará encendido. El dispositivo GPS necesita al menos 30 segundos desde un arranque en frío para obtener una solución, por lo que si puede obtener una solución, devolverá la latitud y la longitud, pero nuevamente con una precisión, que será la más alta posible para un ejemplo de 100 metros. Cuanto más tiempo funcione el GPS, mayor precisión obtendrá.
Aviso importante: los dos primeros métodos requieren una conexión a Internet. Si no hay conexión de datos, tendrá que esperar al GPS, pero si el dispositivo está en un edificio, probablemente no obtendrá ninguna ubicación.
fuente
La documentación sobre getAccuracy dice que devuelve la precisión en metros. Supongo que esto significa que si obtiene un valor de retorno de 60, se encuentra en algún lugar de un círculo con un radio de 60 metros alrededor de la posición proporcionada.
fuente
Por lo que puedo ver de un vistazo rápido al código fuente de Android, esto depende del hardware del dispositivo y del valor que elija devolver.
El
GpsLocationProvider.java
archivo tiene unreportLocation
método al que llama el código nativo y se le pasa la precisión como un valor. Por lo tanto, al menos no parece estar ocurriendo ningún cálculo en el marco.El repositorio de git GPS de qcom (que creo que es Qualcomm) está pasando el
hor_unc_circular
parámetro de precisión, lo que parece implicar que, al menos, esa implementación está utilizando CER.fuente
Si, como se cita en los documentos, es una precisión, entonces la posición real del usuario está en algún lugar dentro de QUOTED_LOCATION +/- PRECISIÓN. Entonces, la precisión define un radio en el que podría esperar que esté el usuario. Lo que los documentos no dicen es qué tan seguro puede estar de que el usuario está dentro del radio: el estándar es del 95%, así que supongo que esto es así.
fuente
Entiendo que está pidiendo una respuesta definitiva en términos de probabilidad, pero creo que hay dos cosas a considerar aquí.
En primer lugar, depende del proveedor decidir qué quieren poner en este valor, por lo que, dependiendo del proveedor, puede ser una mala suposición.
En segundo lugar, puede resultar útil pensar en esto como un posible problema de redondeo. Si estoy tratando de calcular su ubicación en función de una cantidad de entradas, y algunas de esas entradas solo están disponibles para una cierta cantidad de dígitos significativos, entonces solo es posible calcular una ubicación con una cantidad determinada de dígitos significativos.
Piénselo de esta manera: ¿qué es "uno más" aproximadamente "cien? Probablemente alrededor de cien, porque la precisión de cien es probablemente menor que la magnitud de 1. Si de repente digo que la respuesta es alrededor de 101, entonces puedo terminar implicando un nivel de precisión que no estaba allí. Sin embargo, si realmente especifico la precisión, entonces puedo decir que 100 más o menos 10 más 1 más o menos .1 es 101 más o menos 10. Entiendo que esto generalmente se refiere a un nivel de confianza del 95% ( error estándar), pero de nuevo, todo eso asume que el proveedor comprende las estadísticas y no solo está adivinando.
fuente