Ich verwende CLLocationManager
, um den aktuellen Benutzerstandort zu ermitteln. Das ist mein Code:CLLocationManager gibt den falschen Standort zurück
- (void)viewDidLoad {
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
locationManager.delegate = self;
if ([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
[locationManager requestWhenInUseAuthorization];
}
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
curLocation = [locations lastObject];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude: curLocation.coordinate.latitude longitude: curLocation.coordinate.longitude zoom:currentZoom];
[mapView animateToCameraPosition:camera];
}
Und jetzt bin ich mit Blick auf das seltsame Verhalten von ihm. Ich sitze immer noch im Büro mit dem Gerät neben mir, aber CLLocationManager
denkt, dass ich mich innerhalb von +/- 1414,0 m Bereich um mich herum mit Geschwindigkeit = -1 und Kurs = -1 ständig bewegen werde. Ich kann all diese "falschen Züge" durch diese konstante Geschwindigkeit und den Kurs filtern, aber ich verstehe nicht, warum es so funktioniert. Jede Idee wird freundlich geschätzt.