나는보기가로드 될 때마다 또는 showLocation
사용자 정의 클래스 메서드가 호출 될 때마다 주석을 삭제하는 MKMapView가 있습니다. didUpdateToLocation
메서드가 호출 될 때CLLocationManager 이상한 문제
내가 제일
-(void)viewDidLoad {
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
[locationManager startUpdatingLocation];
}
-(IBAction) showLocation:(id) sender{
[locationManager startUpdatingLocation];
}
- (void) locationManager:(CLLocationManager *) manager
didUpdateToLocation:(CLLocation *) newLocation
fromLocation:(CLLocation *) oldLocation {
// start geocoding with newLocation coordinate which will automatically set annotation.
SVGeocoder *geocodeRequest = [[SVGeocoder alloc]
initWithCoordinate:CLLocationCoordinate2DMake(newLocation.coordinate.latitude, newLocation.coordinate.longitude)];
[geocodeRequest setDelegate:self];
[geocodeRequest startAsynchronous];
[geocodeRequest release];
[locationManager stopUpdatingLocation];
}
내 질문이되고 정확성이 필요하다? [locationManager startUpdatingLocation]
을 수행 할 때 새로운 위치가 발견 된 후에 만?
사용자가 여행 중이거나 정지 중이면 이상한 문제에 직면하고 있습니다. 사용자가 점 사이를 1 분 간격으로 점 A → B → C → D에서 이동한다고 가정 해보십시오. 포인트 C에서 메소드를 호출 할 때 언젠가 포인트 A의 좌표를 리턴하고 때로는 포인트 B와 때로는 C를 리턴합니다. 단지 랜덤입니다.
정지 상태에있을 때 더욱 이상합니다. 내 집 WiFi에 연결되어 있는데도 showLocation
메서드를 호출 할 때 다른 좌표를 얻습니다.
나는 didUpdateToLocation을 구현하여 5 초 이내에 최상의 결과를 얻으려고했다. 5 초 이내에 정의한 정확성의 특정 위치를 찾은 다음 좌표를 사용하십시오. 그렇지 않은 경우 5 초 내에 가장 좋은 것을 사용하십시오. 그러나 내가 새로운 것처럼 나는 그런 식으로 코딩하는 방법을 모르겠습니다. 나는 NSTimer를 읽고 그것이 효과가있을 것 같은데.
조언이 있으십니까?
미리 감사드립니다.