借助 Maps SDK for iOS,您可以自定义 与您的地图交互 以及允许使用哪些手势。
地图控件
Maps SDK for iOS 提供了一些内置界面控件,
与 iOS 版 Google 地图应用中的功能类似。您可以
使用 GMSUISettings
类切换这些控件的可见性。
对该类所做的更改会立即体现在地图上。
罗盘
Maps SDK for iOS 提供罗盘图形,该图形会显示在 。罗盘将只会 。当 用户点击罗盘时,镜头会以动画形式返回至具有方位的位置 零(默认方向),而罗盘会在随后不久逐渐消失。
默认情况下,罗盘处于停用状态。要启用罗盘,您可以设置
将 GMSUISettings
的 compassButton
属性设置为 YES
。但是,您不能
强制始终显示罗盘。
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;
“我的位置”按钮
“我的位置”按钮仅显示在屏幕右下角
。当用户点击该按钮时,
如果用户所在的位置,相机会以动画方式聚焦于用户的当前位置
是已知状态。您可以通过设置
将 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
类,该类可作为 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; }