iPhone核心位置:计算总高程损失/增益

时间:2010-10-13 22:50:29

标签: iphone mapkit core-location cllocationmanager

我想在记录核心位置数据结束时计算总高程损失和增益。我很难想到这个数学的数学。

如果我在600英尺处开始并且在跟踪期间我上下移动,我将如何计算我的高程增益和损失?

想法?

2 个答案:

答案 0 :(得分:2)

如果您想分别跟踪收益和损失,请保留两个累积成员变量netElevationLoss和netElevationGain,两者都初始化为0.

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
    if(oldLocation == nil)
        return;

    double elevationChange = oldLocation.altitude - newLocation.altitude;
    if (elevationChange < 0)
    {
        netElevationLoss += fabs(elevationChange);
    }
    else
    {
        netElevationGain += elevationChange;
    }
}

您也可以使用此方法跟踪总更改

netElevationChange = netElevationGain - netElevationLoss 

随时。

答案 1 :(得分:-2)

如果你上去,增加一个号码。如果你下来,增加(或减少?)另一个。

你决定如何处理噪音取决于你......