2010-09-22 18 views
6

Quiero mostrar la dirección en la pantalla que está mirando el teléfono. Por ejemplo:Cómo obtener la dirección de la brújula

0 
    |- [] 
    |_ 
    South --- North 

En el diagrama de arriba, el teléfono mostraría "Norte". Dado que el usuario (el palo con 0 para su cabeza) está sosteniendo el teléfono (el [] en el diagrama) apuntando hacia el norte.

Encontré this example. Entiendo lo que está haciendo, excepto que parece calcular guiñada, inclinación, inclinación e inclinación. ¿Qué son esos y cómo los usaría para simplemente buscar hacia dónde apunta el teléfono?

También este android documentation menciona ejes X, Y y Z pero no veo ningún lado que diga cómo esos ejes corresponden al teléfono? ¿Va Z desde la parte inferior del teléfono a la parte superior?

+1

http://en.wikipedia.org/wiki/Yaw_angle – Falmarri

+0

También me di cuenta la clase GeomagneticField tiene métodos getX y Gety? ¿Puedo usar eso en su lugar? Sin embargo, no tiene ningún tipo de alteración de sensor. ¿Tendría que hacer mi propio loop para sondearlo? – Greg

+0

Este artículo puede ser útil para usted. Debe mostrarse satisfecho con las suposiciones sobre la orientación de la pantalla cuando muestre las direcciones en la pantalla. http://android-developers.blogspot.com/2010/09/one-screen-turn-deserves-another.html –

Respuesta

5

this es como se ve el eje (axiy?).

No pude encontrar un enlace a la hoja de trucos que uso, pero parecía algo así como this.

En resumen, desea registrarse para escuchar Sensor.TYPE_ORIENTATION, de la matriz entrante de valores get, valor [0] y que debería mostrar su ángulo (desde North, creo).

algunos example de * android.com

+0

Gracias. ¿Qué sucede si el teléfono está en modo horizontal? – Greg

+0

de acuerdo con esta publicación, http://www.google.com/support/forum/p/android/thread?tid=11b73cc231c318af&hl=es es básicamente una brújula de hardware, por lo que debería comportarse normalmente en modo horizontal – bgs

+2

Me gustaría simplemente desea señalar que 'Sensor.TYPE_ORIENTATION' ha quedado en desuso, a favor de' SensorManager.getOrientation() '. – AlbeyAmakiir

Cuestiones relacionadas