« FirefoxOSのシミュレータをインストールしてみました | トップページ | 【Android】Google Map API v2で、地図を拡大/指定位置の表示/傾ける/回転などを行う »

2013年10月20日 (日)

【Android】Google Map API v2を使用する

2013年3月18日以降、Google Map API v1用の新しいAPIキーを取得することが

出来なくなっています。

そのため、これ以降Google Mapを使用したアプリを作る際は、

必然的にv2のAPIを使うことになります。

しかし、APIキーの取得方法からアプリへの組み込み方まで、

v1のときとは大きく変わっているので、ここに手順を書き残します。


組み込みまでの手順はいろいろと面倒ではありますが、

v2のGoogle Mapは、v1のものに比べ、たくさんの機能が追加されており、

組み込む価値は十分にあると思います。


それでは、手順について書いていきたいと思います。


【① google play serviceのパッケージを取得する】

google map api v2は、google play serviceの1機能として用意されています。

Androidでgoogle map api v2を使用する際は、google play serviceのパッケージを

取得する必要があります。


ではまず、SDKマネージャーを起動しましょう。

11


SDKマネージャーが起動したら、"extras"内の"google play service"に

チェックを入れ、インストールボタンを押してください。

これで、パッケージの取得が始まります。

12


インストールしたパッケージは、以下のパスに保存されます。

"(自身のsdk保存場所)\extras\google\google_play_services"

中には、アプリ開発時に使用するライブラリの他、

ドキュメントやサンプルコードが入っています。


この中のライブラリを、eclipseに取り込みましょう。

eclipseにて、"新規プロジェクト"⇒"Android"⇒"Android Project from Existing Code"

を選択し、先ほどインストールしたパッケージのライブラリのパスを指定します。

取り込み時に指定するパスは、以下になります。

"\extras\google\google_play_services\libproject\google-play-services_lib"


13


14


取り込み後、eclipseのパッケージエクスプローラーに、

"google-play-services_lib"が作成されていれば完了です。

15


【②APIキーを取得する】

google map API v2用のAPIキーを取得します。

google map API v1用のAPIキーは使用できないので、

新たに取得しなおす必要があります。

※APIキー取得には、googleアカウントが必要です。
   ここでは、googleアカウントはすでに取得済みとして進めていきます。

(1) keystoreのSHA1の値を取得する

APIキーを取得するには、キーストアのSHA1の値が必要です。

デバッグ実行時の場合は、デバッグ用keystoreを使用します。

デバッグ用キーストアは、以下の場所にあります。

"C:\Users\(ユーザー)\.android\debug.keystore"

リリース用キーストアは、リリース時に毎回使用しているキーストアになります。


SHA1の値は、コマンドプロンプトにて、以下のコマンドを実行することで取得できます。

>keytool -list -v -keystore "パス名\キーストア名" -alias androiddebugkey -storepass android -keypass android


※keytoolコマンドが実行できない場合
keytoolコマンドは、jreのパッケージ内のbinフォルダに入っています。
jreのインストール先は、デフォルトだと"C:\Program Files\Java\jre"になるので、
探してみてください。


コマンドを実行すると、以下のように表示されます。

この中の、SHA1の値を、API取得時に使用するので、控えておいてください。

16


(2) google API consoleにて、APIキーを取得する

APIキーの取得は、google API consoleにて行います。

下記URLよりアクセスしてください。

https://code.google.com/apis/console/

初めてですと、下の画像のようなボタンが表示されるので、

クリックしてプロジェクトを作成してください。

17


プロジェクトが作成し終わったら、以下のようにしてください。

"Service"を選択⇒"Google Map API v2"をOKにチェックする

-----

18

-----

19


次に、"API Access"から、"Create new Android key....."を選択してください。

すると、ダイアログが開くので、

キーストアのSHAの値を入力し、続けてセミコロンを入力、

その後ろにgoogle mapを使用するアプリのパッケージ名を入力してください。

※このようになります ⇒ "(SHA値);(アプリのパッケージ名)"

110

入力後、createボタンをクリックすると、APIキーが生成されます。

APIキーは、アプリ開発時に使用するので、控えておいてください。


【③ アプリケーションに、google map API v2を組み込む】

いよいよ、アプリにgoogle map API v2を組み込んでいきます。

いろいろとやらないといけないことがあるので、順を追って進めていきましょう。


(1) アプリのプロジェクトに、google-play-service_libを組み込む

以下の手順にて、ライブラリ設定画面を開いてください。

プロジェクトを右クリックしてメニューを開く ⇒ メニューより"プロパティ"を選択してプロパティダイアログを開く ⇒ "Android"を選択

画面が開いたら、以下の2つを行ってください。

  ① ターゲットをGoogleAPIsにする

  ② ライブラリーに、"google-play-service_lib"を追加する

111

これで、ライブラリの組み込みは完了です。


(2) マニュフェストファイルの設定を行う

マニュフェストファイルの設定が必要です。

下記の、赤字の部分を追記してください。

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
   
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="com.yso.googlemapv2.permission.MAPS_RECEIVE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />


    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

   
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="(取得したAPIキー)" />

        <activity
            android:name="com.yso.googlemapv2.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>


以上で、google map API v2を使用するための準備は完了です。


【④google map API v2を使用して地図を表示するサンプルソース】

最後に、サンプルソースを載せておきます。

google map API v2は、fragmentを使用します。

しかし、fragmentは、Android API version11(=Android3.0)以降でしか使えません。

だからといって、API Version10以下(=Android2.3以前)の端末で、

google map API v2が使用できないわけではありません。

"android-support-v4.jar"をアプリに組み込めば、古いバージョンの端末でも

使用することができます。

このライブラリは、下記のパスにあるので、適宜組み込んでください。

"(sdkインストール先)\extras\android\support\v4"


それでは、サンプルソースです。


●レイアウトxml

赤字で示したように、fragmentを使用します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        class="com.google.android.gms.maps.SupportMapFragment"/>

</LinearLayout>


●アクティビティ

アクティビティのほうは、FragmentActivityを親クラスとする点がポイント。

package com.yso.googlemapv2;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends FragmentActivity  {

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


下の画像は、上記ソースを実行したものです。

112

v1に比べ、かなりかっこいいですね!



--------------------------------------------------

自作アプリ、

いつでもクイックランチャー ver3.0アップデートを

公開しました!

Slidetask

Google playよりダウンロード可能ですので、是非お使いください!

https://play.google.com/store/apps/details?id=com.yso.slidetask


感想や改善点等、聞かせていただけるとうれしいです。

アプリの中の実装方法で気になる点のご質問も大歓迎です!

« FirefoxOSのシミュレータをインストールしてみました | トップページ | 【Android】Google Map API v2で、地図を拡大/指定位置の表示/傾ける/回転などを行う »

Android」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1882306/53666004

この記事へのトラックバック一覧です: 【Android】Google Map API v2を使用する:

« FirefoxOSのシミュレータをインストールしてみました | トップページ | 【Android】Google Map API v2で、地図を拡大/指定位置の表示/傾ける/回転などを行う »

購入


無料ブログはココログ