carcon999のブログ

12年間Y!ブログの記載を移行しました。電子工作関連の記事が多いです。

TOYOTA HackCars Day2014 一週間インターバル(アプリ編)

■前回からの続き

初日の記事(TOYOTA HackCars Day2014 Days1(9/13))はこちらです。

■とりあえずAPIを叩いてみよう!

イメージ 1

当日配布された資料です。簡単な仕様が記載されています。これ以外に同意書にサインするとデベロッパーキーを入手することができます。その番号をリクエストに入れることで使えるようになります。

■まずはPOSTManでやってみる

データの取得は全てPOSTです。うまく値をとれるのかな~。ということで簡単にPOSTのプログラム・・・とはせずに、ChromePOSTManを使ってテストしてみます。※Developerkeyはマスクさせていただきました。

イメージ 2

こんな感じでPOSTするとJsonもしくはXML形式でデータを取得することができました。
とりあえず呼び出し方はわかりました。これ以外にもPHPのサンプルとか用意されているのですが、Web屋じゃないのでそこはスルーです。

■欲しいデータは距離なんですが・・・

タクシーメーターを作るには、必要なのは距離ですよ!距離。逆に走行距離以外には興味ありませんので簡単ですね~。
APIでハマることはありませんよ。

な~んて考えは甘かった。距離は取得できるんですけど、単位が整数のkmでした。orz
タクシーは、280m毎に90円(都内)加算されるので、m単位での距離が必要なんです。

取得できないものは、仕方ありません。そこで他に手は無いものか?と悩み考えてみたのが速度から距離を計算する方式です。
速度はかなり細かい精度で取得することができます。そこで、1秒毎に速度を取得しそこから移動距離を計算することにしました。サンプルデータをもとにExcelで誤差を計算したところ1Km辺り6m程度の誤差で計算できそうな感じでした。

イメージ 3

※D列が速度、E列がそれから計算した1秒間の移動距離。そして合計1006.0125(m)が速度から計算で求めた約1Km(1000m)距離です。実際には、無線の状況等で取得できない時間も存在するため、その場合は線形補間して速度を求めたりします。

実は、距離計算ができるようになるまでには、トヨタIT開発センターの方に問い合わせを数回実施しデータが取得できない理由や、NULLデータが返却される条件などをメールでやり取りさせていただきました。レスポンスが早く感動しました。テンポ良く返事もらえるとこちらのモチベーションも上がりますね。

APIの試食と並行してEclipseもインストール

 先のAPI検証と並行して、アプリ開発用のEclipseもインストールします。折角なので久しぶりにAndroidアプリを作ろうと思います。Eclipseはさくっと入りますが、Android SDKが・・・時間かかるな~。1年半ぶりくらいでしょうか・・・アンドロイドアプリの開発。シミュレータ作って、なんとか動きそうだが、デザイン画面が表示できない。すごいハマりそうな予感。なんとなく、APIのVersion関係の違いが影響しているのはわかるが、今悩んでいる時間はない。

イメージ 4

とりあえず、2時間のロスで深追いを止めておこう。
こうして、Androidアプリの開発は止めることにした。この辺の引き際も重要である。(と思う)

■とりあえずWindowsアプリでやっちゃうよ

 さくっと作れるWindowsアプリで連続してデータを取得して上手くタクシーメーター計算ができるかやってみます。これができなきゃなにもできません。
それでできたのがこんな感じです。とりあえず、見た目はWindowsそのものです。Start/Stopでそれっぽく動作します。出力ウィンドウには、計算値を出力しています。
まあ、それなりに動きそうです。最低限のAPIを使ってデモはできそうですね。(ふう~一安心?)

イメージ 5

※見た目はあとでビットマップでも貼ればそれっぽく見えるはずなので動作検証優先で