Question

Je me souviens avoir lu quelque part (j'oublie où) que, si une application iPhone exécutait simplement le CLLocationManager une fois, elle ne produisait pas les résultats les plus précis.

Est-ce exact, et si oui, comment puis-je lutter contre ce problème? Je souhaite obtenir les résultats GPS les plus précis et je me demande si une seule fois donnera les meilleurs résultats.

Merci pour toute aide!

Était-ce utile?

La solution

CLLocationManager *locationManager.desiredAccuracy = kCLLocationAccuracyBest;

retournera le meilleur résultat possible pour vous. La méthode déléguée

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

continuera à renvoyer l'emplacement de l'utilisateur en fonction des préférences de précision que vous avez définies.

Si vous n’avez besoin que d’un seul emplacement, vous devez vous rappeler d’appeler stopUpdatingLocation sur self . Si vous devez mettre à jour en permanence l'emplacement de l'utilisateur, n'appelez pas stopUpdatingLocation

.

J'utilise CoreLocation pour localiser un utilisateur, et il est assez précis pour mon utilisation.

Autres conseils

Ce que vous avez lu était probablement tiré du Guide de programmation d'applications iPhone :

  

Pour récupérer les informations actuelles de l'utilisateur   emplacement, créez une instance du   Classe CLLocationManager et configurer   avec la précision souhaitée et   paramètres de seuil. Pour commencer   recevoir des notifications d'emplacement,   assigner un délégué à l'objet et   appelez la méthode startUpdatingLocation   pour commencer la détermination de la   emplacement actuel de l'utilisateur. Quand nouveau   les données de localisation sont disponibles, le   gestionnaire de localisation notifie son assigné   objet délégué. Si une mise à jour d'emplacement   a déjà été livré, vous pouvez   obtenir également les données de localisation les plus récentes   directement à partir du CLLocationManager   objet sans attendre un nouvel événement   à livrer.

     

[...]

     

Vérifier l’horodatage d’un événement est   recommandé car l'emplacement   le service retourne souvent le dernier mis en cache   événement de localisation immédiatement. Ça peut   prendre quelques secondes pour obtenir un rugueux   solution de localisation afin que les anciennes données simplement   sert de moyen de refléter le dernier   emplacement connu. Vous pouvez également utiliser le   la précision comme moyen de déterminer   si vous voulez accepter un événement.   Comme il reçoit des données plus précises, le   service de localisation peut renvoyer supplémentaire   événements, avec les valeurs de précision   reflétant les améliorations   en conséquence.

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