App Inventorで位置情報を取得できることは分かりました。
ちなみに、App Inventorで取得できる情報は
・緯度
・経度
・高度
・住所
などです。
以前にも書いたような気がしますが、ラリーコンピューターの機能は大別すると
距離と時計
になります。位置情報のうち、緯度と経度(厳密に言うと高度も必要なのですが)が分かるということは、移動している際に、一定間隔(1秒毎)に経緯度を取得することで2点間の長さ、つまり距離を計算することが可能になります。計算式などはいろいろあり、どこまで精度を求めるかによって大きく変わってきますので、この際割愛させていただきますが、とにかく経緯度を一定間隔で取得すれば距離が分かるということになります。
別に1秒毎でなくても良いのですが、2点間の距離を計算する際は直線距離になります。従ってあまり間隔が長くなると、道路形状と著しく異なる直線距離として計算してしまうため、1秒毎くらいが精度的には限界かな?と思っています。
ちなみに、時速36kmでは秒速10mになり、時速60kmでは秒速16.6・・・mになります。
さて、計算式をブロックで作り上げて、1秒毎に処理を実行するタイマー(Clock)を使い、
1秒毎に経緯度取得
↓
2点間の距離計算
↓
トリップに距離積算
という流れを組み上げます。そして、いざ実行してみると、
「1回目の経緯度は取得するけど、なかなか経緯度が変化しない」
??
しばらくすると、経緯度が変化して一応2点間の距離は表示されました。
いきなり表示された距離は”300m”を越えるもの。
ちなみに、Googleマップなどで現在地を表示する際は、カーナビのごとく1秒毎に移動していました。それに対して、いきなりの距離が300mとは、いったいどういうことなのか?タイマーは1秒毎にしているし、この時点ではまったくもって謎ばかりでした。
実は、これがApp Inventorに備わるLocationSensorの最大の弱点といっても過言ではないでしょう。
弱点の話は次回。
0 件のコメント:
コメントを投稿