2014-03-31 2 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 파일을 사용하여 2 개의 위치를 ​​설정 했으므로 한 지점에서 다른 지점으로 이동하면서 고도가 변경 될 것으로 예상됩니까? – Rob

+0

@rob 안녕하세요, 맞습니다. 값은 항상 0입니다. – Khledon

답변

0

여기에 하나의 잠재적 인 문제가 있습니다. 혹시이 위치를 역 지오 코딩하고 있습니까? 네가 그렇게한다면, 나는 고통스럽게 알았다. 당신은 고도를 잃을 것이다. 생각해 보면 이해가되지만, GPS에서 파생 된 위치의 모든 속성을 상속 받으면서 역 지오 코딩 된 위치를 모델링하는 것이 더 나은 설계 일 것입니다. 그렇지 않습니다. 그래서 제가 한 일은 LM 위치를 얻은 외부 클래스 였고, 고도를 추출한 다음 최종 'Address'클래스에 주입했습니다.

+0

역 지오 코딩인지 아닌지 모르겠으므로 생각하지 않습니다. (미안하지만 여전히 Objective-c에 대해 아주 새로운 것입니다.) – Khledon

관련 문제