読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

Google Mapを表示する

Android

android開発をやってみようと思い立ち、ネットとかで色々と調べてGoogleMapを表示してみた


andoridでGoogle Mapを使うためにはMaps APIキーというのが必要で、

キーを取得する際にはGoogleアカウントと証明書が必要となる


まずはデバッグ用の証明書を作成する

作成するには「keytool」というのを使うので、JDKのインストールディレクトリにパスを通したほうがいい

次のコマンドを実行する

keytool -list -keystore "C:\Documents and Settings\user\.android\debug.keystore"

※userの箇所は自分の環境に合わせて変更して
f:id:STAR_ZERO:20100708215739p:image

コマンド実行後にパスワードを聞かれるけど、そのままエンターで

証明書のフィンガープリント (MD5):の後ろに記載されている英数字をコピーしておく


次にAndroid Maps API Key Signupにアクセスしてキーを取得する
f:id:STAR_ZERO:20100708215935p:image

My certificate's MD5 fingerprint:の欄にさっきコピーした値を貼り付けて

規約条件同意のチェック入れてGenerate API Keyボタンを押す

もしログインしてなかったらログイン画面になると思う(オレはログインした状態だったから聞かれなかった)


これでAPIキーが発行される
f:id:STAR_ZERO:20100708220116p:image


これで準備が整ったので、eclipseを起動して簡単なサンプルを作ってみる


まずは新規プロジェクトで下のように設定する
f:id:STAR_ZERO:20100708220117p:image

GoogleAPIsっていうのがない場合はAndroid SDK and AVD Managerでインストールする


あとはマニフェストファイル、レイアウト、ソースファイルを修正する


AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
      package="cmo.sample.map"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Sample">
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN">
                <category android:name="android.intent.category.LAUNCHER">
            </category></action></intent-filter>
            <uses-library android:name="com.google.android.maps">
        </uses-library></activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET">
    <uses-sdk android:minsdkversion="4">
</uses-sdk></uses-permission></manifest>



を追加


main.xml

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android">
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <com.google.android.maps.mapview>
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="取得したAPIキー"
    />
</com.google.android.maps.mapview></linearlayout>

android:apiKey=っていうところにはさっき取得したAPIキーを設定
※「:」ははてな記法でリンクになっちゃうので全角にしています


Sample.java

package cmo.sample.map;

import com.google.android.maps.MapActivity;

import android.os.Bundle;

public class Sample extends MapActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}

親クラスにMapActivity


すべて修正できたら実行してみる

AVDの設定が必要になるので、次のように設定してから実行する
f:id:STAR_ZERO:20100708220634p:image

実行したらMapが表示されるはず
f:id:STAR_ZERO:20100708220635p:image


ここまでやるのに変なエラーとかでて開発環境から作り直したりで色々と大変だった

いきなりGoogleMapにチャレンジしてみたけど、xmlファイルの意味とかサッパリだから、

ちゃんと勉強しないといけないね