2009-07-28 14 views
5

Mi piacerebbe utilizzare posizioni affidabili, anche su un vecchio iphone. Tuttavia, molte letture (in particolare da torri cellulari) sono troppo imprecise. Credo.Quanto è accurata l'accuratezza della CLLocation?

Quando grafico la mia posizione + raggio di precisione (o guardo l'app di google maps), noto che il centro del cerchio stimato è generalmente vicino alla mia posizione fisica. Immagino che se tagliamo il numero di "precisione" a metà, sarò ancora nel cerchio il 99% delle volte.

Credo che questo sia un gioco probabilistico: il responsabile della posizione sta cercando di fornire una stima corretta del 99,9999% delle volte, in modo da fornire un margine volutamente ampio. Qualche idea/informazione?

risposta

0

Quando si utilizza CoreLocation, si ottengono "risposte" sempre migliori. Ho notato che la risposta "migliore" è quasi sempre precisa a una distanza massima di 100 metri, quindi teoricamente potresti probabilmente ridurre il "buffer" che normalmente ti viene assegnato. L'unico modo per sapere veramente, però, e questo è quello che farei, è testare il test. Trova iphone e iPod di tutte le generazioni e scopri quali tipi di accuratezza stai ottenendo e quali tipi di risultati ottieni. In molti modi, dipende dal tipo di app che stai realizzando, ma se vuoi fornire informazioni sensibili o importanti in base a dove si trova l'utente, dovresti davvero aspettare che il framework ti dia una posizione quasi esatta.

+0

Sono disposto ad aspettare la migliore posizione possibile. La mia preoccupazione è più "esattamente quanto è accurato questo luogo segnalato?". La mia convinzione è che tutte le accuratezze riportate (1000m, 10m, ecc.) Sono di parte. – BankStrong

+0

E hai ragione, per ovvi motivi. – TahoeWolverine

2

Il framework CoreLocation fornisce il raggio del cerchio per ogni CLLocation che si ottiene utilizzando le proprietà horizontalAccuracy/verticalAccuracy. È possibile specificare al CLLocationManager una proprietà desiredAccuracy che utilizzano questi tipi:

kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers;

in modo da ottenere notifiche quando si arriva all'interno della vostra gamma desiderata. Detto questo, quando si utilizza CLLocationManager il primo evento viene assegnato al più presto, e quindi gli eventi procedurali sono quelli che soddisfano le condizioni.

+0

Sono meno concentrato nel chiedere la precisione desiderata e più interessato a conoscere la "vera" precisione. Quando CoreLocation ti dice "questa posizione è buona entro un raggio di 100 metri", significa davvero "questa posizione sarà entro 50 metri il 99,9% delle volte"? – BankStrong