Question

J'utilise les conditions suivantes dans l'ordre pour vous assurer que l'emplacement est-je obtenir une précision suffisante, dans mon cas kCLLocationAccuracyBest. Mais le problème est que je reçois encore l'emplacement inexact.

// 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;

Quand j'allumez le GPS, je reçois des résultats inexacts avant que je réellement obtenir un résultat précis. Quelles méthodes utilisez-vous pour obtenir des informations de localisation précises / précises?

Était-ce utile?

La solution 2

La principale raison pour laquelle je recevais des résultats inexacts était à cause de cette condition:

if(newLocation.horizontalAccuracy < manager.desiredAccuracy)

J'utilisais kCLLocationAccuracyBest comme desiredAccuracy et c'est un numéro de négatif. Vous ne devriez pas l'utiliser pour la comparaison.

Solution: if(newLocation.horizontalAccuracy < 10.0)

Autres conseils

GPS est lent, au moins par rapport à la patience de l'utilisateur, de sorte que le manager emplacement retourne le meilleur d'elle jusqu'à ce qu'il obtienne une nouvelle, lisez GPS valide. Vous pouvez faire l'utilisateur attendre le temps qu'il faut pour obtenir une lecture précise, ou avoir une sorte de commentaires supplémentaires les cartes google chemin fait, avec un cercle d'un point.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top