控制項和手勢

選取平台: Android iOS JavaScript

您可以使用 Maps SDK for Android,指定要在地圖上顯示的內建 UI 元件及允許的手勢,自訂使用者與地圖的互動方式。

程式碼範例

GitHub 上的 ApiDemos 存放區有各種控制項和手勢選項的使用說明範例:

具備基本互動功能的精簡模式

如果您只需要具備基本互動功能的簡易形式地圖,建議使用精簡模式地圖。精簡模式會以指定的位置和縮放等級提供地圖的點陣圖圖片,使用者無法平移或縮放地圖,也無法使用手勢。詳情請參閱精簡模式指南。

UI 控制項

Maps API 提供內建的 UI 控制項,與 Android 手機中 Google 地圖應用程式的控制項類似。您可以透過 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 地圖行動應用程式中檢視地圖或要求規劃路線。使用者輕觸工具列上的圖示時,API 便會建立意圖,在 Google 地圖行動應用程式中啟動對應活動。

地圖工具列

工具列顯示於地圖右下角 (請見上方螢幕截圖)。 視地圖內容而定,只要 Google 地圖行動應用程式支援產生的意圖,地圖上就會顯示「零」或「一」的意圖圖示,或兩個同時顯示。

地圖手勢

使用 Maps SDK for Android 建立的地圖,都會支援 Google 地圖應用程式支援的手勢。但有些情況下,為維持地圖狀態,您可能會想停用某些手勢。您也可以透過程式輔助設定縮放、平移、傾斜和航向;詳情請參閱「攝影機和檢視畫面」。請注意,停用手勢並不影響能否透過程式輔助方式改變攝影機位置。

和 UI 控制項一樣,您可以呼叫 GoogleMap.getUiSettingsGoogleMap 取得 UiSettings 類別,再使用此類別啟用/停用手勢。以這個類別進行的變更會立即反映在地圖上。如要查看這些功能的範例,請參閱範例應用程式中的 UI 設定示範活動 (安裝方式請參閱這裡)。

當您透過 XML 屬性或使用 GoogleMapOptions 類別建立地圖時,也可以設定這些選項。 詳情請參閱「設定地圖」。

縮放手勢

地圖會回應可改變攝影機縮放等級的各種手勢:

  • 輕觸兩下可使縮放等級增加 1 級 (放大)。
  • 雙指輕觸可使縮放等級減少 1 級 (縮小)。
  • 雙指撥動/延伸
  • 單指輕觸兩下,第二下按住不放,接著向上滑動即可縮小,向下滑動則可放大。

您可以呼叫 UiSettings.setZoomGesturesEnabled(boolean) 停用縮放手勢,這並不影響使用者能否運用縮放控制項來放大和縮小。

捲動 (平移) 手勢

使用者用手指拖曳地圖,即可捲動 (平移) 地圖。 您可以呼叫 UiSettings.setScrollGesturesEnabled(boolean) 停用捲動功能。

傾斜手勢

使用者將兩根手指放在地圖上,同時下移可增加地圖的傾斜角度;上移則會縮小傾斜角度。您可以呼叫 UiSettings.setTiltGesturesEnabled(boolean) 停用傾斜手勢。

旋轉手勢

使用者將兩根手指放在地圖上做出旋轉動作,即可旋轉地圖。您可以呼叫 UiSettings.setRotateGesturesEnabled(boolean) 停用旋轉功能。