¿Cómo puedo determinar si la información de ubicación devuelta por CLLocationManager es válida?

StackOverflow https://stackoverflow.com/questions/465494

Pregunta

¿Cómo puedo determinar si la información de ubicación devuelta por CLLocationManager es válida?

¿Fue útil?

Solución

Dos cosas a tener en cuenta, la marca de tiempo y el hdop (Grado de precisión horizontal). El primero le dirá cuándo se tomó la lectura, el segundo le dirá el nivel de error en la lectura. Por ejemplo, un hdop de 1000 le dirá que la medición es precisa dentro de 1000 metros. Obviamente, cuanto más bajo sea el hdop, mejor.

Ambos están en la actualización de la ubicación central que obtienes.

Otros consejos

No puedes estar absolutamente seguro. Obtendrá la mejor idea del teléfono sobre dónde está, y puede creerlo o no, pero no puede verificar fácilmente esa ubicación.

Una cosa que puede ayudar a algunos es verificar la marca de tiempo de las ubicaciones que obtienes. Core Location almacenará datos en caché, y el primer resultado que obtenga puede ser una lectura muy antigua. Si el teléfono se ha movido, puede ser inexacto. Por otro lado, aún puede ser correcto, y realmente no puede estar seguro hasta que lleguen nuevos resultados. Sin embargo, a menudo es útil desechar los datos de la Ubicación central de donde proviene la marca de tiempo antes de que su aplicación se inicie; podría sean buenos datos, pero hay una buena posibilidad de que no lo sean. Las lecturas posteriores serán nuevas y serán tan confiables como el teléfono pueda hacerlas.

Además, si la precisión horizontal es negativa, entonces la latitud y la longitud no son válidas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top