【问题标题】:distanceFromLocation - Total Distance not being calculated correctlydistanceFromLocation - 未正确计算总距离
【发布时间】:2010-10-11 14:35:24
【问题描述】:

我试图计算总行驶距离并将其输出到视图控制器,但结果与预期不符。代码如下:

MyCLController.m

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{       
    validLocation = YES;

    if (!newLocation) 
    {
        validLocation = NO;
    }

    if (newLocation.horizontalAccuracy < 0)
    {
        validLocation = NO;
    }

    // Filter out points that are out of order
    NSTimeInterval secondsSinceLastPoint = -[newLocation.timestamp timeIntervalSinceNow];
    if (secondsSinceLastPoint < 0)
    {
        validLocation = NO;
    }

    if (validLocation == YES)
    {
        [self.delegate locationChange:newLocation :oldLocation];
    }

NewWorkoutViewController.m

-(void)locationChange:(CLLocation *)newLocation:(CLLocation *)oldLocation
{       

    CLLocationDistance meters = [newLocation distanceFromLocation:oldLocation];

    currentSpeed = ([newLocation speed] * 3600) / 1000;
    totalDistance = (totalDistance + meters) / 1000;
    totalDistanceMeters =  totalDistanceMeters + meters;
    avgSpeed = totalDistance / counterInt;

    [speedLbl1 setText:[NSString stringWithFormat:@"%.3f", currentSpeed]];
    [distanceLbl1 setText:[NSString stringWithFormat:@"%.3f", totalDistance]];

}

问题出在我的总距离上,它似乎不是每次都添加到它,就好像它覆盖了它,当我在车上测试时,我可以看到坐标之间 10 / 20 米的值,所以这个表示 distanceFromLocation 似乎正在工作。

大家有什么想法吗?

问候,斯蒂芬

【问题讨论】:

    标签: iphone core-location


    【解决方案1】:

    试试这个:

    totalDistance = totalDistance + (meters / 1000);
    

    而不是这个

    totalDistance = (totalDistance + meters) / 1000;
    

    按照您的方式,totalDistance 每次除以 1000,即如果您每次行驶 10m:

    totalDistance = (0+10) / 1000 = 0.01;
    totalDistance = (0.01+10) / 1000 = 0.01001 //!< You expected this to be 0.02!
    totalDistance = (0.01001+10) / 1000 = 0.01001001 //!< You expected this to be 0.03!
    

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多