Maps SDK for Android を使用すると、地図に表示する組み込みの UI コンポーネントや許可する操作を指定して、ユーザーが地図を操作する方法をカスタマイズできます。.
コードサンプル
GitHub の ApiDemos リポジトリには、コントロールおよび操作オプションの使用方法を示すサンプルが含まれています。
- UiSettingsDemoActivity: Kotlin サンプル
- UiSettingsDemoActivity: Java サンプル
ライトモードでユーザー操作を最小限に抑える
ユーザー操作を最小限に抑えた軽量版の地図を使用したい場合は、ライトモードの地図の使用をご検討ください。ライトモードでは、指定した場所とズームレベルの地図のビットマップ画像が表示されます。ライトモードでは、ユーザーが地図のパンやズームなどの操作を行うことはできません。詳しくは、ライトモードに関するガイドをご覧ください。
UI コントロール
Maps API には、Android スマートフォン向けの Google マップ アプリのものと同様の組み込みの UI コントロールが用意されています。これらのコントロールの表示と非表示を切り替えるには、GoogleMap.getUiSettings
メソッドで GoogleMap
から取得可能な UiSettings
クラスを使用します。このクラスに変更を加えると、直ちに地図に反映されます。これらの機能のサンプルについては、サンプルアプリの UI 設定のデモ アクティビティをご覧ください。
これらのオプションの大半は、地図の作成時に XML 属性または GoogleMapOptions
クラスを使用して設定することもできます。詳しくは、初期状態の設定に関する説明をご覧ください。
各 UI コントロールには、地図の端からの相対位置が事前定義されています。
コントロールを上端、下端、左端、または右端から移動するには、GoogleMap
オブジェクトにパディングを追加します。
ズーム コントロール
Maps API を使用して、地図の右下に組み込みのズーム コントロールを表示することができます。これらのコントロールは、デフォルトでは無効になっていますが、UiSettings.setZoomControlsEnabled(true)
を呼び出して有効にできます。
コンパス
Maps API を使用して、特定の状況下で地図の左上にコンパス グラフィックを表示することができます。コンパスは、カメラの向きをゼロ以外の方向または傾斜として指定している場合にのみ表示されます。ユーザーがコンパスをクリックすると、カメラの方向と傾斜がゼロの位置(デフォルトの向き)に戻る様子がアニメーション表示されてから、間もなくコンパスが消えます。コンパスの表示を完全に無効にするには、UiSettings.setCompassEnabled(boolean)
を呼び出します。
ただし、コンパスが常に表示されるように設定することはできません。
現在地ボタン
現在地ボタンは、現在地レイヤが有効になっている場合にのみ、画面の右上に表示されます。詳しくは、位置情報に関するガイドをご覧ください。
レベルピッカー
デフォルトでは、ユーザーが構内図を表示しているときに、画面の右端の中央付近にレベルピッカー(階数ピッカー)が表示されます。複数の構内図が表示されている場合は、現在フォーカスされている建物(通常は画面の中央に最も近い建物)にレベルピッカーが適用されます。 それぞれの建物にはデフォルトのレベルが設定され、ピッカーが最初に表示されたときに選択された状態になっています。ユーザーは、ピッカーを使用して別のレベルを選択できます。
レベルピッカー コントロールを無効または有効にするには、GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean)
を呼び出します。
これは、デフォルトのレベルピッカーを独自のものに置き換える場合に役立ちます。
マップ ツールバー
デフォルトでは、ユーザーがマーカーをタップすると地図の右下にツールバーが表示されます。ユーザーは、ツールバーを使用して Google マップ モバイルアプリに簡単にアクセスできます。
ツールバーを有効または無効にするには、UiSettings.setMapToolbarEnabled(boolean)
を呼び出します。
ライトモードの地図では、ツールバーはユーザーのアクションに関係なく常に表示されます。完全なインタラクティブ モードの地図では、ユーザーがマーカーをタップするとツールバーがスライドインし、マーカーがフォーカスから外れるとツールバーが再度スライドアウトします。
ツールバーには、Google マップ モバイルアプリの地図ビューやルート リクエストにアクセスするためのアイコンが表示されます。ユーザーがツールバーのアイコンをタップすると、Google マップ モバイルアプリで対応するアクティビティを起動するためのインテントが API で作成されます。
上のスクリーンショットでは、ツールバーが地図の右下に表示されています。 作成されるインテントが Google マップ モバイルアプリでサポートされている場合は、地図のコンテンツに応じて、インテント アイコンがまったく表示されないか、1 個または両方表示されます。
地図の操作
Maps SDK for Android で作成された地図では、Google マップ アプリと同じ操作を行うことができますが、地図の状態を保存するには、特定の操作を無効にすることが必要になる場合があります。ズーム、パン、傾斜、方向をプログラムで設定することもできます。詳しくは、カメラとビューをご覧ください。なお、操作を無効にしても、カメラの位置をプログラムで変更できるかどうかには影響しません。
操作を有効または無効にするには、UI コントロールと同様に、GoogleMap.getUiSettings
を呼び出して GoogleMap
から取得可能な UiSettings
クラスを使用します。このクラスに変更を加えると、直ちに地図に反映されます。これらの機能の例については、サンプルアプリの UI 設定のデモ アクティビティをご覧ください(インストール方法については、こちらを参考にしてください)。
地図の作成時に XML 属性または GoogleMapOptions
クラスを使用して、これらのオプションを設定することもできます。
詳しくは、地図の設定をご覧ください。
ズーム操作
地図では、さまざまな操作に応答することで、カメラのズームレベルを変更できるようになっています。
- ズームレベルを 1 つ上げる(拡大する)には、ダブルタップします。
- ズームレベルを 1 つ下げる(縮小する)には、2 本の指でタップします。
- 2 本の指でピンチまたはストレッチ操作
- 1 本の指でズームするには、ダブルタップの 2 回目のタップで長押ししたまま、指を上にスライドするか(縮小する場合)、下にスライドします(拡大する場合)。
ズーム操作を無効にするには UiSettings.setZoomGesturesEnabled(boolean)
を呼び出します。これを無効にしても、ユーザーが拡大や縮小を行うためのズーム コントロールを使用できるかどうかには影響しません。
スクロール(パン)操作
地図をスクロール(パン)するには、指でドラッグします。
スクロールを無効にするには UiSettings.setScrollGesturesEnabled(boolean)
を呼び出します。
傾斜操作
地図を傾斜させるには、地図に 2 本の指を置いて一緒に上または下に動かします。傾斜操作を無効にするには UiSettings.setTiltGesturesEnabled(boolean)
を呼び出します。
回転操作
地図を回転させるには、地図に 2 本の指を置いて回します。回転を無効にするには UiSettings.setRotateGesturesEnabled(boolean)
を呼び出します。