ライトモード

Maps SDK for Android では、マップのビットマップ画像を表示し、ユーザーの操作性を制限することができます。これは、ライトモード マップと呼ばれます。

コードサンプル

GitHub の ApiDemos リポジトリには、ライトモードの使用方法を示したサンプルが含まれています。

ライトモードの概要

ライトモード マップは、指定された位置とズームレベルでのマップのビットマップ画像です。ライトモードでは、すべてのマップタイプ(標準、ハイブリッド、衛星、地形)と、完全な 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 オブジェクトで設定する

GoogleMapOptions options = new 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_NORMALMAP_TYPE_SATELLITEMAP_TYPE_TERRAINMAP_TYPE_HYBRIDMAP_TYPE_NONEマップタイプを使用できます。
ポリライン、ポリゴン、円
サポートされているか?
ライトモードの図形の機能は、完全な API のものと同じです。
投影
サポートされているか?
ライトモードの投影の機能は、完全な API のものと同じです。
現在地
サポートされているか?
ライトモードの現在地レイヤの機能は、完全な API のものと同じです。
マップのパディング
サポートされているか?
ライトモードのマップのパディングの機能は、完全な API のものと同じです。
情報ウィンドウ
サポートされているか?
マーカーの title() を設定すると、ユーザーがマーカーをタップしたときにデフォルトの情報ウィンドウが表示されるようになります。マーカーで showInfoWindow() を呼び出すと、情報ウィンドウをプログラムで表示できます。InfoWindowAdapter インターフェースからカスタム情報ウィンドウを作成することも可能です。
カスタム スタイルの基本地図
サポートされているか?
Maps SDK for Android では、基本地図のカスタム スタイル設定がサポートされています。
マーカー
サポートされているか?一部のみ
マーカーを追加して、クリック イベントに応答できます。カスタム マーカー アイコンを追加することも可能です。マーカーをドラッグ可能にすることはできません。ライトモード マップのマーカーはフラットで、回転できません。
カメラの位置、ズーム、アニメーション
サポートされているか?一部のみ

カメラのターゲットとズームは設定できますが、チルトと方向指定は設定できません。 ライトモードでは、ズームレベルは最も近い整数に丸められます。 GoogleMap.moveCamera() を呼び出すと、ライトモード マップの別の画像が表示されます。カメラの設定と操作について詳しくは、ビューの変更をご覧ください。

GoogleMap.animateCamera() を呼び出してもカメラの移動はアニメーションでは表示されず、カメラビューはすぐに新しい位置に移動します。

地図のイベント
サポートされているか?一部のみ

ライトモードでは GoogleMap.setOnMapClickListener()GoogleMap.setOnMapLongClickListener() がサポートされています。

ライトモードのマップでクリック イベントを無効にするには、MapView または MapFragment を含むビューで setClickable() を呼び出します。これは、リストビューで 1 つ以上のマップを表示している場合などに、クリック イベントによってマップに関係のないアクションを呼び出す必要がある場合などに役立ちます。

詳しくは、イベントのドキュメントをご覧ください。

インドアマップと建物
サポートされているか?×
ライトモードでは、Maps Static API と同じタイルが表示されます。 これは、屋内の構内図がデフォルトのタイルに埋め込まれている場合、それが表示されるということです。埋め込まれていない場合は表示されません。また、表示されているレベルの変更や、レベルピッカーの操作は行えません。
交通状況レイヤ
サポートされているか?×
ライトモードでは GoogleMap.setTrafficEnabled() はサポートされていません。
地面オーバーレイ
サポートされているか?×
ライトモードでは GoogleMap.addGroundOverlay() はサポートされていません。
タイル オーバーレイ
サポートされているか?×
ライトモードでは GoogleMap.addTileOverlay() はサポートされていません。
操作
サポートされているか?×
ライトモードでは操作はサポートされていません。操作を有効または無効にしても効果はありません。
ストリートビュー
サポートされているか?×
ライトモードではストリートビューはサポートされていません。