开发者

iPhone Core Location: Calculate total elevation loss/gain

I am wanting to calculate total elevation loss and gain at the end of recording Core Location data. I am having a hard time thinking of the math for this one.

Say if I started at 600 feet and I go up and down during the tracking, how开发者_Python百科 would I calculate my elevation gain and loss?

Ideas?


If you wanted to track gain and loss separately, keep two cumulative member variables, netElevationLoss and netElevationGain, both initialized to 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;
    }
}

You could also track total change using this method since

netElevationChange = netElevationGain - netElevationLoss 

at any time.


If you go up, increase one number. If you go down, increase (or decrease?) the other.

Exactly how you decide to handle noise is up to you...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