Vai al contenuto

Dubbi su aggiornamento userLocation in una MKMapView


Messaggi raccomandati

Salve a tutti. Ho alcuni dubbi riguardo l'aggiornamento della propria posizione corrente all'interno di una MKMapView:

1) Come faccio a sapere quand'è che il GPS ha terminato di tracciare le coordinate della posizione? Se provo ad esempio a stampare le coordinate nei metodi viewDidLoad, viewDidAppear e company, queste valgono ZERO! o_O Mentre se le stampo in didUpdateUserLocation allora le trovo valorizzate. Ma non esiste una sorta di evento che mi avverte quand'è che le coordinate sono valorizzate? Oppure devo crearmi io un timer?

2) Come si fa ad aggiornare la posizione corrente?

Sto provando a cercare su internet ma non riesco a trovare nulla... qualcuno può aiutarmi?? :)

Grazie!

Link al commento
Condividi su altri siti

1) registrati come delegate della mapview ed implementa - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

2) non puoi. Vieni notificato nell'evento sopra.

Questo metodo viene chiamato ogni qual volta che viene aggiornata la posizione. Ciò mi fa pensare che l'aggiornamento della posizione sia automatico?

Link al commento
Condividi su altri siti

Questo metodo viene chiamato ogni qual volta che viene aggiornata la posizione. Ciò mi fa pensare che l'aggiornamento della posizione sia automatico?

L'aggiornamento della posizione è automatico in base alla precisione che hai richiesto al CLLocationManager. C'è la proprietà desiredAccuracy che ti permette di impostare la precisione.

Però considera che se metti la precisione al massimo consuma molta batteria il device perché il gps rimane sempre attivo.

Mobile & Web Developer | samuele@mr-apps.comMr.Apps

Link al commento
Condividi su altri siti

L'aggiornamento della posizione è automatico in base alla precisione che hai richiesto al CLLocationManager. C'è la proprietà desiredAccuracy che ti permette di impostare la precisione.

Però considera che se metti la precisione al massimo consuma molta batteria il device perché il gps rimane sempre attivo.

Grazie, però io non uso CLLocationManager... uso semplicemente MKMapView, cosa cambia?

Link al commento
Condividi su altri siti

Se usi showsUserLocation di mkmapview non puoi impostare la precisione del gps.

Quindi immagino che in questo caso venga presa sempre la posizione più "precisa"? Ma se volessi usare CLLocationManager? Come faccio poi ad agganciarlo ad una MKMapView? (Perché senza questa non posso mostrare una mappa giusto?)

Link al commento
Condividi su altri siti

Per usare CLLocationManager basta fare una ricerca veloce su google...per esempio questo.

CLLocationManager ti restituisce le coordinate, poi sei tu che devi aggiungere un MKAnnotation o, se vuoi personalizzartelo ti crei una classe che deriva da MKAnnotation. Comunque anche per questo se cerchi nella documentazione apple ci sono anche diversi esempi di codice di come creare MKAnnotaion customizzati.

Mobile & Web Developer | samuele@mr-apps.comMr.Apps

Link al commento
Condividi su altri siti

Per usare CLLocationManager basta fare una ricerca veloce su google...per esempio questo.

CLLocationManager ti restituisce le coordinate, poi sei tu che devi aggiungere un MKAnnotation o, se vuoi personalizzartelo ti crei una classe che deriva da MKAnnotation. Comunque anche per questo se cerchi nella documentazione apple ci sono anche diversi esempi di codice di come creare MKAnnotaion customizzati.

Ok grazie mille! ;)

Link al commento
Condividi su altri siti

  • 1 mese dopo...

ci dovrebbe essere un metodo del delegato

Hai un'idea su un'applicazione per iPhone e non sai come realizzarla? Realizzerò io la tua applicazione per te che potrai vendere su App Store beneficiando di tutti i guadagni.

Vuoi imparare a programmare per iPhone? Offro corsi e lezioni private di programmazione per ogni livello di conoscenze.

Contattami via email o visita http://simoneleopizzi.com.

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...