Comment trouver les résultats GPS les plus précis pour iPhone
-
05-07-2019 - |
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!
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.