Yuta Watanabe's Blog

開発周りと、その他諸々

PhoneGap で位置情報 ( Geolocation ) を取得する

こんにちは。

マイクロソフトの渡辺です。

前回は、PhoneGap と Microsoft Azure Mobile Services を接続してみました。今回は、アプリ内で位置情報を取得して保存してみたいと思います。

Geolocation Plugin の追加

PhoneGap アプリで位置情報を取得するには、Geolocation プラグインを使います。

アプリのフォルダに移動して、

$ phonegap plugin add org.apache.cordova.geolocation

とすると、プラグインがインストールされます。とっても簡単です。

次に、実際にソースコードの中でプラグインの API を呼び出して位置情報を取得してみます。

まずは、index.html 内に適当にボタンを追加しましょう。

そして、そのボタンをクリックすると、位置情報をアラートするコードを、onDeviceReady 内に追加します。

全体としてはこんな形。

f:id:yuwata:20140831193519p:plain

デバッグしてみる

PhoneGap Developer App を使っている場合は、ソースコードの保存がすぐに反映されます。実機画面を見てみると、ボタンが追加されているので、

f:id:yuwata:20140831194245p:plain

タップしてみると、アラートで位置情報が表示されます。

f:id:yuwata:20140831194301p:plain

という形で、PhoneGap アプリでは、こんなに簡単に位置情報を取得することができます。

取得した位置情報を保存する

さて、次に取得した位置情報をモバイルサービスのテーブルに保存してみます。モバイルサービスにおけるデータ保存の基礎は「 データの生成/読出し/更新/削除を行う ( Part 1 ) - Microsoft Azure Mobile Services ( JavaScript バックエンド )  」をご覧ください。

まずは、Location テーブルを作成。

f:id:yuwata:20140831194644p:plain

そして、先ほどアラートを表示したコードの下に、Location テーブルを取得してデータを保存するコードを追加します。

全体としてはこんな形。

f:id:yuwata:20140831194625p:plain

そして、デバッグしてみると、ボタンをタップするたびに、モバイルサービスのテーブルにデータが追加されていくのが見て取れます。

f:id:yuwata:20140831194723p:plain

このあとは

ここまで出来れば、あとはデータをモバイルサービスから読み出して地図にマッピングしてみたりと、いろいろ応用できそうなことはご想像いただけるかと思います。モバイルサービスに保存したデータの読み出しの Tips は「 データの生成/読出し/更新/削除を行う ( Part 2 ) - Microsoft Azure Mobile Services ( JavaScript バックエンド )」をご覧ください。

続きの応用編等は、また追って投稿したいと思います。