クイックスタート - マップの追加

このガイドは、地図を表示する Android アプリを作成するためのクイック スタートです。Android Studio は、Maps SDK for Android を使ってアプリをビルドする際に推奨される開発環境です。

ステップ 1. Android Studio をダウンロードする

ガイドに沿って Android Studio をダウンロードしてインストールします。

ステップ 2. Google Play 開発者サービス SDK をインストールする

Android Studio に Google Play 開発者サービスを追加します。

ステップ 3. Google マップ プロジェクトを作成する

次のステップに従って、マップ アクティビティを含む新しいアプリ プロジェクトを作成します。

  1. Android Studio を起動します。
  2. 次のようにして、新しいプロジェクトを作成します。
    • [Welcome to Android Studio] ダイアログが表示されたら、ダイアログの右側の [Quick Start] に示される [Start a new Android Studio project] を選択します。
    • それ以外の場合は、Android Studio メニューバーの [File] をクリックし、[New]、[New Project] の順に選択します。
  3. [Choose your project] ダイアログで、開発するプラットフォームに対応するタブを選択します。ほとんどのユーザーは、デフォルトの [Phone and Tablet] のままにします。
  4. [Google Maps Activity] を選択し、[Next] をクリックします。
  5. アプリ名、パッケージ名、プロジェクトのロケーション、プログラミング言語(Java または Kotlin)、アプリでサポートされている Android API の最小限のレベルを入力して、[Finish] をクリックします。

Android Studio により Gradle が開始され、プロジェクトがビルドされます。この処理には数秒かかることがあります。Android Studio でのプロジェクトの作成について詳しくは、[Android Studio のドキュメント][studio-projects] をご覧ください。

ビルドが完了すると、Android Studio により、エディタで google_maps_api.xml ファイルと MapsActivity.java ファイルが開かれます(アクティビティの名前が異なる場合がありますが、これはセットアップ時に設定した名前になります)。google_maps_api.xml ファイルには、アプリケーションを実行する前に Google Maps API キーを取得するための手順が含まれていることに注意してください。次のセクションでは、API キーの取得についてより詳しく説明します。

ステップ 4. Google Maps API キーを設定する

  1. プロジェクトの課金を有効にします。詳しくは、請求先アカウントを作成するをご覧ください。
  2. Cloud Console で、プロジェクトの Maps SDK for Android を有効にします。詳しくは、API を有効にするをご覧ください。
  3. API キー取得ガイドに従って、API キーを取得、追加、および制限します。

ステップ 5. コードを確認する

テンプレートで提供されるコードを確認します。特に、Android Studio プロジェクト内の以下のファイルを確認してください。

XML レイアウト ファイル

デフォルトでは、アプリのレイアウトを定義する XML ファイルは res/layout/activity_maps.xml にあります。このファイルには、以下のコードが含まれています。

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

マップ アクティビティ Java ファイル

デフォルトでは、マップ アクティビティを定義する Java ファイルの名前は MapsActivity.java です。このファイルには、パッケージ名の後に以下のコードが含まれている必要があります。

Java

// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.maps.example;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     *
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney and move the camera
        LatLng sydney = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions()
                .position(sydney)
                .title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }
}

      

Kotlin

// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.maps.example.kotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.MarkerOptions
import com.google.maps.example.R

internal class MapsActivity : AppCompatActivity(), OnMapReadyCallback {

    private lateinit var mMap: GoogleMap

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_maps)
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        val mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */
    override fun onMapReady(googleMap: GoogleMap) {
        mMap = googleMap

        // Add a marker in Sydney and move the camera
        val sydney = LatLng(-34.0, 151.0)
        mMap.addMarker(MarkerOptions()
            .position(sydney)
            .title("Marker in Sydney"))
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
    }
}
      

マップ アクティビティ ファイルに上記のコードが含まれていない場合は、パッケージ名の後にあるファイルのコンテンツを上記のコードで置き換えます。

ステップ 6. Android デバイスを接続する

アプリの動作を確認する最も簡単な方法は、Android デバイスをパソコンに接続することです。 手順に沿って、Android デバイスでデベロッパー オプションを有効にし、デバイスを検出するようにシステムを設定します。

または、Android Emulator を使ってアプリを実行することもできます。Android Virtual Device(AVD)Manager を使って、アプリのビルド時や実行時に Android Emulator で使用できるようにする仮想デバイスを 1 つ以上設定します。エミュレータを選択する際は、Android 4.1.1 以降を使用するようにしてください。また、Google API を含むイメージを選択するように注意してください。そうしなかった場合、アプリケーションの実行に必要なランタイム API が含まれなくなります。また、仮想マシンのアクセラレーションの設定の手順についても確認してください。これは、手順内で説明されているように、x86 をターゲットとする AVD で使用する必要があります。これにより、エミュレータの操作性が向上します。

ステップ 7. アプリをデプロイして実行する

Android Studio で [Run] メニュー オプション(またはプレイボタン アイコン)をクリックして、アプリを実行します。

デバイスを選択するよう求めるプロンプトが表示されたら、以下のいずれかのオプションを選択します。

  • コンピュータに接続されている Android デバイスを選択します。
  • または、[Launch emulator] ラジオボタンをオンにし、以前に設定した仮想デバイスを選択します。

[OK] をクリックします。Android Studio により、アプリをビルドするために Gradle が起動され、デバイスまたはエミュレータに結果が表示されます。アプリが起動するまでに数分かかる場合があります。

次のステップ

サンプルコードをご覧になることをおすすめします。

マップ オブジェクトについて詳しくは、デベロッパー ガイドをご覧ください。