[Android] Google Map 簡単に地図を表示させる

Google Mapアプリを作る場合には、「Google Map API v2 キー」ができていれば、プロジェクトの新規作成でMAPアプリを選択すると簡単に出来上がります。
 

gmap_1
gmap_3

Android Studio 3.0.1
Android 8.0

 



Google Map アプリ

 
マップアプリは、簡単にIntentでアプリに飛ばしてしまうこともできますが->Intentでの簡単なGoogle Map 地図の表示
プロジェクトで Mapアプリ選択しても簡単にできます。

以下3ステップでできます
尚、以下はデバッグのケースです

  1. Google Map API v2 キーの取得
  2. 新規プロジェクトで Map アプリを作成
  3. キーを記述

ここでは、デフォルトの地図を表示させた後に
特定の緯度、経度を指定して地図を拡大ズームさせるところまで試してみます。
 

 

プロジェクトで Map アプリを選択

 
キーは取得済みとして進めていきます
 
プロジェクトを新規で作成するときにMAPアプリを選ぶと簡単にセットアップされます
Google Maps Activity を選択
 

 
出来上がったコードに google_maps_api.xml ができています

このファイルのgoogle_maps_key にキー「Google Map API v2 キー」を入れます
キーはプロジェクト名と紐づいて作成したと思いますので、別のものを持ってこないようにします。

(例)

 
これで作業は終わりです。
実行させると、シドニーにマークされた地図が表示されると思います。
 
gmap_1

 

Map アプリ

 
コードが以下のようにできています。
(Google Maps Activity で作成されたままです)
 
MapsActivity.java

 
activity_maps.xml

 
google_maps_api.xml

 
AndroidManifest.xml

 

緯度、経度、ズーム

 
できているコードに変更を加えてみます。緯度経度とズームの指定は

を使ってできます
 
MapsActivityの中のonMapReadyで設定します

 
gmap_3

 

本番用の Google Map API v2

 
いままで、デバッグのケースで説明しましたが、デバッグとはUSBで実機をつないでのデバッグまでです。

release key:
実際に、apkをreleaseで作成して実機にインストールしAndroid Studio を起動しUSBをつなぐとエラーが表示されます。
例;

ここで出力されている

をGoogle Developers Console のプロジェクトに設定します
Google Maps API v2 キーを取得  を参考にしてください

もしも、API Key: AHHHHHHHHHHHtac4i-XxUUUUUUUYf3s が
打ち込んだものと異なる場合は、直接 AndroidManifestに記述したほうがいいでしょう

一度エラーとなると
そのapkとAndroid環境は使えませんので

apk のアンインストール
Android 再起動
新しいapkをインストール

の手順が必要になります

 

Error:

 
app:transformClassesWithDexForDebug

 
multiDexEnabled trueをgradleに追加します。

Google  Play ServicesのUpdate問題発生


[UPDATE]をクリックしても何も起きない

gradleのdependenciesの play-services-maps バージョンが
emulator、実機の Google  Play Services のバージョンより高いとこのエラーになります。
 
build.gradle

 
設定のアプリ一覧からGoogle Play Servicesを探します。
 

 

 
対策としてはplay-services-mapsのバージョンを下げるか、emulatorであればバージョンの低い古いAPI levelを設定するなどです。
 
 
関連ページ:

References:
API キーの取得 | Google Maps Android API | Google Developers
スタートガイド | Google Maps Android API | Google Developers
GitHub の Google マップ リポジトリ
Google Maps Android API – Google Developers
OnMapReadyCallback | Google APIs for Android | Google Developers