2017-01-11 2 views
1

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.

Antwort

3

Unter der Annahme, dass „zufällig innerhalb +/- 1414.0m Bereichs bewegen“ bedeutet „Ort Messungen zeigen horizontale Genauigkeit auf 1414,0“:

Ihr Gerät ist nicht in der Lage GPS-Fix zu erwerben. Das könnte daran liegen, dass GPS nicht in Ihrem Bürogebäude verfügbar ist. Möglicherweise haben Sie auch WiFi ausgeschaltet, da Sie mit WiFi eine wesentlich bessere horizontale Genauigkeit erreichen können - bis zu +/- 65m.

Beachten Sie, dass es 3 Quellen für die Lage Lesungen:

  • Zelle Türme
  • WLAN Access Points
  • GPS

Die +/- 1414m ist das, was Sie in der Regel erhalten wenn Mobilfunkmasten die einzige Quelle sind

Mit WiFi Access Points können Sie eine Genauigkeit von bis zu 65m erreichen - Beachten Sie, dass für die Wi-Fi-Triangulation a) WiFi Radio aktiviert ist - um nach Zugangspunkten zu suchen und b) Zugang zu Apple Access Points Datenbank - um Zugangspunkte zu lat/long zu lösen. Wenn vorübergehende Verbindungen oder Probleme mit dem Datenbankserver vorliegen, können Sie die WiFi-AP-Triangulation nicht verwenden.

Wenn Standortdaten über GPS erfasst werden, wird eine nicht negative Geschwindigkeit angezeigt.

Um es kurz zu machen - wahrscheinlich ist alles, was Sie brauchen, um aus dem Büro zu kommen: o)

Verwandte Themen