我有一個MKMapView,我可以在每次加載視圖或調用自定義類方法時刪除一個註釋。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];
}
我的問題是何時會didUpdateToLocation
方法叫什麼名字?只有當我執行[locationManager startUpdatingLocation]
時發現新位置?
當用戶在旅行和靜止時,我正面臨一些奇怪的問題。 假設用戶正在從A-點→B-> C-> D點行駛,點間距離爲1分鐘。當我在C點調用我的方法時,有時會返回A點的座標,有時會返回B點,有時會返回C.它只是隨機的。
當我靜止時更奇怪。即使我迷上了我家的WiFi,我也會撥打showLocation
的方法獲得不同的座標。
我正在考慮實施didUpdateToLocation以獲得5secs以內的最佳結果。如果在5秒內,它找到了我定義的精度的特定位置,然後使用座標。如果沒有,請使用5秒內發現的最好時間。但是,因爲我是新手,我不確定如何編寫這樣的代碼。我讀了NSTimer,看起來它可能工作。
任何建議傢伙?
非常感謝!