Domanda

Sto usando seguenti condizioni in-fine di assicurarsi che la posizione ottengo ha adeguato la precisione, nel mio caso kCLLocationAccuracyBest. Ma il problema è che ho ancora ottenere posizione imprecisa.

// Filter out nil locations
if(!newLocation)
    return;

// Make sure that the location returned has the desired accuracy
if(newLocation.horizontalAccuracy < manager.desiredAccuracy)
    return;

// Filter out points that are out of order    
if([newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp] < 0)
    return;

// Filter out points created before the manager was initialized
NSTimeInterval secondsSinceManagerStarted = [newLocation.timestamp timeIntervalSinceDate:locationManagerStartDate];
if(secondsSinceManagerStarted < 0)
    return;

// Also, make sure that the cached location was not returned by the CLLocationManager (it's current) - Check for 5 seconds difference
if([newLocation.timestamp timeIntervalSinceReferenceDate] < [[NSDate date] timeIntervalSinceReferenceDate] - 5)
    return;

Quando posso attivare il GPS, ottengo risultati non accurati prima che io realmente ottenere un risultato preciso. Quali metodi si usa per ottenere accurate / informazioni precise sulla posizione?

È stato utile?

Soluzione 2

Il motivo principale mi stavo risultati non accurati era a causa di questa condizione:

if(newLocation.horizontalAccuracy < manager.desiredAccuracy)

Stavo usando kCLLocationAccuracyBest come desiredAccuracy ed è un numero negativo. Non si dovrebbe usare per il confronto.

Soluzione: if(newLocation.horizontalAccuracy < 10.0)

Altri suggerimenti

GPS è lento, almeno rispetto alla pazienza degli utenti, in modo che il location manager restituisce il meglio che ha fino a quando non ottiene un nuovo, GPS valido letto. O si può fare l'utente attesa tutto il tempo necessario per ottenere una lettura accurata, o hanno qualche tipo di feedback incrementale il modo in cui Google Maps fa, con un cerchio di un punto.

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