我正在尝试计算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模拟器的调试菜单中的location选项。

模拟器可能是导致此问题的原因,还是我的代码中遗漏了某些东西?

最佳答案

因此,这是一个潜在的问题:您是否有机会对这些位置进行反向地理编码?因为如果这样做,我会痛苦地发现,您将失去高度。如果考虑一下,这是有道理的,但是对于他们来说,更好的设计可能是将反向地理编码的位置建模为继承GPS衍生位置的所有属性。它不是。因此,我最终要做的是一个外部类,该类获得了LM的位置,提取了海拔高度,然后将其注入到最终的“ Address”类中。

关于ios - CLLocationManager计算高程增益,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22770509/

10-11 14:45