Android

Google Maps Android API v2 【Android TIPS】

Posted 2月 5 2013 by Teachers  , ,

2012年12月、Google Play Serviceが刷新に伴いGoogleマップAPIもバージョンアップが行われGoogle Maps Android API v2となりました。
Google Maps Android API v2では、Android版アプリ「Google Maps」で提供されていた各種機能を自分のAndroidアプリケーションに実装できるようになっています。

 

主な機能は、2Dと3Dに対応したベクターベースのマップを利用や、簡単な動作で地図の傾斜や回転、主要空港やショッピングセンターといった建物のインドアマップなどがあります。

また、Fragmentをサポートしているため、タブレット端末のサポートや複数のパーツを組み合わせる等も可能になっています。

 

左から2Dマップ、3Dマップ、インドアマップ

図12図13図14

 

3Dマップについて紹介している公式HP

http://www.google.co.jp/intl/ja/mobile/maps/3d/

 

公式HPでは3Dマップを見ることのできるポイントを紹介しているのですが、関東周辺では以下の2か所のみのようです…

  • 都庁周辺
  • 横浜市役所周辺

 

では早速、サンプルアプリの作り方です。

バージョン1に比べ若干複雑になっていますので、まずは以下の通りに作ってみることをオススメします。

 

用意するもの

  • Android 2.2以上が搭載されているAndroid実機端末
  • 上記端末にGoogle Play Storeがインストールされていること

このようにエミュレーターでは実行することができなくなっています。ご注意を!

 

作成手順

手順は大きく3ステップに分けることができます。

  1. 「Google Maps Android API v2サービス」の有効化とAPIキーの入手
  2. 「Google Play Serviceライブラリ」のインストールおよびインポート
  3. Androidアプリの作成

 

1. 「Google Maps Android API v2サービス」の有効化とAPIキーの入手

1. ブラウザで以下のURL (Google APIs Console)にアクセスする。

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

 

2. “Create project…”をクリックする。

図15

 

3. “Services”をクリックする。

図16

 

4. “All services”の中から”Google Maps Android API v2”のトグルボタンをクリックする。

図17

 

5. 利用許諾の条項に同意したら、”Accept”ボタンをクリックする。

6. “API Access”をクリックする

図18

 

7. “Create new Android Key…”をクリックする。

図19

8. キーストアのフィンガープリントのSHA1と、その後ろに”;”およびAndroidアプリケーションのパッケージ名を付け足したものを入力する。

バージョン1ではフィンガープリントのみでしたが、バージョン2からはパッケージ名を後ろにつける必要があります!

 

例)

XX:XX:XX:XX:XX:XX:XX;com.example.googlemapsandroidapiv2

図20

 

※キーストアのフィンガープリントの取得方法※

以下のコマンドをコマンドプロンプトで実行します。

(JDKのフォルダを環境変数PATHに設定しておいてください。)

C:>keytool -v -list -keystore "%USERPROFILE%.androiddebug.keystore"

キーストアのパスワードを入力してください:[Enter]

*****************警告 警告 警告*****************
*キーストアに保存された情報の整合性は*
*検証されていません。整合性を検証するには*
*キーストアのパスワードを入力する必要があります。*
*****************警告 警告 警告*****************
…
証明書のフィンガプリント:
         MD5:  8B:75:D6:22:23:8D:F7:65:E1:D4:2B:XX:XX:XX:XX:XX
         SHA1: 6F:2B:05:E6:BA:1C:F1:E4:F9:33:22:44:F4:E1:XX:XX:XX:XX:XX:XX
         SHA256: 82:E5:F2:A7:33:4D:8B:AE:4C:F4:FB:E8:6F:85:B4:BF:E0:4C:1A:E5:D7:0B:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
         署名アルゴリズム名: SHA1withRSA
…

 

9. “Create”ボタンをクリックする

10. “API Key”欄に入力されている値がAPIキーです。

図21

 

2. 「Google Play Serviceライブラリ」のインストールおよびインポート

まずはライブラリのインストールです。SDKマネージャーから行うことができます。

1. Android SDKマネージャーを起動する。

2. “Extras”セクションの中にある“Google Play Services”にチェックを入れ、”Install 1 package…”をクリックする。

 図22

 

3. インストールが完了したら、SDKマネージャーは終了する。

 

次に、ライブラリをEclipseにインポートします。

4. Eclipseのツールバーから、ファイル→インポートをクリックする。

5. “Existing Android Code Into Workspace”を選択し、次へをクリックする。

6. “ルート・ディレクトリー”に以下の値を入力する。

[adt-bundleのインストールパス] adt-bundle-windowssdkextrasgooglegoogle_play_serviceslibprojectgoogle-play-services_lib

図25

 

7. “google-play-services_lib”にチェック、”プロジェクトをワークスペースにコピー”にチェックをいれ、完了をクリックする。

図26

 

8. パッケージ・エクスプローラーに”google-play-services_lib”プロジェクトが作成されていれば、インポート完了です。

図27

 

 

3. Androidアプリの作成

では、いよいよAndroidアプリの作成です。

 

1. Androidプロジェクトを新規作成する。

プロジェクト作成時に注意すべき点は以下の2か所です。

  • パッケージ名をAPIキー取得時に入力したパッケージ名と揃える
  • 「Minimum Required SDK」をAndroid 2.2にする

 

作成したAndroidプロジェクトと、さきほどインポートしたGoogle Play Serviceライブラリをリンクさせます。

2. パッケージ・エクスプローラーでプロジェクト名を右クリックし、プロパティをクリックする。

3. “Android”を選択し、ライブラリーから”追加”をクリックする。

図28

 

4. “google-play-services_lib”を選択し、”OK”をクリックする。

5. ライブラリーに”google-play-services_lib”が表示されていれば、リンク完了です。

図29

 

やっとコーディング作業です。

Google Maps Android API v2はFragmentを利用していますので、MainActivityクラスはFragmentActivityクラスを継承するように変更します。

public class MainActivity extends FragmentActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

 

res/layout/activity_main.xmlファイルには以下のように<fragment>を定義します。

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />

 

最後に、マニフェストファイルです。

<permission>、<uses-permission>、<uses-feature>および<application>内に<meta-data>を定義します。

<meta-data>にはAPIキーを設定します。

「com.example.googlemapandroidapiv2」となっているところは、各自のパッケージ名と合わせて下さい。(2か所あります。)

    <permission 
        android:name="com.example.googlemapandroidapiv2.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />
    <uses-permission android:name="com.example.googlemapandroidapiv2.permission.MAPS_RECEIVE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>	

    <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キーを入力する" />
        ...
    </application>

 

以上で全て完了です。

アプリケーションを実行しましょう。

 

以下のような操作を行うことができるはずです。コーディングの必要がないところがすごいですね!

  • スワイプ(1本指でドラッグ)で地図移動
  • ダブルタップでズームイン
  • ピンチ(2本指を開いたり閉じたり)でズームイン/ズームアウト
  • 2本指を回転させると地図回転
  • 2本指を上下で地図が傾斜

 

インドアマップはズームインしていくと表示され、3Dマップはサポートしている地点をある程度ズームインし、地図の角度を変えると表示させることができます。

 

なお、引き続きバージョン1(Google Maps Android v1)のAPIキーも取得することができます。

https://developers.google.com/maps/documentation/android/v1/maps-api-signup


Android TIPS



  未経験OKの仕事 |  上場企業の仕事 |  高待遇の仕事 |  外資系の仕事 |  社内SEで検索 |  自社サービスで検索





メールアドレス
ご質問・問い合わせ等、ご自由にお書きください。