デバイスの磁気 XYZ 値をセンサー マネージャーから取得しました。
ただし、これらはデバイスの視点の XYZ 値です。
問題は、これらの座標 (磁石値の 3d ベクトル) を北に向かって回転させたいことです。デバイスを回して保持すると、同じ XYZ値が表示されます。
使用時
SensorManager.getRotationMatrix(R, I, accel, m);
SensorManager.getOrientation(R, v);
ベクトル v[] でデバイスの向きの XYZ を取得します。
元のベクトルを回転させて北に合わせるにはどうすればよいですか?
これは私が探している最終結果です:
ご覧のとおり、デバイスのどの向きでも同じ xyz 値を取得します
編集:
私はこれを追加しようとしました:
Location l=null;
GeomagneticField field = new GeomagneticField((float) l.getLatitude(),(float) l.getLongitude(),(float) l.getAltitude(),l.getTime());
そして、field.getX()から取得したデータは有効ではありません(おそらくnullの場所を使用しているためです...?)。私を助けるためのサンプルコードを見つけることができる場所はありますか?
ありがとう、ウォプス