Maps SDK for Android では、ユーザーの操作が制限された、地図のビットマップ画像を表示できます。これは、ライトモード マップと呼ばれます。
コードサンプル
GitHub の ApiDemos リポジトリには、ライトモードの使用方法を示すサンプルが含まれています。
- LiteDemoActivity - Java: Java でのライトモード マップの基本的な使い方
- LiteDemoActivity - Kotlin: Kotlin でのライトモード マップの基本的な使い方
- LiteListDemoActivity - Java: Java でライトモードを使って ListView に効率的に地図を表示する
- LiteListDemoActivity - Kotlin: Kotlin でライトモードを使って ListView に効率的に地図を表示する
ライトモードの概要
ライトモード マップは、指定された場所とズームレベルの地図のビットマップ画像です。ライトモードでは、すべてのマップタイプ(標準、ハイブリッド、衛星、地形)と、完全な API で提供される機能の一部がサポートされています。ライトモードは、多数の地図を 1 つのストリームで提供する場合や、地図が小さすぎて操作できない場合に役立ちます。
ユーザーは、表示している地図をズームまたはパンすることはできません。地図上のアイコンを使用して、Google マップ モバイルアプリで地図を表示することや、ルートをリクエストすることは可能です。
ライトモード マップの追加
ライトモードでは、完全な Google Maps Android API と同じクラスとインターフェースを使用します。GoogleMap
は次の方法でライトモードに設定できます。
MapView
またはMapFragment
の XML 属性として設定する- または
GoogleMapOptions
オブジェクトで設定する
MapView
または MapFragment
の XML 属性として設定する
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraZoom="13"
map:mapType="normal"
map:liteMode="true"/>
GoogleMapOptions
オブジェクトの場合
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
Kotlin
val options = GoogleMapOptions() .liteMode(true)
地図の初期状態の設定について詳しくは、地図オブジェクトに関するガイドをご覧ください。
地図ビューまたはルート リクエストを起動するインテント
デフォルトでは、地図の右下のツールバーに、Google マップ モバイルアプリで地図を表示したり、ルートをリクエストしたりするためのアイコンが表示されます。ツールバーを無効にするには、UiSettings.setMapToolbarEnabled(false)
を呼び出します。詳しくは、ツールバーに関するドキュメントをご覧ください。
また、デフォルトでは、ユーザーが地図をタップすると、API で Google マップ モバイルアプリが起動されます。これをオーバーライドするには、GoogleMap.setOnMapClickListener()
を使用して独自のリスナーを設定します。MapView
または MapFragment
を含むビューで setClickable()
を呼び出して、地図のクリック イベントを無効にすることもできます。これら 2 つの手法について詳しくは、イベントに関するドキュメントをご覧ください。
ライフサイクル イベント
完全なインタラクティブ モードで API を使用する場合、MapView
クラスのユーザーはすべてのアクティビティ ライフサイクル メソッドを、MapView
クラスの対応するメソッドに転送する必要があります。ライフサイクル メソッドには、onCreate()
、onDestroy()
、onResume()
、onPause()
などがあります。
ライトモードで MapView
クラスを使用する場合は、ライフサイクル イベントを転送しなくてもかまいませんが、以下の場合は例外となります。
onCreate()
の呼び出しは必須です。呼び出さなかった場合は、地図が表示されません。- ライトモードの地図に現在地のドットを表示して、デフォルトの位置情報を使用する場合は、
onResume()
とonPause()
を呼び出す必要があります。これは、位置情報の更新がこれらの呼び出しの間でのみ行われるためです。独自の位置情報を使用する場合は、これら 2 つのメソッドを呼び出す必要はありません。
サポートされている API 機能
以下の表は、ライトモード マップの動作を API の機能の領域ごとにまとめたものです。ライトモードでサポートされていないメソッドがアプリで呼び出された場合は、API で警告メッセージが記録されます。
機能 | |
---|---|
地図タイプ | サポートされているか?○
GoogleMapOptions.mapType() と GoogleMap.setMapType() で使用可能な地図タイプ: MAP_TYPE_NORMAL 、MAP_TYPE_SATELLITE 、MAP_TYPE_TERRAIN 、MAP_TYPE_HYBRID 、MAP_TYPE_NONE |
ポリライン、ポリゴン、円 | サポートされているか?○
ライトモードのシェイプの機能は、完全な API のものと同じです。 |
投影 | サポートされているか?○
ライトモードの投影の機能は、完全な API のものと同じです。 |
現在地 | サポートされているか?○
ライトモードの現在地レイヤの機能は、完全な API のものと同じです。 |
地図のパディング | サポートされているか?○
ライトモードの地図のパディング機能は、完全な API のものと同じです。 |
情報ウィンドウ | サポートされているか?○
マーカーの title() を設定すると、ユーザーがマーカーをタップしたときにデフォルトの情報ウィンドウが表示されるようになります。情報ウィンドウをプログラムで表示するには、マーカーで showInfoWindow() を呼び出します。InfoWindowAdapter インターフェースからカスタムの情報ウィンドウを作成することもできます。 |
カスタム スタイルの基本地図 | サポートされているか?一部のみ
Maps SDK for Android では、基本地図のカスタム スタイルがサポートされています。ライトモードでは、JSON ベースのカスタム スタイルのみがサポートされます。スタイル付き地図をレンダリングするためにマップ ID を必要とするクラウドベースのスタイル設定はサポートされていません。 |
マーカー | サポートされているか?一部のみ
マーカーを追加すると、クリック イベントに応答することができます。カスタムのマーカー アイコンを追加することもできます。マーカーをドラッグ可能にすることはできません。ライトモード マップのマーカーは平面のため、回転できません。 |
カメラの位置、ズーム、アニメーション | サポートされているか?一部のみ
カメラの対象とズームは設定できますが、傾斜と方向は設定できません。
ライトモードでは、ズームレベルは最も近い整数になるよう四捨五入されます。
|
地図のイベント | サポートされているか?一部のみ
ライトモードでは ライトモードの地図でクリック イベントを無効にするには、 詳しくは、イベントに関するドキュメントをご覧ください。 |
インドアマップと建物 | サポートされているか?×
ライトモードでは、Maps Static API と同じタイルが表示されます。
つまり、屋内の構内図は、デフォルトのタイルに埋め込まれている場合は表示されるということです。埋め込まれていない場合は表示されません。また、表示されているレベルを変更したり、レベルピッカーを操作したりすることもできません。 |
交通状況レイヤ | サポートされているか?×
ライトモードでは GoogleMap.setTrafficEnabled() はサポートされていません。 |
地面オーバーレイ | サポートされているか?×
ライトモードでは GoogleMap.addGroundOverlay() はサポートされていません。 |
タイル オーバーレイ | サポートされているか?×
ライトモードでは GoogleMap.addTileOverlay() はサポートされていません。 |
操作 | サポートされているか?×
ライトモードでは操作はサポートされていません。操作を有効または無効にしても、それが反映されることはありません。 |
ストリートビュー | サポートされているか?×
ライトモードではストリートビューはサポートされていません。 |