2009-10-30 7 views
0

CLLocationManger를 사용하여 현재 위치를 업데이트하고 있습니다. 그 위치는 나에게주는 것이지만 나는 점점 더 오래된 타임 스탬프를 얻는다. 나는 문제를 직면하고있다. locationcontroller가 캐시 된 위치가 아닌 새로운 위치를 업데이트하도록하는 방법이다. 나는이 자습서를 사용하고 현재CLLocationManger가 이전 위치를 제공합니다. 새로운 위치를 얻는 방법?

......

http://www.mobileorchard.com/hello-there-a-corelocation-tutorial/

누구가 현재 타임 스탬프하지 캐시 된 하나에서 위치를 업데이트하는 방법을 알고?

답변

0

프로젝트를 시뮬레이터 또는 iPhone에서 실행하고 있습니까? 시뮬레이터에서 프로젝트를 실행중인 경우

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 

한 번만 호출됩니다.

기기에서 테스트하는 경우 위치가 변경 될 때마다 기기를 테스트해야합니다. 도움이

당신이 위치 관리자 속성을 설정했는지 확인하십시오,

locationManager.delegate=self; 

[locationManager startUpdatingLocation]; 

희망 ...

0

당신이 선택을 수행하여이 방법

- (IBAction)update { 

    locmanager = [[CLLocationManager alloc] init]; 
    [locmanager setDelegate:self]; 
    [locmanager setDesiredAccuracy:kCLLocationAccuracyBest]; 
    NSLog(@"*********this is location update method of login view controller"); 
    [locmanager startUpdatingLocation]; 
} 
-(void)awakeFromNib { 
    [self update]; 
} 
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 
    if (wasFound) return; 
    wasFound = YES; 

    CLLocationCoordinate2D loc = [newLocation coordinate]; 

    lat2 = [[NSString stringWithFormat: @"%f", loc.latitude]retain]; 
    logg2= [[NSString stringWithFormat: @"%f", loc.longitude]retain]; 
    NSLog(@"latitude is %@",lat2); 
    NSLog(@"longitude is %@",logg2); 
} 

호출 업데이트 방법을 사용할 수 있습니다 여기서 lat2와 logg2는 문자열 값입니다. 문제를 해결할 수없는 경우 Google에 현재 위치를 찾는 방법을 입력하십시오. 설명이 포함 된 많은 예제 소스 코드가 표시됩니다.

0

가장 좋은 방법은 결정한 표준에 따라 너무 오래 된 위치를 버리는 것입니다. 귀하의 애플 리케이션에 맞게 설정하십시오. 위치 관리자를 다시 시작하면 시스템에 새 위치를 알려주지 만, 일반적으로 가져 오는 첫 번째 위치는 마지막 위치와 다를 수 있습니다. 타임 스탬프를 확인하는 것은 당신이 할 수있는 모든 일일 수도 있지만 새로운 위치를 얻지 못할 수도 있다는 가능성에 대비하십시오. 내 경험에 의하면 장치가 이동하지 않은 경우 현재 위치가 충분하다는 것을 감지하면 시스템을 새 위치로 업데이트하지 않습니다.

관련 문제