에서 나는아이폰 OS 위치 관리자 업데이트는 더 자주 다음 번 두 번째
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
와 위치 관리자를 만들었지 만 위치 업데이트 초당 한 번 받았다. 업데이트를 더 자주받을 수 있습니까?
타이머에서 현재 위치를 얻으려고했으나 초당 한 번 업데이트됩니다.
에서 나는아이폰 OS 위치 관리자 업데이트는 더 자주 다음 번 두 번째
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
와 위치 관리자를 만들었지 만 위치 업데이트 초당 한 번 받았다. 업데이트를 더 자주받을 수 있습니까?
타이머에서 현재 위치를 얻으려고했으나 초당 한 번 업데이트됩니다.
는 여기에 내가했던 일이야 :
[self pingLocation];//viewDidLoad
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
[manager stopUpdatingLocation];
manager.delegate = nil;
self.currentLocation = (CLLocation *)[locations lastObject];
}
- (void) pingLocation {
[locationManager startUpdatingLocation];
locationManager.delegate = self;
[self performSelector:@selector(pingLocation) withObject:nil afterDelay:0.5];//change to whatever you want
}
이 상당히 좋은 결과를 내게 줄 듯하고 초에 한 번 이상 업데이트 할 수 있습니다. 그러나 배터리가 매우 많이 소모되고 모범 사례가 아닙니다. 나는 너 자신에게 물을 것이다. 왜 이것을 원하니? 초당 두 개 이상의 업데이트가 정말로 필요합니까?
편집 : 나는 이것을 다시 시험해 보았습니다. 그리고 나는 그것이 0.5 초마다 업데이트 되더라도 실제로는 그렇지 않다고 믿습니다. 예를 들면 다음과 같습니다에 따라서
30.00000, 60.00000
30.00000, 60.00000
30.00032, 60.00056
30.00032, 60.00056
, 당신이 정말로 빨리 초 이상 업데이트 할 수 없습니다, 죄송합니다 말하다. CLLocation.startUpdatingLocation
문서에 따르면
: 연속이 방법을 여러 번 호출
는 새로운 이벤트에 자동이 아닌 결과가 생성되지 않습니다. 그러나 사이에
stopUpdatingLocation
을 호출하면이 메서드를 호출 할 때마다 다음 초기에 새 초기 이벤트가 전송됩니다.
아마도 distanceFilter
도 none으로 설정해야 할 것입니다. 그러나이 두 가지가 배터리를 통해 휘젓는 데 도움이된다고 상상해보십시오.
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
[locationManager startUpdatingLocation];
}
이렇게하면 위치 관리가 더 자주 업데이트됩니다. 왜냐하면 업데이트를받을 때마다 다른 위치를 자주 요청하기 때문입니다.
불행히도 당신이 옳은 것처럼 보입니다. 나는 타이머로 테스트를 재 작성했다. 관리자에게 현재 위치를 더 자주 요청했지만 업데이트를 위해 기다리지 않았습니다. 이상한 접근법 인 것 같습니다. 고속 위치에서 극적으로 변할 수 있습니다. 나의 목표는 10 미터와 같은 호스트 거리를 측정하는 것이 었습니다. 그래서 시간 간격은 중요했습니다. – famer