ユーザーが地図を操作できるようにする

次のテンプレートを使用すると、地図のさまざまな部分を確認するためのズームやパンといった、ユーザーによる地図の操作をサポートする機能を追加できます。

テンプレート 自動車向けアプリの API レベルのサポート
NavigationTemplate 2

PlaceListNavigationTemplate

(非推奨)

4

RoutePreviewNavigationTemplate

(非推奨)

4

MapTemplate

(非推奨)

5 (テンプレートの導入)
MapWithContentTemplate 7 (テンプレートの導入)

インタラクティビティ コールバックを実装する

SurfaceCallback インターフェースには、前のセクションのテンプレートで作成された地図にインタラクティビティを追加するために実装できるコールバック メソッドがいくつかあります。

操作 メソッド 自動車向けアプリの API レベルのサポート
タップ onClick 5
ピンチしてズーム onScale 2
シングルタップ ドラッグ onScroll 2
シングルタップ フリング onFling 2
ダブルタップ

onScale

(テンプレート ホストがスケーリング ファクタを決定)

2
パンモードの回転ナッジ

onScroll

(テンプレート ホストによって距離ファクタが決定される)

2

マップ アクション ストリップを追加する

これらのテンプレートでは、地図に関連する操作(拡大 / 縮小、センタリング、コンパスの表示など、アプリで可能にする操作)に対応する、マップ アクション ストリップを設定できます。マップ アクション ストリップには、タスクの階層を変更することなく更新できる、アイコンのみのボタンを 4 つまで設定できます。アクション ストリップは、アイドル状態では非表示になり、アクティブな状態になると再び表示されます。

マップ インタラクティビティ コールバックを受け取るようにするには、マップ アクション ストリップに Action.PAN ボタンを追加する必要があります。ユーザーが [パン] ボタンを押すと、パンモードについてで説明しているように、ホストがパンモードに入ります。

アプリのマップ アクション ストリップに Action.PAN ボタンを設定しない場合、SurfaceCallback メソッドからユーザー入力を取得できず、ホストで有効になっていたパンモードが終了します。

タッチスクリーンでは、[パン] ボタンは表示されません。

パンモードについて

パンモードでは、ノンタッチの入力デバイス(ロータリー コントローラやタッチパッドなど)からのユーザー入力が、テンプレート ホストによって適切な SurfaceCallback メソッドに変換されます。パンモードを開始または終了するユーザー操作には、NavigationTemplate.BuildersetPanModeListener メソッドで応答します。ユーザーがパンモードのときは、テンプレートの他の UI コンポーネントを非表示にできます。