2011年3月31日木曜日

あっけない距離表示

時計がひと段落付いたということで、次はラリーコンピューターのもう一つの重要機能である

トリップメーター

に着手いたします。

トリップメーター、つまり走行距離の表示ですが、App Inventorでは、位置情報を取得するための

LocationSensor

というものにかなりの動作制限があったため、トリップメーターのように1秒以内で常時位置情報を更新するというアプリを作ることはできませんでした。

今回のアプリについて、最大の懸念事項はそこだったのですが、すでにAndroidマーケット上にはスピードメーターアプリとか、GPSロガーアプリなどがたくさん出回っているため、自分が求める機能は実現できるという確証はありました。問題は、それを自分が構築できるか?ということです。

で、App Inventorのときと同様に、まずは現在地の経緯度を取得するためにはどうしたら良いか?をいろいろ調べていきます。

程なくしてなんとなく理解できてきました。

取得できる情報は

  • 経緯度
  • 高度
  • 住所
  • 速度・・・・・

???!!

速度!??

そうなんです。取得できる位置情報の中に、”速度”があったのです。

てっきり2点間位置情報から距離を求めようと思っていたのですが、最初から速度を出してくれるのであれば、処理的にはかなり軽くなりそうです。

なにしろ、App Inventorの際は、経緯度計算がかなり負担になり、結果的には様々なエラー要因となってしまっていたのが、経緯度計算をしなくて済むのであれば、+-×÷のみで済みますからね。

実際には小学生レベルの計算になりますが、時速が出るのであれば、GPS更新間隔をAndroidの最小間隔である”1秒”とすると、

時速/3600*1000

で秒速 m/sが計算できます。これだけです。
あとは、これをひたすら積算していけばトリップメーターの基本は完成となります。

これが、もし経緯度計算ですと、経緯度を取得してから、こんな感じのことを1秒毎にやってあげる必要があります。


    
 

時速を取得してくれるので、距離算出は予想よりはるかに簡単な処理で済みました。そして、App Inventor時の問題であった、時刻と距離が正常に表示されるか?ということですが、結論からいうと

問題無し

今のところ10以上の機種で利用いただいているようですが、不具合についての連絡がないということは、利用に支障をきたす問題は無しということだと理解しています。

ということで、
  • 任意の基準時刻へ補正できる時計表示
  • 1秒毎に更新されるトリップメーター
ができました。基本的にはこれだけでもラリーへ参加することは可能です。厳密にいうと、WRCのようなTC方式ラリー(分からないかたはごめんなさい、ルールが単純なラリーと思ってください)への参加が可能ということになります。

ここから先は、ラリーの現場で使うために必要だったり、あったら便利だなという機能の充実を図ることになります。

0 件のコメント:

コメントを投稿