2016年6月23日0件のコメントこんにちは。GMOアドマーケティングのT.Mです。毎日同じ文章を入れるのも面倒なので、Androidアプリ、GPS、Firebaseを使って考えてみました。仕組みは簡単で、AndroidアプリでGPSの経度/緯度を取得し、Firebaseのリアルタイムデータベースに書き込みます。特定の距離まで近づいたら音を鳴らします。APIを使用しました。2016で大幅なバージョンアップが発表されました。今回はリアルタイムデータベースを使用します。Firebaseにログイン(Googleアカウントでログイン出来ます)し、新規プロジェクトを作成します。プロジェクト画面の左側にある”Database”を選択するとデータベースの内容が表示されます。最初はなにもデータがなく、英数字だけ書かれていますが、それがデータベース名になります。データの持ち方は以下のようにしました。FirabaseのデータはJSONになります。“home”が自宅、”location”が現在位置にします。AndroidアプリGPSで取得した緯度/経度をFirebaseに書き込むアプリを作成します。Androidアプリで経度、緯度を取得する方法は公式ドキュメントが詳しいと思います。AndroidアプリでFirebaseを使うにはSDKを組み込みます。組み込み方は公式ドキュメントを参照ください。今回はやっつけでテキストボックスで数値を入れるようにしてしまいました。現在位置”location”へはGPSで取得した値をFirebaseに書き込みます。Firebaseへの書き込み方は簡単です。インスタンスと各値へアクセスするための参照を取得します。loc.child("longitude");“home”へはボタンタップ時に、”location”へはLocationListener#onLocationChanged()時にFirebaseへ書き込んでいます。自宅PCで監視Node.jsでFirabaseを使用します。組み込み方は公式ドキュメントを参照ください。組み込む途中で設定ファイルをダウンロードしておきます。Node.jsでFirebaseのデータを取得します。“home”も”location”も同様のやり方で取得できます。errorObject.code);});valueイベントは”home”以下の子要素を全て取ってきます。“home”以下で変更にあった子要素だけ受け取れました。今回はlatitude、longitude欲しかったのでvalueイベントにしました。APIを使用し、距離を求めます。APIの使い方は公式ドキュメントを参照ください。取得できたJSONデータから距離だけ使います。最後に取得した距離がしきい値より近ければ、音を鳴らします。MacならsayコマンドをNode.jsから実行することで簡単に”あと何メートルです”と音声で伝えることが出来ます。JTalkとaplayを使用し、音声で伝えることが出来ました。変更があった時点で処理が動くので簡単に使うことが出来ました。Firebaseには他にも機能があるので、それらも使ってみたいと思いました。@gmoap_engineer本ブログで発信される情報は、各エンジニア個人の見解であり、弊社の公式見解ではありません。本ブログに掲載、引用等をしている商品またはサービス等の名称は、各社の商標または登録商標です。その他の事項について一切責任を負いかねます。発表する情報には注意を払っておりますが、公式発表、見解については、弊社WEBサイトおよびプレスリリースなどをご確認ください。GMOインターネットグループにおけるソーシャルメディア運用ポリシーについては次のページをご確認ください。本ブログに掲載のあるソフトウェアのダウンロードは自己責任で御願い致します。ソフトウェアのダウンロードの結果、ご利用者に何らかの損失・損害が生じたといえども、当社ではその責任を負いかねます。本ブログに掲載のあるソフトウェアを扱う際は、各ソフトウェアの公式リファレンスを参照のもとご使用下さい。ソフトウェアの実行の結果、ご利用者に何らかの損失・損害が生じたといえども、当社ではその責任を負いかねます。