Quelle est la taille du changement que vous attendiez?
Peut-être que vous devriez définir la précision à son maximum et calculer le déplacement sur la méthode du délégué.
Configurez le gestionnaire de position pour qu'il soit le meilleur possible.
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager setDistanceFilter:0.0];
Et puis sur la méthode déléguée:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
// Calculate the distance between the two locations
CGFloat distance = [newLocation distanceFromLocation:oldLocation];
if (distance >= MIN_DISPLACEMENT) {
// Do something
} else {
// Do something
}
}
Pour obtenir des données plus précises à partir du gestionnaire d'emplacement, définissez les clés appropriées pour UIRequiredDeviceCapabilities (location-services, GPS) sur le Info.plist.
La précision GPS n'est pas si précise - pourriez-vous utiliser l'accéléromètre à la place? – Justin
Quelle précision voulez-vous? Le GPS fait un bon travail en localisant un utilisateur lorsque la précision de localisation est réglée au mieux. –
@Justin, comment pourrais-je utiliser l'accéléromètre pour déterminer la distance? –