Android でプレミアム プランを利用

注: 新規のお申し込み時または新規のお客様は、Google Maps Platform プレミアム プランをご利用いただけません。

Google Maps Platform プレミアム プラン ライセンスでは、Maps SDK for Android 向けに高度なサポートが提供されます。このドキュメントでは、プレミアム プランの Maps SDK for Android を使用して Android アプリを開発する方法を説明します。

概要

このページの手順に沿って SDK をダウンロードし、プロジェクトを設定して、マップを追加します。必要なステップの概要は次のとおりです。

  1. SDK をダウンロードします。
  2. SDK を新規または既存の Android プロジェクトに追加します。
  3. API キーをアプリのマニフェストに追加します。
  4. 必要な Android 利用許可と OpenGL ES version 2 を指定します。
  5. 地図を追加します。

SDK をダウンロード

SDK は静的ライブラリとしてダウンロードすることも、Android SDK Manager を使用してダウンロードすることもできます。

オプション 1: SDK を静的ライブラリとしてダウンロードする

最新リリースを静的ライブラリとしてダウンロードします。

オプション 2: Android SDK Manager を使用して SDK をダウンロードする

Android Studio での手順:

  1. [ツール] > [Android] > [SDK Manager] の順に選択します。
  2. [外観と動作] > [システム設定] > [Android SDK] を選択します。
  3. [SDK Update Sites] タブをクリックします。
  4. プラス記号(+)アイコンをクリックして、新しいサイトを追加します。
  5. 「Google Maps for Work」などの名前と URL を入力します。 https://dl.google.com/geosdk/android-m4b-addon.xml
  6. [OK] をクリックします。
  7. [SDK ツール] タブをクリックします。
  8. [Google Maps Mobile SDK for Work] を選択し、[OK] をクリックしてダウンロードを完了します。

Android Studio は、<android-sdk-folder>/extras/google/maps_for_business_sdk/ にライブラリをインストールします。

Android SDK Manager をスタンドアロン ツールとして使用する手順については、Android SDK Manager のガイドをご覧ください。

プロジェクトに SDK を追加

Android Studio を使用する場合の手順は以下のとおりです。別のツールを使用する場合は、Android ドキュメントのコマンドラインの使用方法に記載されている手順をご覧ください。

Maps SDK for Android プレミアム プランには、aar バンドル(google-maps-sdk-m4b.aar)とライブラリ モジュール(google-maps-sdk-m4b_lib)の 2 つの形式があり、最適な形式を選択できます。

オプション 1: aar バンドルから SDK をインポートする

Android Studio プロジェクトに aar バンドル(google-maps-sdk-m4b.aar)を含める手順は以下のとおりです。

  1. 次の場所で Google Maps Platform のプレミアム プランを参照します。

    <android-sdk>/extras/google/maps_for_business_sdk

  2. google-maps-sdk-m4b.aar ファイルをプロジェクトの libs ディレクトリにコピーします(このディレクトリが存在しない場合は作成します)。

  3. アプリの build.gradle ファイルに次のコードを追加します。

    dependencies {
        implementation(name:'google-maps-sdk-m4b', ext:'aar')
        implementation 'com.android.support:support-v4:+'
        implementation 'com.android.support:appcompat-v7:+'
        implementation 'com.google.android.gms:play-services-basement:15.0.1'
        implementation 'com.google.android.gms:play-services-base:15.0.1'
    }
    
    repositories {
        flatDir{
            dirs 'libs'
        }
    }
    
  4. アプリの build.gradle ファイルで、compileSdkVersion を最新バージョンに設定します。

  5. 以下の説明に沿って構成手順を完了します。

オプション 2: SDK をライブラリ モジュールとしてインポートする

