コンパス機能の追加中

BoatFishingNaviのアンカリング支援機能
有効活用する為には、
マークしたポイントの方向が分かる方が便利です。

そこで、アンドロイドのセンサー機能を利用して、
コンパス機能を追加することにしました。

調べてみると、この辺をを参考にすれば、
意外と簡単に出来そうだったのですが、
作り込むうちにいろいろと問題が。。。

折角、ある程度動くまで作ったところで、
「Sensor.TYPE_ORIENTATION」が
非推奨になっていることが判明。


そこで加速度センサーと磁気センサーの値から
getRotationMatrixで回転行列を求め、
getOrientationで方位を求める方法
に変更しました。

ようやく出来たと試してみたら、
画面が横に回転した時に
表示が90度狂ってしまいます。
なので、画面の表示向きをDisplayのgetOrientation()
を使って確認して補正を加えるようにしました。

しかし、DisplayのgetOrientation()も非推奨。。。
API level8以降はgetRotation ()を
使うのが良いらしいのですが、
IS01で動かす為にはAPI levelを4に
する必要があるので、ひとまずgetOrientation()を
使うことにしました。

画面の左下にコンパスを表示するモードと、
画面全体を回転させるモードの二種類に対応させました。

画面全体を回転させるモードでは、
画面のスクロールも回転方向に合わせて
オフセットを計算する必要があり、
二次元の回転で補正を加えてようやく完成。

無償版は画面下にコンパスを表示するモードのみで、
有償版は二種類のモードとOFFを設定で
変更可能にしました。

もう少し動作確認をしたら、
近日中に更新版をリリースする予定です。

もうすぐ3月ですね。暖かくなるまでは、
しばらく釣行記より、アプリ開発について書くことが
多くなりそうです。
スポンサーサイト

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

Translation(自動翻訳)
最新記事
カテゴリ
月別アーカイブ
最新コメント
プロフィール

kagoturi

Author:kagoturi
釣りにハマッて週末は東京近郊へ釣りに行ってます。
以前は遠投カゴ釣りをメインでやっていましたが、2009年にボート釣りを始めてみたら楽しくて、最近はボートばかり乗っています。

最新トラックバック