Ci sono alcuni modi in cui un iPhone ottiene la sua posizione.
- segnale della cella
- punti di accesso wifi
- satelliti GPS
Il più veloce location location di ricerca è il segnale cellulare. Finché disponi di dati recenti, la maggior parte delle torri locali verrà memorizzata nella cache. La precisione della torre cellulare può variare da 500 a 1500 metri o più.
Il secondo più veloce, a patto di disporre della connettività dati o di essere stato recentemente nell'area, è la ricerca wifi. Ciò fornirà una posizione molto accurata. L'avvertenza è che devi essere in wifi e avere un buon segnale di dati.
Il più lento è il GPS. Il GPS nell'iPhone è aGPS. Usa i dati dalle posizioni delle celle delle celle per ottenere una soluzione migliore sulla tua posizione. Se il telefono non dispone di una connessione dati e non è vicino alla rete Wi-Fi, questa operazione può richiedere da 2 a 4 minuti per ottenere una soluzione. Con le informazioni sulla torre cellulare possono essere necessari 30 secondi.
Dalla documentazione di mele:
Quando si richiede alta precisione i dati relativi all'ubicazione, l'evento iniziale erogata dal servizio di localizzazione non può avere la precisione richiesto. Il servizio di localizzazione consegna l'evento iniziale il più rapidamente possibile. Quindi continua a determinare la posizione con l'accuratezza richiesta e fornisce eventi aggiuntivi, se necessario, quando tali dati sono disponibili.
Nell'automobile è meno probabile che ci si trovi in prossimità di posizioni wifi e potrebbe essere necessario attendere più a lungo per il blocco GPS. Se locationManager crede che tu sia ancora nel raggio della posizione precedente, ciò potrebbe causare una vecchia coordinata con un timestamp diverso.
Controllare l'accuratezza orizzontale dei dati e il timestamp per determinare se la posizione è precisa come richiesto.
per quale precisione si chiede al gestore di cllocation? – jackslash
@jackslash: utilizzo 'desiredAccuracy = kCLLocationAccuracyBest' – wjans
Si prega di postare l'implementazione di' -locationManager: didUpdateToLocation: fromLocation: '. –