2017-05-05 1 views
0

Mon CLLocationManager fonctionne correctement. Je peux être remarqué lorsque la valeur de cap a changé.Comment arrêter CLLocationManager Modifier la valeur de l'entête lorsque l'iPhone roule un peu.

Cependant, j'ai trouvé que la valeur d'en-tête est différente lorsque l'iPhone lance même un petit peu d'angle de bit.

J'ai mis les

locationManager.headingOrientation = CLDeviceOrientation.landscapeRight 

J'ai également définir d'autres propriétés:

locationManager.requestWhenInUseAuthorization() 
    orientation = getCLDeviceOrientation(by: UIDevice.current.orientation) 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest 
    locationManager.headingFilter = 0.1 
    locationManager.headingOrientation = CLDeviceOrientation.landscapeRight 
    locationManager.startUpdatingHeading() 
    locationManager.delegate = self 

Répondre

1

La propriété headingOrientation que vous définissez est utilisé uniquement comme point de référence lorsque vous ne voulez pas la valeur par défaut : le haut de l'appareil en mode portrait représente plein nord (0 degré) Après avoir défini la référence, vous obtiendrez des changements en degrés pour chaque yaw movement. Vous pouvez le voir documenté ici: https://developer.apple.com/reference/corelocation/cllocationmanager/1620556-headingorientation