aar ファイルを使用する代わりに、次の手順で SDK ライブラリ モジュール(google-maps-sdk-m4b_lib)を Android Studio の既存のプロジェクトに追加できます。

  1. Android Studio で、新しいモジュールをインポートするオプションを選択します([ファイル] -> [新規] -> [モジュールをインポート])。
  2. SDK がある以下の場所を参照します。

    <android-sdk>/extras/google/maps_for_business_sdk

  3. google-maps-sdk-m4b_lib ディレクトリを選択し、[選択] をクリックします。

  4. インポート ウィザードでデフォルト値を承認します。

  5. [完了] をクリックします。インポート プロセスの結果をまとめたテキスト ファイルが表示されます。

  6. ライブラリが settings.gradle ファイルに含まれていることを確認します。

    include ':googlemapssdkm4b_lib'

  7. アプリの build.gradle ファイルに次のコードを追加します。

    dependencies {
        implementation project(':googlemapssdkm4b_lib')
        implementation 'com.android.support:support-v4:+'
        implementation 'com.android.support:appcompat-v7:+'
        implementation 'com.google.android.gms:play-services-basement:15.0.1'
        implementation 'com.google.android.gms:play-services-base:15.0.1'
    }
    
  8. アプリの build.gradle ファイルで、compileSdkVersion を最新バージョンに設定します。

Google Play 開発者サービスを使用する既存の構成を変換

  1. Google Play 開発者サービスを使用する既存のアプリがある場合は、com.google.android.gms.maps パッケージへのすべての参照を com.google.android.m4b.maps に置き換えます。
  2. XML レイアウト属性へのすべての参照に、接頭辞 m4b_ を付けます。たとえば m4b_mapTypem4b_cameraZoom とします。

アプリ マニフェストで設定を指定

Maps SDK for Android を使用する Android アプリでは、マニフェスト ファイル AndroidManifest.xml で次の設定を指定する必要があります。

API キー

認証ガイドの説明に沿ってプロジェクトの API キーを生成し、そのキーを AndroidManifest.xml に追加します。

権限

アプリで必要な利用許可を指定するには、<uses-permission> 要素を <manifest> 要素の子として AndroidManifest.xml に追加します。

位置情報の利用許可

アプリで現在地レイヤを有効にしてユーザーの現在地にアクセスする場合は、位置情報に関するガイドに記載されている手順に沿って、位置情報の利用許可をリクエストする必要があります。

外部ストレージの利用許可

Google Play 開発者サービス SDK のバージョン 8.3 以降を対象としている場合は、WRITE_EXTERNAL_STORAGE の利用許可がなくても Maps SDK for Android を使用できるようになりました。

Google Play 開発者サービス SDK の以前のバージョンを対象としている場合は、android.permission.WRITE_EXTERNAL_STORAGE の利用許可をリクエストする必要があります。

<uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

注: アプリが、ランタイム利用許可の使用が必要な API レベル 23(Android 6.0)を対象としている場合は、Google Play 開発者サービス SDK のバージョン 8.3 以降を対象にする必要があります。

マニフェストに自動的に結合される利用許可

次の利用許可は、Google Play 開発者サービスのマニフェストで定義され、ビルド時に自動的にアプリのマニフェストに結合されます。これらの利用許可を明示的にマニフェストに追加する必要はありません

OpenGL ES version 2

Maps SDK for Android では OpenGL ES version 2 を使用して地図をレンダリングします。 次の設定は、Google Play 開発者サービスのマニフェストで定義され、ビルド時に自動的にアプリのマニフェストに統合されます。この設定を明示的にマニフェストに追加する必要はありません。

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

これにより、外部サービスに要件が通知されます。具体的には、OpenGL ES バージョン 2 に対応していないデバイスでは、Google Play ストアにアプリが表示されなくなります。

地図を追加

簡単な地図を追加することで、アプリが正しく設定されているかどうかを容易にテストすることができます。

  1. activity_main.xml に次のフラグメントを追加します。

    <?xml version="1.0" encoding="utf-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/map"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:name="com.google.android.m4b.maps.MapFragment"/>
    
  2. MainActivity.java に、次のコードを追加します。

    package com.example.mapdemo;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    }
    

アプリをビルドして実行

アプリをビルドして実行します。地図が表示されます。

