2014-03-31 68 views
0

我正在嘗試從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模擬器的調試菜單中使用了位置選項。

它可能是模擬器導致這個問題,或者有我在我的代碼中錯過的東西嗎?

+0

添加更多信息。因此,您使用GPX文件設置了兩個位置,並且您將從一個位置移動到另一個位置,並期望看到高度變化? – Rob

+0

@rob嗨,是的,這是正確的,但價值永遠是0 – Khledon

回答

0

所以這裏有一個潛在的問題:你是否反向地理編碼這些位置?因爲如果你這樣做,我會痛苦地發現,你會失去高度。如果你考慮它,這是有道理的,但更好的設計可能是他們將反向地理編碼的位置建模爲繼承GPS派生位置的所有屬性。它不是。所以我最終做的是一個外部類,它獲得了LM的位置,提取了高度,然後將它注入到最終的「地址」類中。

+0

我不知道如果我反向地理編碼或不,我不這麼認爲(對不起,我還是很新的Objective-c) – Khledon