2017-04-26 5 views
1

Mon application nécessite une valeur d'en-tête lisse sur un en-tête sur l'écran.Comment obtenir la valeur de cap compilée de CLLocationManager?

Cependant, la valeur du cap que je suis comme ci-dessous la liste:

275.134063720703 
275.557250976562 
275.518890380859 
272.912872314453 
269.957977294922 
273.501312255859 
272.390350341797 
273.241363525391 
275.250274658203 
272.976440429688 
273.790771484375 
272.344940185547 
272.824005126953 
276.205505371094 
272.190979003906 
273.337341308594 
274.798583984375 
275.545501708984 
272.631317138672 
274.248596191406 
273.635284423828 
273.342041015625 
275.216186523438 

Même l'iPhone a été couché sur la table. Je suppose que j'ai besoin d'un filtre qui fonctionne avec Gyro pour stabiliser la boussole.

Ma question est la suivante: existe-t-il une méthode ou un laboratoire pour obtenir un cap plus stable et plus précis? Si non, avez-vous une suggestion si je l'écris moi-même?

Répondre

0

Raison: Mot demande CoreLocation permission

Après une demi-journée le diagnostic, enfin, j'ai trouvé la raison pour laquelle je suis arrivé de cap compas est inexact, je ne l'ai pas encore demander la permission CoreLocation.

Le problème est que je n'ai jamais reçu de message d'alerte à ce sujet. Le CLLocationManager ne cesse de nourrir les données.

Solution: il suffit de demander à l'utilisateur d'accorder la permission: https://stackoverflow.com/a/38465537/2073991