ubicacion ubica restaurar porque pokemon otro mejorar mal lugar google esta detecta correcta calibrar android location

restaurar - ¿Cómo se mide la precisión de ubicación en Android?



porque mi ubicacion esta mal en google maps (6)

¿Alguien sabe 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 entiendo correctamente, radio de un círculo de confianza del 50%)?

  • Radio del 95% del círculo de confianza?

  • ¿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 vs. red)?

Muchas gracias por cualquier consejo que me puedan dar.


Entiendo que estás pidiendo una respuesta definitiva en términos de probabilidad, pero creo que hay dos cosas que considerar aquí. En primer lugar, depende del proveedor decidir qué quiere poner en este valor, por lo que dependiendo del proveedor, puede ser una mala idea. En segundo lugar, puede ayudar a pensar en esto como un posible problema de redondeo. Si estoy tratando de calcular su ubicación en función de una serie de entradas, y algunas de esas entradas solo están disponibles para un cierto número de dígitos significativos, entonces solo es posible calcular una ubicación con un número dado de dígitos significativos. Piénselo de esta manera: lo que "se trata" de 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 aproximadamente 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 algo así como un nivel de confianza del 95% ( error estándar), pero una vez más, todos asumen que el proveedor entiende las estadísticas y no solo está adivinando.


La documentación de getAccuracy dice que devuelve la precisión en metros. Supongo que esto significa que si obtienes un valor de retorno de 60 estás en algún lugar en un círculo con un radio de 60 metros alrededor de la posición suministrada.


La ubicación es una tarea complicada, cuando tienes una duración de batería 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 una accuracy para un ejemplo *100 meters* , Android intentará obtener la ubicación y si puede obtener una ubicación con una precisión de 70 metros, se lo 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.

Normalmente, Android primero obtendrá la ID de celda y luego la enviará al servidor de Google, que mapea tales ID de celda y el servidor devolverá una latitud y longitud con una precisión que es baja para un ejemplo de 1000 metros. Para entonces, Android también intentará ver todas las redes WiFi en el área y enviará información sobre ellas también al servidor de Google y, si es posible, el servidor de Google devolverá una nueva ubicación con mayor precisión para un ejemplo de 800 metros.

En este momento, 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 se soluciona, devolverá latitud y 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, mejor será la precisión que obtendrás.

Aviso importante: los primeros dos 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 obtenga ubicación.


Por lo que puedo ver de un rápido vistazo al código fuente de Android, esto depende del hardware del dispositivo y del valor que elija devolver.

El archivo GpsLocationProvider.java tiene un método reportLocation que el código nativo llama y pasa la precisión como valor. Por lo tanto, no parece que haya ningún cálculo al menos en el marco.

El qcom (que creo que es Qualcomm) GPS git repo está pasando el parámetro hor_unc_circular por precisión, lo que parece implicar que, al menos, esa implementación está utilizando CER.


Si, como se lo citó en los documentos, es una precisión, entonces la posición real de los usuarios está dentro de QUOTED_LOCATION +/- ACCURACY. Por lo tanto, la precisión define un radio donde se puede esperar que el usuario esté. 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 es esto.


Para responder una parte de la pregunta, el número es the radius of 68% confidence, lo que significa que hay un 68% de posibilidades de que la ubicación verdadera 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, si Location.getAccuracy devuelve 10, entonces hay un 68% de posibilidades de que la ubicación real del dispositivo esté dentro de los 10 metros de las coordenadas informadas.

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