Frage

Ich brauche Kompass für meine Anwendung zu erstellen.

Aus der Dokumentation zu lesen scheint es, gibt es zwei vernünftige Möglichkeiten dies zu tun:

  • Sensor.TYPE_ORIENTATION Methode: Dies ist die einfache Möglichkeit, es zu tun. Das Problem dabei ist es nicht korrekt ist. Wenn ich meine Lesung mit Snaptic Compass vergleichen ist es etwa 10-15 degress ab, die für meine Zwecke nicht akzeptabel ist.
  • Sensor.TYPE_ACCELEROMETER, Sensor.TYPE_MAGNETIC_FIELD und getRotationMatrix () in Verbindung mit remapCoordinateSystem () und GetOrientation () Methode: Die Dokumentation sagt, das "ist in der Regel genauer". Das Problem ist, unabhängig von der Verzögerung I bei registrieren Zuhörer der Kompass geht sogar verrückt, wenn das Gerät stationär auf einem ebenen Oberfläche ist.

Alle Vorschläge zur Lösung dieses Problems wird sehr geschätzt.

War es hilfreich?

Lösung

Sieht aus wie mob1lejunkie hat dies bereits herausgefunden, aber nur für die Zukunft, möchte ich erwähnen, dass das Problem hier ist magnetische Deklination (die Differenz zwischen dem magnetischen Norden und wahrem Norden). Sie können versuchen, ein Online-Modell von NOAA für das, was der Unterschied ein Gefühl zu bekommen in Ihrem Teil der Welt ist.

enthält Android ein Modell namens GeomagneticField , die compute verwendet werden können die ungefähre Deklination eine Breite, Länge und Höhe gegeben. Also, was ich glaube, Sie tun müssen, um wahren Norden zu berechnen ausgelesen die Azimutwert von Sensor.TYPE_ORIENTATION und fügen Sie dann zu, dass GeomagneticField.getDeclination ().

Andere Tipps

Es ist der Nachteil der kompakten Teile für Handys gemacht. A $ 5000 IMU, dass wir gerade mit einem Fehler von +/- 2 Grad hat und in diesem Bereich scheint es verrückt, wie gut zu gehen.

Versuchen Sie, von Störungen, Metalloberflächen treten weg, und sehen, ob es verbessert. Wenn nicht, ich hasse die schlechte Nachricht zu brechen, aber das ist die Hardware.

Sie diese gesehen?

http://developer.android.com/reference/android/hardware /SensorManager.html

http://groups.google .com / Gruppe / android-Entwickler / browse_thread / Thread / bbb0e8b97c673cf9 / 5c16bc2e49f6e972? lnk = raot

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top