Domanda

Ricordo di aver letto da qualche parte (dimentico dove) che se un'applicazione iPhone eseguiva semplicemente CLLocationManager una volta, non si ottenevano i risultati più accurati.

È accurato e, in tal caso, come posso combattere questo problema? Voglio ottenere i risultati GPS più accurati e mi chiedo se solo una volta creerà i risultati migliori.

Grazie per l'aiuto!

È stato utile?

Soluzione

CLLocationManager *locationManager.desiredAccuracy = kCLLocationAccuracyBest;

Restituirà il miglior risultato possibile per te. Il metodo delegato

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

continuerà a restituire la posizione dell'utente in base alle preferenze di precisione impostate.

Se hai bisogno della posizione una sola volta, devi ricordare di chiamare stopUpdatingLocation su self . Se è necessario aggiornare continuamente la posizione dell'utente, non chiamare stopUpdatingLocation

Sto usando CoreLocation per ottenere la posizione di un utente ed è abbastanza preciso per il mio uso.

Altri suggerimenti

Quello che hai letto era probabilmente da Guida alla programmazione delle applicazioni iPhone :

  

Per recuperare la corrente dell'utente   posizione, creare un'istanza di   Classe CLLocationManager e configurazione   con la precisione desiderata e   parametri di soglia. Iniziare   ricevere notifiche sulla posizione,   assegnare un delegato all'oggetto e   chiama il metodo startUpdatingLocation   per iniziare la determinazione del   posizione corrente dell'utente. Quando nuovo   sono disponibili i dati sulla posizione, il   il gestore della posizione notifica la sua assegnazione   oggetto delegato. Se un aggiornamento della posizione   è già stato consegnato, puoi   ottieni anche i dati sulla posizione più recenti   direttamente dal CLLocationManager   oggetto senza attendere un nuovo evento   da consegnare.

     

[...]

     

Il controllo del timestamp di un evento è   consigliato perché la posizione   il servizio restituisce spesso l'ultimo memorizzato nella cache   evento di localizzazione immediatamente. Può   impiega alcuni secondi per ottenere una prova   posizione corretta in modo che i vecchi dati semplicemente   serve come un modo per riflettere l'ultimo   posizione nota. Puoi anche usare il   accuratezza come mezzo per determinare   se vuoi accettare un evento.   Man mano che riceve dati più precisi, il   il servizio di localizzazione potrebbe essere aggiuntivo   eventi, con i valori di precisione   riflettendo i miglioramenti   di conseguenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top