trucos mapas localizacion funciona activar iphone objective-c cocoa-touch gps

mapas - trucos iphone xr



Desarrollo de GPS para iPhone: consejos+trucos (2)

No conozco ninguna lista específica, pero aquí hay algunas cosas que debe tener en cuenta:

  • No estás haciendo búsquedas GPS. Estás haciendo búsquedas en Core Location. Core Location podría estar recibiendo o no su información del GPS. Mucha gente todavía usa iPhones pre-3G que no tienen GPS, e incluso en un teléfono 3G, el GPS puede no estar disponible en muchos casos (si la persona está en el interior, por ejemplo). En esos casos, el teléfono intentará triangular en función de las torres de los teléfonos celulares, y Core Location devolverá el resultado. Será mucho menos preciso que el GPS.
  • Core Location almacenará los datos en caché. Es probable que la primera lectura que proporcione a su aplicación sea una lectura antigua, que puede ser o no precisa, dependiendo de si el teléfono se ha movido. Asegúrese de verificar la marca de tiempo de cualquier ubicación y ver si es anterior a la iniciación de su aplicación.
  • No sé a qué te refieres con el modo "ahorro de energía", pero si estás pensando en cuándo la pantalla está bloqueada / apagada, eso no impide que se ejecute Core Location si tu aplicación aún se está ejecutando. Por el contrario, es fácil agotar la batería de su teléfono mucho más rápido de lo que esperaría si bloquea el teléfono mientras se está ejecutando una aplicación que utiliza Core Location, ya que el teléfono continuará actualizando la aplicación a medida que haya nuevos datos de ubicación disponibles. Puede evitar esto en su aplicación escuchando UIApplicationWillResignActiveNotification para detectar el bloqueo de pantalla, y UIApplicationDidBecomeActiveNotification para detectar el desbloqueo.
  • Los resultados de mayor precisión tomarán más tiempo en adquirir, porque cuanto más espere, mejores serán los resultados, hasta un límite. Si decide que necesita estar dentro de N metros, considere cuánto tiempo tendrá que esperar el usuario esperando que el teléfono localice su ubicación.

Si 20 metros es lo suficientemente preciso es algo que solo usted puede responder, según cómo espere que se use su aplicación. Pruebe la aplicación y vea si funciona de la manera que desea que funcione.

Estoy buscando comentarios, enlaces de blogs, etc. que ofrecen algunos consejos y trucos para el desarrollo de un iPhone con GPS. He leído y entiendo la API, tengo mi aplicación de demostración en funcionamiento, etc. pero me he encontrado con algunos "caprichos" con gps en el iPhone. Por ejemplo, parece que recibirás muchas menos actualizaciones de ubicación cuando tu iPhone entre en el modo de "ahorro de energía". He leído que puedes combatir esto reproduciendo música en tu aplicación [no estoy seguro si esto es cierto].

También parece que, en términos de hacer un podómetro razonable, debe filtrar cualquier lectura con una precisión horizontal de menos de 20 metros. Suena bien?

¿Hay algún tipo de lista de verificación en la web para los errores de iPhone gps?

Gracias por adelantado.


Tom tuvo una excelente respuesta (quería destacar sobre todo el retorno habitual del primer valor que podría ser una ubicación en caché más antigua) pero tenía algunas cosas más que agregar:

  • Puede decirle al administrador de la ubicación que se detenga y comience nuevamente si desea obligarlo a emitir al menos una actualización de ubicación más.
  • Si no estaba enterado, hay métodos de conveniencia en CLLocation para darle la distancia entre dos ubicaciones.
  • Como dice la nota, debe implementar locationManager: didFailWithError: aunque no es necesario (solo para detener las actualizaciones del administrador de ubicación por un tiempo).
  • ¡Pruebe a fondo escenarios donde el usuario no permite actualizaciones de ubicación para su aplicación!
  • Muy, muy raramente, puede obtener actualizaciones fuera de servicio (es decir, obtiene una ubicación más precisa seguida de una menos precisa con fecha anterior)
  • El simulador le proporcionará una actualización de ubicación, pero siempre informará su ubicación como Apple HQ.