トラブルシューティング:

  • マップが表示されない場合は、このドキュメントの前半で紹介したすべての手順が完了していることを確認してください。特に、API キーが正しいこと、アカウントで Google Maps Platform プレミアム プランのサービスが有効になっていることを確認してください。

  • プロジェクトのメソッド数がこの上限を超えると、エラーが表示される場合があります。

    Unable to execute dex: method ID not in [0, 0xffff]: 65536

    原因と解決策の詳細については、Android デベロッパー向けガイドで、65 K を超えるメソッドを使用したアプリのビルドに関する部分をご覧ください。

  • プロジェクトがすでに Guava に依存している場合、次のようなクラス競合エラーが表示されることがあります。

    com.android.dex.DexException: Multiple dex files define Lcom/google/common/annotations/Beta

    この問題を解決するには、google-maps-sdk-m4b_lib/libs ディレクトリから Guava のコピーを削除します。

詳細

既存のアプリを移行する方法

プレミアム プランで利用できる Android API は、標準の Maps SDK for Android と非常によく似た設計になっています。そのため、移行プロセスは簡単です。

  1. プレミアム プラン用の Maps SDK for Android をダウンロードし、上記の手順に沿ってプロジェクトに SDK を追加します。
  2. com.google.android.gms.maps パッケージへのすべての参照を com.google.android.m4b.maps に置き換えます。
  3. XML レイアウト属性へのすべての参照に、接頭辞 m4b_ を付けます。たとえば m4b_mapTypem4b_cameraZoom とします。
  4. 認証ガイドの説明に沿って、プロジェクト用の新しい API キーを生成し、そのキーを AndroidManifest.xml に追加します。
  5. アプリをビルドします。

バージョンの比較

次の表は、Maps SDK for Android の標準プランを使用する場合と、プレミアム プランを使用する場合の主な違いを示しています。

  標準の Maps SDK for Android プレミアム プラン
パッケージ名 com.google.android.gms.maps com.google.android.m4b.maps
レイアウト ファイル内の XML 属性 接頭辞を付けずに属性名を使用します。以下に例を示します。 mapType. すべての属性名の前に m4b_ を付けます。以下に例を示します。 m4b_mapType. 詳しくは、XML 属性に関するドキュメントをご覧ください。
ダウンロード先 Google Play 開発者サービスに含まれています。 静的ライブラリとして利用できます。
サポート チャネル コミュニティ サポート プレミアム サポートへのアクセス
利用規約 Google Maps Platform の利用規約が適用されます。 Google Maps Platform プレミアム プランの利用規約が適用されます。

Google Play 開発者サービス

標準の Maps SDK for Android には、Google Play 開発者サービス APK と、Google Play 開発者サービスの maps クライアント ライブラリ(com.google.android.gms:play-services-maps)の両方が必要です。ただし、Google Maps Platform プレミアム プランで使用する場合は、必要なのはターゲット デバイスに Google Play 開発者サービス APK をインストールすることだけです。maps クライアント ライブラリは必要ありません。

アプリケーションをプレミアム プランに移行する場合は、com.google.android.gms.maps パッケージへの参照とともに、プロジェクトから maps クライアント ライブラリを削除する必要があります。マップにアクセスするには、プレミアム プラン SDK(com.google.android.m4b.maps パッケージ)のみを使用してください。

他の Google Play 開発者サービスのクライアント ライブラリを含めて、Google アナリティクスや Google Location、Activity Recognition などの他の Google API を利用することもできます。

サンプルコード

GitHub の Google マップ リポジトリには、Android アプリでの Maps SDK for Android の使用方法を説明するいくつかのサンプルがあります。ただし、サンプルアプリでは com.google.android.gms.maps パッケージを使用します(プレミアム プランで使用される com.google.android.m4b.maps とは異なります)。サンプルアプリでは、Google Play 開発者サービス SDK も必要になります。これは、デモの一部で Location API を使用するためです。

また、デベロッパー ガイドの各ページにコード スニペットも用意されています。

ドキュメント

Google Maps Platform プレミアム プランに関する主な情報源は、Google の他のサイトで参照できるデベロッパー ガイドやリファレンス ドキュメントです。