[Résolu] Yaw from North

iLandesiLandes Membre
mars 2017 modifié dans Apple Developer Programs #1

Bonjour,


 


J'essaie de retrouver le yaw du device de mon utilisateur par rapport au nord. Voici mon code :


 


 



 if motionManager.isDeviceMotionAvailable {
            motionManager.deviceMotionUpdateInterval = 1
            motionManager.startDeviceMotionUpdates(using: .xMagneticNorthZVertical,
                                                   to: OperationQueue.main,
                                                   withHandler: {
                
                                                    data, error in
                                                    
                                                    
                                                    if (data?.attitude) != nil {
                                                        let yaw = data?.attitude.yaw
                                                        let yawDegrees = self.radiansToDegrees(radians: yaw!)
                                                        let roll = data?.attitude.roll
                                                        let rollDegrees = self.radiansToDegrees(radians: roll!)
                                                        let pitch = data?.attitude.pitch
                                                        let pitchDegrees = self.radiansToDegrees(radians: pitch!)
                                                        
                                                        print (pitchDegrees,rollDegrees, yawDegrees)
                                                        
   

Le Roll et le Pitch sont bon mais pas le Yaw ?¿


Mots clés:

Réponses

  • Merci à  ceux qui ont regardé le sujet. Mais j'ai résolu mon problème grâce à  cette page qui explique à  la fois pour iOS et pour Androà¯d.


  • DrakenDraken Membre
    mars 2017 modifié #3

    if (data?.attitude) != nil {
    let yaw = data?.attitude.yaw
    let yawDegrees = self.radiansToDegrees(radians: yaw!)
    let roll = data?.attitude.roll
    let rollDegrees = self.radiansToDegrees(radians: roll!)
    let pitch = data?.attitude.pitch
    let pitchDegrees = self.radiansToDegrees(radians: pitch!)

    print (pitchDegrees,rollDegrees, yawDegrees)


    a


    ça pique les yeux ces "?", " !" et ce test avec "nil". On dirais du Swift old school. Tu peux utiliser les optionnals d'une manière plus élégante, avec "if let".


    a



    if let attitude = data.attitude {
    let yawDegrees = self.radiansToDegrees(radians: attitude.yaw)
    let rollDegrees = self.radiansToDegrees(radians: attitude.roll)
    let pitchDegrees = self.radiansToDegrees(radians: attitude.pitch)

    print (pitchDegrees,rollDegrees, yawDegrees)
    }




    a


    Ou encore :


    a



    guard if let attitude = data?.attitude else {
    // Quitter la fonction ici
    }

    let yawDegrees = self.radiansToDegrees(radians: attitude.yaw)
    let rollDegrees = self.radiansToDegrees(radians: attitude.roll)
    let pitchDegrees = self.radiansToDegrees(radians: attitude.pitch)

    print (pitchDegrees,rollDegrees, yawDegrees)

  • Merci de ton intérêt  Draken, oui le code de recherche est parfois un peu degeulasse :))


     


    Mon problème est de trouver un azimuth par rapport au nord. Mais comme signalé plus haut j'ai trouvé.


Connectez-vous ou Inscrivez-vous pour répondre.