以上で完了です。

開発を始めるには、デベロッパー ドキュメント をご覧下さい。

Google Maps Android API をアクティベートする

まず初めに Google Developers Console で次の作業を行います。

  1. プロジェクトを作成または選択する
  2. Google Maps Android API をアクティベートする
  3. 適切なキーを作成する
続ける

マーカーが配置されたマップを追加する

このチュートリアルでは、Google マップを Android アプリに追加する方法を説明します。 このマップには、特定の場所を示すマーカー(ピン)が含まれています。

このチュートリアルの手順に沿って、Google Maps Android API を使用して Android アプリを作成してみましょう。 推奨される開発環境は Android Studio です。

コードを取得する

GitHub から Google Maps Android API v2 Samples リポジトリのクローンを作成するか、このレポジトリをダウンロードします

開発プロジェクトをセットアップする

次のステップに従って、Android Studio でチュートリアル プロジェクトを作成します。

  1. Android Studio をダウンロードしてインストールします。
  2. Google Play サービス パッケージを Android Studio に追加します。

  3. このチュートリアルの開始時にコードを取得していない場合は、Google Maps Android API v2 Samples レポジトリのクローンを作成するか、このレポジトリをダウンロードします

  4. チュートリアル プロジェクトをインポートします。

    • Android Studio で、[File] > [New] > [Import Project] を選択します。
    • Google Maps Android API v2 Samples レポジトリをダウンロードして保存した場所に移動します。

    • その場所で、MapWithMarker プロジェクトを見つけます。
      PATH-TO-SAVED-REPO/android-samples/tutorials/MapWithMarker

    • プロジェクト ディレクトリを選択して [OK] をクリックします。 これで、Android Studio で Gradle ビルドツールを使用してプロジェクトがビルドされます。

API キーを取得して必要な API を有効にする

このチュートリアルを完了するには、Google Maps Android API の使用が承認されている Google API キーが必要です。

下のボタンをクリックしてキーを取得し、API をアクティベートしてください。

キーを取得

詳細については、包括的な API キー取得ガイドを参照してください。

アプリに API キーを追加する

  1. プロジェクトの gradle.properties ファイルを編集します。
  2. 取得した API キーを GOOGLE_MAPS_API_KEY プロパティの値に貼り付けます。 以下に説明するように、アプリをビルドするときに、Gradle により API キーがアプリの Android マニフェストにコピーされます。

    GOOGLE_MAPS_API_KEY=PASTE-YOUR-API-KEY-HERE
    

アプリをビルドして実行する

  1. Android 端末をコンピュータに接続します。 手順に従って、ご使用の Android 端末で開発者向けオプションを有効にし、端末を検出するようにシステムを設定します。 (または、Android Virtual Device (AVD) Manager を使用して仮想デバイスを設定できます。 エミュレータを選択するときに、Google API を含むイメージを選択するようにしてください。 詳細については、スタートガイドをご覧ください。)
  2. Android Studio で [Run] メニュー オプション(またはプレイボタンのアイコン)をクリックします。

指示に従って端末を選択します。

Android Studio で Gradle が起動して、アプリがビルドされます。次に、アプリが端末またはエミュレータ上で実行されます。 このページの画像のように、オーストラリア東海岸のシドニーを指すマーカーが配置されたマップが表示されるはずです。

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

  • マップが表示されない場合は、前述のとおりに API キーを取得してアプリに追加していることを確認してください。 Android Studio の Android Monitor のログで、API キーに関するエラー メッセージがあるかどうか確認してください。

  • Android Studio デバッグ ツールを使用して、ログを表示してアプリをデバッグしてください。

コードを理解する

チュートリアルのこのパートでは、CurrentPlaceDetailsOnMap アプリの最も重要な部分について説明します。この内容は、同様のアプリの作成方法を理解する上で役に立ちます。

Android マニフェストを確認する

アプリの AndroidManifest.xml ファイルに含まれている次の要素に注目してください。

  • meta-data 要素を追加すると、このアプリのコンパイルに使用された Google Play サービスのバージョンが埋め込まれます。

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    
  • API キーを指定する meta-data 要素を追加します。 このチュートリアルに付属しているサンプルは、API キーの値を文字列 google_maps_key にマッピングします。

アプリをビルドすると、Gradle はプロジェクトの gradle.properties ファイルからこの文字列値に API キーをコピーします。

    <meta-data
      android:name="com.google.android.geo.API_KEY"
      android:value="@string/google_maps_key" />

API キーがどのように文字列値にマッピングされているのかを確認するには、アプリの `build.gradle` をご覧ください。

このファイルには、文字列 google_maps_key を gradle のプロパティ GOOGLE_MAPS_API_KEY にマッピングする次の行が含まれています。

      resValue "string", "google_maps_key",
              (project.findProperty("GOOGLE_MAPS_API_KEY") ?: "")

以下に、マニフェスト全体の例を示します。

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <!--
             The API key for Google Maps-based APIs.
        -->
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

        <activity
            android:name=".MapsMarkerActivity"
            android:label="@string/title_activity_maps">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

マップの追加

Google Maps Android API を使用してマップを表示します。

  1. <fragment> 要素をアクティビティのレイアウト ファイル activity_maps.xml に追加します。 この要素は、マップのコンテナとして機能するように SupportMapFragment を定義し、GoogleMap オブジェクトへのアクセス権を付与します。 このチュートリアルでは、Android サポート ライブラリ バージョンのマップ フラグメントを使用して、以前のバージョンの Android フレームワークとの下位互換性を確保しています。

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.mapwithmarker.MapsMarkerActivity" />
    
    

  2. アクティビティの onCreate() メソッドで、レイアウト ファイルをコンテンツ ビューとして設定します。 FragmentManager.findFragmentById() を呼び出して、マップ フラグメントのハンドルを取得します。 その後、getMapAsync() を使用して、マップ コールバックを登録します。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Retrieve the content view that renders the map.
        setContentView(R.layout.activity_maps);
        // Get the SupportMapFragment and request notification
        // when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }
    

  3. OnMapReadyCallback インターフェースを実装し、onMapReady() メソッドをオーバーライドして、GoogleMap オブジェクトが利用可能になったらマップをセットアップします。

    public class MapsMarkerActivity extends AppCompatActivity
            implements OnMapReadyCallback {
        // Include the OnCreate() method here too, as described above.
        @Override
        public void onMapReady(GoogleMap googleMap) {
            // Add a marker in Sydney, Australia,
            // and move the map's camera to the same location.
            LatLng sydney = new LatLng(-33.852, 151.211);
            googleMap.addMarker(new MarkerOptions().position(sydney)
                    .title("Marker in Sydney"));
            googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
        }
    }
    

デフォルトでは、Google Maps Android API は、ユーザーがマーカーをタップすると、情報ウィンドウのコンテンツを表示します。 デフォルトの動作で十分であれば、マーカーのクリック リスナーを追加する必要はありません。

次のステップ

マップ オブジェクトと[マーカー]の機能についてさらに詳しく学びます。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。