2016-04-25 5 views
1

In Android bekommen wir die Lesung von dem Magnetsensor und bestimmen die Richtung. Aber wir wissen, dass der magnetische Norden nicht im Norden ist. Infolgedessen gibt es Ablenkung vom wahren Norden. Auch diese Ablenkung ist nicht für alle Orte gleich. Auch an der gleichen Stelle ändert sich die Ablenkung im Laufe der Zeit, da sich der magnetische Norden mit einer Geschwindigkeit von 40 km/Jahr aus dem wahren Norden bewegt. Daher sind die Daten, die wir vom Sensor erhalten, nicht ohne eine gewisse Korrektur verwendbar.Richtige Richtung von Android Magnetsensor

Jetzt habe ich zwei Punkte A, B mit ihrer Breite, Länge, Höhe wie unten Abbildung. Ich muss den richtigen Vektor bestimmen. Da meine Position A ist und meine Richtung vom Sensor nicht korrekt ist, kann ich nicht den richtigen Vektor X & Y von A nach B erhalten. Gibt es eine Möglichkeit, den richtigen Vektor durch Filtern der Magnetsensordaten zu erhalten?

http://i.stack.imgur.com/7VAQ2.png

Antwort

0

Es gibt GeomagneticField in Android, die Ihnen die Ablenkung vom wahren Norden an Ihrer aktuellen Position zum aktuellen Zeitpunkt gibt. So können Sie die Ablenkung vom wahren Norden mit folgendem Code erhalten

gmf = new GeomagneticField((float) ur_Latitude(), 
             (float) ur_Longitude(), 
             (float) ur_Altitude(), 
             System.currentTimeMillis()); 
      myAngle = Math.toRadians(-gmf.getDeclination()); 

Jetzt können Sie Ihren Vektor in der Y-Achse durch diesen Winkel drehen myAngle

+0

Lassen Sie mich sehen, ob es funktioniert. BTW Wie kann ich den Vektor durch Y-Achse drehen? –

+0

Sie müssen eine separate Frage stellen, wenn Sie mehr @ShohelRayhan wissen möchten –

Verwandte Themen