控制項和手勢

選取平台: Android iOS JavaScript

您可以運用 Maps SDK for iOS 自訂 如何與地圖互動,方法是判斷哪些內建 UI 元件 以及可使用的手勢。

地圖控制項

Maps SDK for iOS 提供一些內建的 UI 控制項, (類似於 iOS 版 Google 地圖應用程式)。您可以使用 GMSUISettings 類別切換這些控制項的顯示設定。就這一類的變化會立即反映在地圖上。

指南針

Maps SDK for iOS 提供指南針圖形,顯示在 (在特定情況下會顯示地圖的右上角)。指南針只會 當相機朝向非零航向時。當 當使用者按一下指南針,攝影機就會回到帶有航向的位置 零 (預設方向) 且指南針隨後逐漸消失。

指南針預設為停用。您可以啟用指南針,方法是設定 「compassButton」屬性:GMSUISettingsYES。不過,您無法 強制指南針保持顯示。

Swift

let camera = GMSCameraPosition(latitude: 37.757815, longitude: -122.50764, zoom: 12)
let mapView = GMSMapView(frame: .zero, camera: camera)
mapView.settings.compassButton = true
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815
                                                        longitude:-122.50764
                                                             zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.settings.compassButton = YES;
      

我的位置按鈕

「我的位置」按鈕只會顯示在畫面的右下角 當「我的位置」按鈕啟用時。使用者點選按鈕時, 如果使用者的位置,相機動畫將焦點放在使用者的目前位置 目前已知。您只需設定 「myLocationButton」屬性:GMSUISettingsYES

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

樓層挑選器

每當有參與者 室內地圖是最顯眼的位置。當系統顯示兩張以上的室內地圖時,樓層挑選器會與距離螢幕中央最近的建築物相關聯。每項 建築物有預設樓層,系統會在第一批選擇工具時選取這個樓層 高度。您可以從選擇器中選擇其他樓層。

您可以設定 indoorPicker 屬性,停用樓層挑選器控制項 第 GMSUISettingsNO 列。

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

地圖手勢

您可以設定 GMSUISettings 類別,可做為 GMSMapView 的屬性使用。 下面的手勢可以啟用和禁用編程。請注意, 停用手勢不會限製程式輔助存取權 可以管理叢集設定,像是節點 資源調度、安全性和其他預先設定項目

  • scrollGestures:控管是否啟用捲動手勢或 已停用。如果啟用,用戶可刷卡平移相機。
  • zoomGestures:控管是否要啟用縮放手勢 啟用或停用如果啟用,使用者可能會輕觸兩下、雙指輕觸,或以雙指撥動, 放大相機。請注意,在 scrollGestures 時輕觸兩下或雙指撥動 會使相機平移到指定點。
  • tiltGestures:控管是否要啟用或啟用傾斜手勢 已停用。如果啟用,使用者即可使用雙指垂直向下或向上滑動 即可傾斜相機。
  • rotateGestures:控管是否要啟用旋轉手勢 啟用或停用如果啟用,使用者將可使用兩指旋轉手勢, 旋轉相機。

在下方範例中,平移和縮放手勢都無法使用。

Swift

override func loadView() {
  let camera = GMSCameraPosition.camera(
    withLatitude: 1.285,
    longitude: 103.848,
    zoom: 12
  )

  let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
  mapView.settings.scrollGestures = false
  mapView.settings.zoomGestures = false
  self.view = mapView
}
      

Objective-C

- (void)loadView {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView.settings.scrollGestures = NO;
  mapView.settings.zoomGestures = NO;
  self.view = mapView;
}