Pregunta

Tengo algunas preguntas acerca de Core Location.

1) En caso de que el permiso de basuras de usuario para mi aplicación a la ubicación del núcleo uso o ubicación central no está disponible por alguna razón, no es un retroceso? (Dispositivo Locale, por ejemplo?)

2) ¿Puedo almacenar en caché la ubicación de un dispositivo para la próxima vez? ¿El Core Location hacer esto en sí?

3) Realmente necesita el tiempo de la puesta del sol en el área del usuario durante la temporada de mediados de la primavera y tengo una función para hacer eso, una vez que tenga la latitud y longitud del dispositivo. Tal vez yo sólo puedo hacer una suposición acerca del tiempo según la configuración regional? (Ejemplo:. En los EE.UU., suponga aproximadamente 19:00)

EDIT:

Realmente estoy tratando de calcular la puesta del sol en el área de usuarios para una aplicación. Nada que ver con el mapa. Estoy considerando la siguiente secuencia de eventos:

  • Comprobar Core Location disponibilidad. Si es así, utilizarlo y almacenarlo en NSUserPreferences. Si Core Location no está disponible, continúe con los retrocesos.
  • Compruebe si hay una ubicación almacenada. Si se almacena, lo utilizan. Si no es así, seguir ...
  • Compruebe si el tiempo elegido por el usuario.
¿Fue útil?

Solución

1) En sentido estricto, si el usuario no permite el uso de CoreLocation o, si se les dio permiso, pero CoreLocation no está disponible, no hay otro repliegue para obtener la ubicación del usuario como latitud, longitud par. Usando la localidad pueden no funcionar en todos los casos. En primer lugar, sólo le dará una aproximación que puede ser demasiado lejos de la realidad. Sin embargo, le toca a usted para juzgar si esta aproximación es aceptable para su aplicación. Por otra parte, hay algunos usuarios que utilizan una configuración regional diferente de la relacionada con su país. Y, usted no tiene ninguna garantía de que las personas que viajan al extranjero van a ajustar la fecha / hora cada vez.

2) Core Location almacena en caché por defecto la última ubicación recuperada de la unidad GPS. Sin embargo, para las personas que viajan al extranjero esta ubicación en caché será sin duda mal (incluso para las personas que viajan a unas pocas millas de distancia), y, en general, se debe descartar el valor almacenado en caché y localizar de nuevo al usuario cada vez. Entiendo que para las personas que viajan dentro de su país esto no (por lo general) crear enormes problemas. Sin embargo, sólo depende del país: viajar dentro de Italia no va a cambiar el tiempo, pero viaja a través de los EE.UU. puede cambiar el tiempo máximo de 3 horas.

3) yo sugeriría probar el uso de Core Location y, en caso de problemas, sólo tiene que pedir al usuario que introduzca su / su tiempo local o ubicación (la ciudad debe ser suficiente para su propósito). Si decide pedir la ubicación del usuario, a continuación, se puede obtener el correspondiente par latitud / longitud, pero esto requerirá una conexión de red de trabajo.

Otros consejos

2) A partir de los documentos en línea para CLLocationManager:

  

El servicio de localización devuelve una localización inicial lo más rápido posible, devolver información en caché cuando esté disponible.

Puede comprobar la fecha y hora CLLocation para ver si se trata de un valor almacenado en caché o no.

3) Si se decide utilizar la configuración regional para una primera aproximación TZ, recuerde que los usuarios viajan, y no pueden restablecer su localidad con prontitud. Usted puede obtener el objeto actual con TZ:

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