6

アプリケーション用のコンパスを作成する必要があります。

ドキュメントを読むと、これを行うには 2 つの合理的な方法があるようです。

  • Sensor.TYPE_ORIENTATION メソッド: これは簡単な方法です。これに関する問題は、正確ではないことです。私の測定値を Snaptic Compass と比較すると、約 10 ~ 15 度ずれており、私の目的では受け入れられません。
  • Sensor.TYPE_ACCELEROMETER、Sensor.TYPE_MAGNETIC_FIELD、および getRotationMatrix() を remapCoordinateSystem() および getOrientation() メソッドと組み合わせて使用​​する場合: ドキュメントには、これは「通常はより正確である」と記載されています。問題は、リスナーに登録する遅延に関係なく、デバイスが平らな面に静止していてもコンパスが狂ってしまうことです。

この問題を解決するための提案は大歓迎です。

4

2 に答える 2

8

mob1lejunkie はすでにこれを把握しているようですが、今後の参考のために、ここでの問題は磁気偏角(磁北と真北の差) であることを述べさせてください。NOAA のオンライン モデルを試して、世界のどこでどのような違いがあるかを理解することができます。

Android にはGeomagneticFieldと呼ばれるモデルが含まれており、緯度、経度、高度からおおよその偏角を計算するために使用できます。したがって、真北を計算するために必要なことは、Sensor.TYPE_ORIENTATION から方位角の値を読み取り、その GeomagneticField.getDeclination() に追加することです。

于 2010-06-14T08:58:37.147 に答える
1

携帯電話用に作られたコンパクトなパーツの欠点です。私たちが現在使用している 5000 ドルの IMU には +/- 2 度の誤差があり、その範囲では狂っているようにも見えます。

干渉や金属面から離れてみて、改善するかどうかを確認してください。そうでない場合、悪い知らせを伝えたくありませんが、それはハードウェアです。

これらを見たことがありますか?

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

http://groups.google.com/group/android-developers/browse_thread/thread/bbb0e8b97c673cf9/5c16bc2e49f6e972?lnk=raot

于 2010-05-04T23:01:06.837 に答える