【Android】Google Mapsを使う

はじめに

まずは大前提として、Android Maps API Keyが必要だよ。
APIキーの取得方法に付いてはこちらを見れば一目瞭然だね。
でもそれだとちょい不親切なので、めんどくさいけど説明するよ。

JDKは入っているかな?そしたら$JDK_HOME/bin/keytoolってコマンドがあるはずなんだ
$JDK_HOME/binにPATHが通してあればおk

そしたら、コマンドプロンプトないしはシェルで以下を実行
[bash highlight=”3,17″]
$ cd $ANDROID_SDK_HOME/.android
$ keytool -list -keystore ./debug.keystore
キーストアのパスワードを入力してください:

***************** 警告 警告 警告 *****************
* キーストアに保存された情報の完全性は検証されて *
* いません! 完全性を検証するには、キーストアの *
* パスワードを入力する必要があります。 *
***************** 警告 警告 警告 *****************

キーストアのタイプ: JKS
キーストアのプロバイダ: SUN

キーストアには 1 エントリが含まれます。

androiddebugkey, 2011/02/02, PrivateKeyEntry,
証明書のフィンガープリント (MD5): ゴニョゴニョゴニョゴニョ
[/bash]


キーストアのパスワードはなにも入力せずにEnterで大丈夫です。
$ANDROID_SDK_HOMEってなんぞ?という情弱はこちらの記事を読んでくれい

そしたら、Sign Up for the Android Maps APIのページにいって、利用条件をよくよんで、同意するならチェックして、My certificate’s MD5 fingerprintってとこにゴニョゴニョゴニョゴニョを入力してGenerate API Keyを押下!!

ふぅ・・・

Google APIを利用するためのビルドパス設定

いざ、コーディング

レイアウト設計

レイアウト用XMLファイルをこんな感じで作成する。
res/layout/map.xml
[xml highlight=”4,6″]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.google.android.maps.MapView
android:id="@+id/map"
android:apiKey="Android Maps API Key"
android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</LinearLayout>
[/xml]

今回はシンプルに地図のみを表示するお

Google Mapを表示するにゃあcom.google.android.maps.MapViewってのが必要なんだ。
どんなレイアウトにするにしてもこのタグが必要なんだす。
android:apiKeyってとこに最初に作ったAPIキーを書くんだぞ!これ絶対な!!

アクティビティ作成

[java highlight=”1″]
public class SimpleMapActivity extends MapActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);

//マップの設定
MapView map = (MapView)findViewById(R.id.map);
map.setClickable(true); //地図をタップできるようにする
map.setBuiltInZoomControls(true); //ズームボタンを設置する

//マップの詳細設定をするためのコントローラを取得
MapController mapCtrl = map.getController();

//地図の縮尺設定
mapCtrl.setZoom(17);

//地図の中心座標設定(例: 東京都港区赤坂駅)
int latitude = 35672332; //緯度
int longitude = 139736459; //経度
GeoPoint point = new GeoPoint(latitude, longitude);
mapCtrl.setCenter(point);
}

@Override
protected boolean isRouteDisplayed() {
return false;
}
}
[/java]
だいたいソース中のコメントに書いてあるからわかるっしょw
面倒なのはMapを表示するActivityの場合、com.google.android.maps.MapActivityを継承しなければいけないってこと。

そうするとisRouteDisplayed()って関数も実装しなければならないんだけど、これは地図にルートを表示する時に使うそうなので、今回は無視!とりあえずfalseを返却するようにしておこう!

Manifestの定義

Google MapsライブラリはAndroidライブラリには含まれないので、AndroidManifest.xmlで設定してあげる必要がある。

Google Maps Libraryの設定
Google Maps Libraryの設定

Application Nodesってとこで追加 < Uses Libraryで項目を追加したらName欄にcom.google.android.mapsを書いておけばOK

最期に

これで、エミュレータを起動すれば見事Google Mapが表示されるようになります。
がっ!今回はAndroid Maps API Keyがあくまでもデバッグ用だったのでアプリを本公開する際はちゃんとしたAPI Keyを取得して切り替えましょう。

そのやり方はまた別の機会に…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です