Pregunta

Estoy buscando comentarios, enlaces de blogs, etc. que ofrezcan algunos consejos y trucos para el desarrollo del iPhone GPS. He leído y entiendo la API, tengo mi aplicación de demostración en funcionamiento, etc. pero me he encontrado con algunas & Quot; peculiaridades & Quot; con gps en iphone. Por ejemplo, parece que recibirá muchas menos actualizaciones de ubicación cuando su iPhone ingrese & "; Ahorro de energía &"; modo. 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 precisiones horizontales de menos de 20 metros. ¿Suena bien?

¿Hay algún tipo de lista de verificación en la web para las capturas de iPhone GPS?

Gracias de antemano.

¿Fue útil?

Solución

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

  • No estás haciendo búsquedas de GPS. Estás haciendo búsquedas de ubicación central. Core Location podría o no estar obteniendo su información del GPS. Muchas personas todavía usan iPhones anteriores a 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 interiores, por ejemplo). En esos casos, el teléfono intentará triangular en función de las torres de teléfonos celulares, y Core Location devolverá el resultado. Será mucho menos preciso que el GPS.
  • Core Location almacenará en caché los datos. Es probable que la primera lectura que proporciona a su aplicación sea una lectura anterior, 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 de antes de que su aplicación comenzara.
  • No sé a qué te refieres con " ahorro de energía " modo, pero si está pensando cuando la pantalla está bloqueada / apagada, eso no impide que Core Location se ejecute si su 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 ejecuta una aplicación que utiliza Core Location, porque 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 si escucha UIApplicationWillResignActiveNotification para detectar el bloqueo de pantalla y UIApplicationDidBecomeActiveNotification para detectar el desbloqueo.
  • Los resultados de mayor precisión tardarán más en adquirirse, porque cuanto más espere, mejores serán los resultados, hasta un límite. Si decide que necesita estar a menos de N metros, considere cuánto tiempo el usuario podría tener que estar allí esperando que el teléfono esté en su ubicación.

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

Otros consejos

Tom tuvo una gran respuesta (quería señalar especialmente que el retorno habitual del primer valor podría ser una ubicación en caché más antigua) pero tenía algunas cosas más que agregar:

  • Puede indicarle al administrador de 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 al tanto, existen métodos convenientes en CLLocation para darle la distancia entre dos ubicaciones.
  • Como la nota de los documentos, debe implementar locationManager: didFailWithError: aunque no es necesario (aunque solo sea para detener las actualizaciones del administrador de ubicación por un tiempo).
  • ¡Pruebe a fondo escenarios en los que el usuario no permita actualizaciones de ubicación para su aplicación!
  • Muy, muy pocas veces puede obtener actualizaciones fuera de servicio (es decir, obtiene una ubicación más precisa seguida de una ubicación un poco menos precisa con fecha anterior)
  • El simulador le dará una actualización de ubicación, pero siempre informará su ubicación como Apple HQ.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top