Hatena::Groupandroid

lnzntの Android 日記 このページをアンテナに追加 RSSフィード

2012年04月16日(月)

Google Map API

01:07 | Google Map API - lnzntの Android 日記 を含むブックマーク はてなブックマーク - Google Map API - lnzntの Android 日記 Google Map API - lnzntの Android 日記 のブックマークコメント

Google Map API 使ってみました。

f:id:lnznt:20120416010952j:image

Google Map API キー

Google Map にアクセスするのに Google Map API キーが必要です。

Google Map API キーの取得には以下が必要です。

  • 証明書
  • Google アカウント

デバッグ用の証明書は SDK に添付されてます。

keytool で内容表示できます。

$ keytool -list -keystore ~/.android/debug.keystore 
キーストアのパスワードを入力してください:   (ここは「空Enter」でよい)

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

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

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

androiddebugkey, 2012/04/11, PrivateKeyEntry, 
証明書のフィンガープリント (MD5): XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

最下行に証明書のフィンガープリントが表示されます。(API キー取得時に使います)

Google Map API キーの取得

以下のページのフォームから Google Map API キーが取得できます。

画面に従って取得します。

手続きの中で、証明書のフィンガープリントの入力が求められます。

また、Google アカウントの認証も求められます。

http://code.google.com/intl/ja/android/maps-api-signup.html

アプリを配布するには、デバッグ用でない証明書で、Map API キーを取得する必要があるそうです。

実装

ターゲットは「Android x.x.x」でなく「Google APIs」になります。

以下の時に注意します。

  • プロジェクト作成
  • AVD 作成

以下、ソースコードです。

----

src/.../GoogleMapSample

package com.example.googlemapsample;

import android.os.Bundle;
import com.google.android.maps.MapActivity;  // import する

public class GoogleMapSampleActivity extends MapActivity { // 基底クラスは MapActivity
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    protected boolean isRouteDisplayed() {  // オーバーライドが必要
	return false;
    }   
}

res/layout/main.xml

<?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"
    android:orientation="vertical" >

    <!-- 以下の MapView を追加する。android:clickable はオプション -->
    <com.google.android.maps.MapView
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                 android:clickable="true"
                 android:apiKey="(ここに、Google Map API キーを入れる)"
                 />
</LinearLayout>

res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">GoogleMapSample</string>
</resources>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.googlemapsample"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="15" />
    <uses-permission android:name="android.permission.INTERNET"/> <!-- 追加 -->

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".GoogleMapSampleActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <uses-library android:name="com.google.android.maps"></uses-library> <!-- 追加 -->
    </application>
</manifest>