我使用GoogleMap-IOS-1.8.1SDK来显示地图。我必须计算使用者的步行距离。在搜索之后,我将尝试使用CLLocationManager's方法-
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
double new_travelled_distance = [newLocation distanceFromLocation:oldLocation];
total_distanceTravelled_by_user += new_travelled_distance;  }像这样初始化-
-(void)viewDidLoad{
[super viewDidLoad];
if(!locationManager)
{
    locationManager = [[CLLocationManager alloc] init];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    [locationManager setDelegate:self];
    [locationManager setDistanceFilter:5.0f];         // measured in meters
    [locationManager setHeadingFilter:kCLHeadingFilterNone];            // measured in degrees
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBestForNavigation];
}
[locationManager startUpdatingLocation];   }但这并不提供准确的数据,即使我坐在同一个地方,没有旅行一米,但它给我定期更新,以改变位置。我是否应该更正“CLLocationManager's distanceFilter”属性,或者如何更准确地计算旅行距离.?
发布于 2014-08-04 12:53:51
这是因为您将期望的精度设置为kCLLocationAccuracyBestForNavigation。把那条线移开。此外,标题的默认值设置为1,这是相当准确的。不要将其设置为kCLHeadingFilterNone。
这将防止定期更新,你将得到它只有当你将移动5米。
https://stackoverflow.com/questions/25118927
复制相似问题