Điều khiển và cử chỉ

Chọn nền tảng: Android iOS JavaScript

Khi sử dụng Maps SDK cho iOS, bạn có thể tuỳ chỉnh cách người dùng tương tác với bản đồ của mình bằng cách xác định thành phần nào trong số các thành phần giao diện người dùng tích hợp sẵn xuất hiện trên bản đồ và những cử chỉ nào được phép.

Điều khiển bản đồ

Maps SDK cho iOS cung cấp một số chế độ điều khiển giao diện người dùng tích hợp sẵn, tương tự như các chế độ điều khiển trong ứng dụng Google Maps cho iOS. Bạn có thể bật/tắt chế độ hiển thị của các chế độ kiểm soát này bằng cách sử dụng lớp GMSUISettings. Những thay đổi đối với lớp này sẽ được phản ánh ngay trên bản đồ.

La bàn

Maps SDK for iOS cung cấp một hình la bàn xuất hiện ở góc trên cùng bên phải của bản đồ trong một số trường hợp. La bàn sẽ chỉ xuất hiện khi camera được định hướng sao cho có phương vị khác 0. Khi người dùng nhấp vào la bàn, camera sẽ chuyển động trở lại vị trí có phương vị bằng 0 (hướng mặc định) và la bàn sẽ mờ dần ngay sau đó.

Theo mặc định, la bàn bị tắt. Bạn có thể bật la bàn bằng cách đặt thuộc tính compassButton của GMSUISettings thành YES. Tuy nhiên, bạn không thể buộc la bàn luôn xuất hiện.

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;
      

Nút Vị trí của tôi

Nút Vị trí của tôi chỉ xuất hiện ở góc dưới cùng bên phải màn hình khi nút này được bật. Khi người dùng nhấp vào nút này, máy ảnh sẽ chuyển động để lấy tiêu điểm vào vị trí hiện tại của người dùng nếu vị trí của người dùng đã được xác định. Bạn có thể bật nút này bằng cách đặt thuộc tính myLocationButton của GMSUISettings thành YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

Bộ chọn sàn

Bộ chọn tầng xuất hiện ở gần dưới cùng bên phải màn hình bất cứ khi nào bản đồ trong nhà được hiển thị nổi bật. Khi có từ 2 bản đồ trong nhà trở lên xuất hiện, bộ chọn tầng sẽ liên quan đến toà nhà gần tâm màn hình nhất. Mỗi toà nhà đều có một tầng mặc định được chọn khi bộ chọn xuất hiện lần đầu. Bạn có thể chọn một tầng khác bằng cách chọn tầng đó trong bộ chọn.

Bạn có thể tắt chế độ kiểm soát trình chọn tầng bằng cách đặt thuộc tính indoorPicker của GMSUISettings thành NO.

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

Cử chỉ trên bản đồ

Bạn có thể tắt các cử chỉ mặc định trên bản đồ bằng cách đặt các thuộc tính của lớp GMSUISettings. Lớp này có sẵn dưới dạng một thuộc tính của GMSMapView. Bạn có thể bật và tắt các cử chỉ sau theo phương thức lập trình. Xin lưu ý rằng việc tắt cử chỉ này sẽ không hạn chế quyền truy cập theo chương trình vào phần cài đặt camera.

  • scrollGestures – kiểm soát việc bật hoặc tắt cử chỉ cuộn. Nếu được bật, người dùng có thể vuốt để xoay camera.
  • zoomGestures – kiểm soát việc bật hoặc tắt cử chỉ thu phóng. Nếu được bật, người dùng có thể nhấn đúp, nhấn bằng hai ngón tay hoặc chụm để thu phóng camera. Xin lưu ý rằng thao tác nhấn đúp hoặc chụm khi bật scrollGestures có thể di chuyển camera đến điểm đã chỉ định.
  • tiltGestures – kiểm soát việc bật hoặc tắt cử chỉ nghiêng. Nếu được bật, người dùng có thể dùng thao tác vuốt dọc xuống hoặc lên bằng 2 ngón tay để nghiêng camera.
  • rotateGestures – kiểm soát việc bật hoặc tắt cử chỉ xoay. Nếu được bật, người dùng có thể sử dụng cử chỉ xoay bằng hai ngón tay để xoay camera.

Trong ví dụ bên dưới, cả cử chỉ kéo và thu phóng đều bị vô hiệu hoá.

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;
}