2011-10-12 12 views
7

Potrebbe essere difficile spiegare la geometria, quindi farò attenzione a scriverlo. Questo è visibile nell'app compas standard e dai dati in CLLocationManager.La bussola dell'iPhone presenta l'angolo di inclinazione della direzione errato è> 45 ° circa

1) Quando si tiene il telefono in verticale, si consideri l'angolo di inclinazione a 0 °

2) Quando puntare la fotocamera verso il cielo (come scattare una foto di una nuvola) l'angolo di passo va da 0 ° -> 90 ° dove 90 gradi è diritto.

3) quando il telefono è inclinato verso l'alto (> 0 gradi e ruotando sull'asse del magnetometro "X") e quando il telefono si trova a circa (ma non esattamente) 45 gradi, la direzione della bussola ruota di 180 gradi. Quindi mentre la fotocamera è ancora puntata "N", la bussola riporterà "S".

4) per i prossimi (circa) 90 gradi, la direzione della bussola viene ruotata di 180 gradi.

Questa rotazione del titolo è distruttiva per me e non si allinea perfettamente con gli accelerometri. Esiste un buon tutorial (non ne ho trovato uno da non ripetere) sull'utilizzo dei dati RAW (X, Y, Z) dai dati CLHeading per calcolare i dati di intestazione?

Il risultato finale è che voglio che la direzione della bussola corrisponda sempre al titolo della telecamera.

+0

Come hai risolto questo? –

risposta

2

Non è possibile fare affidamento esclusivamente sulla direzione della bussola. Vedi questa risposta per ciò che stai cercando, e in particolare la proprietà di imbardata dell'oggetto CMAttitude per compensare l'angolo di intonazione di cui parli: Compensating compass lag with the gyroscope on iPhone 4

+1

Non proprio. Stavo già facendo questo risarcimento. C'è una compensazione secondaria di cui avevo bisogno quando il dispositivo era in verticale. Quando l'oggetto UIDeviceOrientation era ritratto (normale o capovolto), il titolo saltava di 180 gradi quando il tono era maggiore di 45 gradi. –

Problemi correlati