CLLocationManager计算出高程增益

时间:2014-03-31 19:30:58

标签: ios cllocationmanager

我试图从CLLocationManager计算出高程增益。

此处是我的代码:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    CLLocation *oldLocation = [locations objectAtIndex:[locations count] - 1];
    CLLocation *location = [locations lastObject];

    double elevationChange = oldLocation.altitude - location.altitude;

    if (elevationChange > 0)
    {
        _netElevationGain += elevationChange;
    }

我认为这段代码应该可以正常工作,但是当我测试它时,netElevationGain总是为0.我已经完成了一些研究,似乎我可能正在使用iOS模拟器进行测试。我在iOS模拟器的调试菜单中使用位置选项。

模拟器是否可能导致此问题,或者我的代码中是否有遗漏的内容?

1 个答案:

答案 0 :(得分:0)

所以这是一个潜在的问题:你是否反过来对这些地点进行地理编码?因为如果你这样做,我痛苦地发现,你会失去高度。如果你考虑它是有道理的,但更好的设计可能是他们将反向地理编码位置建模为继承GPS衍生位置的所有属性。它不是。所以我最终做的是一个外部课程,它获得LM位置,提取高度,然后将其注入最终的地址'类。