Androidで絶賛遊び中です。
例によってサンプルプログラムをしこしこ打ち込みながら実行中です。
今回は、GPSで位置情報をGETしてgooglem mapを呼び出すサンプルです。
前回の失敗もあってか、ディバッグは順調に進みました。
ディバッグツールの使い方も徐々になれてきたので、効率もアップです。
さて、今回作ったのは・・・
- GPSから位置情報を取得してGoogleMapの地図を呼び出す
- 位置情報が変化したら、それに追従してマップを動かす
というサンプルです。
サンプルプログラムを作った後、ちょっとだけコードを追加して、GPSの座標が表示されるようにしました。
で、実行した画面がこちら。
ちゃんと、地図とGPS座標が表示されています。
表示される住所はかなり正確です。というか、ドンピシャで住所が出てきます。全く正しい住所でした。
もちろん、ディバッグは室内でやっています。空が見えないのにこの精度が出るのはすごいですね。
※追加したコードはこちら
private void showLocationName(Location loc){
//座標を変換
double latitude = loc.getLatitude(); //緯度
double longitude= loc.getLongitude(); //経度
//GeoCoderを使用して地名を検索する
StringBuffer buff = new StringBuffer();
try{
// :
//省略
// :
} catch(IOException e){
// :
//省略
// :
}
//テキストを表示
buff.append("\n");
buff.append("緯度:");
buff.append(latitude);
buff.append("\n");
buff.append("経度:");
buff.append(longitude);
mStatusText.setText(buff.toString());
}
そんなに難しいものではありません。
続いて、ちょっとした実験です
wifiをoffにしてみて、GPSの座標が表示されるかどうか試してみました。
もちろん、地図情報が取れないので地図が表示されませんし、GeoCoderが動かないので住所が出てきません。
しかし、ちゃんとGPSの座標は表示されていました。
何処かのサイトで、位置情報を無線LANのアクセスポイントで保管するという記述があったので、もしかすると無線LANないとGPS情報取れないのか!!と思ったのですが、大丈夫みたいですね。
まあ、当然と言えば当然ですが・・・
次に、機内モードを設定してみました。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
このときも、ちゃんとGPS座標が表示されていますね。
完全スタンドアロンでもGPS座標が取れるんですね。
なんだかイロイロ使えそうな気がしてきました。
というわけで今日のまとめ
-
GPSで位置情報を取得し、GoogleMapを呼び出すことができた。
-
GPS情報は、ネットワークを接続しなくても取得可能。(なんと機内モードでも取得できる。)
-
GPS情報の精度はかなり良好。室内でGPS情報を取得しても住所がドンピシャで引ける。
次回は、各種センサ情報を取得する方法を学んでみたいと思います。

