控制項和手勢

選取平台: Android iOS JavaScript

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

地圖控制選項

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

指南針

在某些情況下,Maps SDK for iOS 會提供指南針圖形 (顯示在地圖右上角)。只有在攝影機朝向非零航向時,指南針才會顯示。使用者按一下指南針後,攝影機會移動回航向為零的位置 (預設方向),指南針隨後也會消失。

指南針預設為停用。只要將 GMSUISettings 的 compassButton 屬性設為 YES,即可啟用指南針。但無法強制指南針保持顯示。

Swift

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

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815
                                                        longitude:-122.50764
                                                             zoom:12];
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = camera;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
mapView.settings.compassButton = YES;
      

我的位置按鈕

只有在啟用「我的位置」按鈕時,畫面右下角才會顯示「我的位置」按鈕。使用者點選按鈕後,攝影機會移動並聚焦於使用者的目前位置 (如果已知)。如要啟用按鈕,請將 GMSUISettings 的 myLocationButton 屬性設為 YES。

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

樓層挑選器

只要室內地圖明顯顯示,樓層挑選器控制項就會出現在畫面右下方附近。如有兩張以上的室內地圖可顯示,樓層挑選器會與距離螢幕中央最近的建築物建立關聯。每個建築物都有預設樓層,系統會在首次顯示挑選器時選取這個樓層,使用者也可以從挑選器中選取其他樓層。

如要停用樓層挑選器控制項,請將 GMSUISettings 的 indoorPicker 屬性設為 NO。

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

地圖手勢

您可以設定 GMSUISettings 類別的屬性,停用地圖上的預設手勢。GMSUISettings 類別是 GMSMapView 的屬性。下面的手勢可以啟用和禁用編程。請注意,停用手勢並不會限制透過程式輔助方式存取攝影機設定。

  • scrollGestures:控制是否啟用捲動手勢。如果啟用,用戶可刷卡平移相機。
  • zoomGestures:控制是否啟用縮放手勢。啟用後,使用者可以輕觸兩下、用兩指輕觸或雙指撥動,縮放相機畫面。請注意,啟用 scrollGestures 時,輕觸兩下或雙指撥動可能會將攝影機平移至指定點。
  • tiltGestures:控制是否啟用傾斜手勢。啟用後,使用者可以垂直向下或向上滑動兩指,傾斜攝影機。
  • rotateGestures:控制是否啟用旋轉手勢。啟用後,使用者可以用兩指旋轉手勢旋轉攝影機。

在下方範例中,平移和縮放手勢都已停用。

Swift

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

  let options = GMSMapViewOptions()
  options.camera = camera
  let mapView = GMSMapView(options: options)
  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];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  mapView.settings.scrollGestures = NO;
  mapView.settings.zoomGestures = NO;
  self.view = mapView;
}