Khi sử dụng SDK Bản đồ dành 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 giao diện người dùng tích hợp nào xuất hiện trên bản đồ và cử chỉ nào được phép.
Các chế độ điều khiển trên bản đồ
SDK Bản đồ dành cho iOS cung cấp một số thành phần điều khiển giao diện người dùng tích hợp tương tự như các thành phần điều khiển trong ứng dụng Google Maps dành cho iOS. Bạn có thể bật/tắt chế độ hiển thị của các chế độ điều khiển này bằng cách sử dụng lớp GMSUISettings
.
Các thay đổi đối với lớp này sẽ được phản ánh ngay trên bản đồ.
La bàn
SDK Bản đồ dành cho iOS cung cấp một biểu đồ 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 nhất định. La bàn sẽ chỉ xuất hiện khi máy ảnh được định hướng sao cho có góc phương vị khác 0. Khi người dùng nhấp vào la bàn, máy ảnh sẽ tạo ảnh động quay lại vị trí có góc phương vị bằng 0 (hướng mặc định) và la bàn sẽ biến mất 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 hiển thị.
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 bạn bật nút Vị trí của tôi. Khi người dùng nhấp vào nút này, camera sẽ tạo ảnh động để lấy nét vào vị trí hiện tại của người dùng nếu vị trí của người dùng hiện đã đượ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
Nút điều khiển bộ chọn tầng xuất hiện ở gần cuối màn hình bất cứ khi nào bản đồ trong nhà xuất hiện nổi bật. Khi có hai hoặc nhiều bản đồ trong nhà hiển thị, bộ chọn tầng sẽ liên quan đến toà nhà gần nhất với tâm màn hình. Mỗi tòa nhà có một tầng mặc định được chọn khi bộ chọn hiển thị 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ế độ điều khiển bộ chọn giá sàn 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;
Ánh xạ cử chỉ
Bạn có thể tắt các cử chỉ mặc định trên bản đồ bằng cách đặt thuộc tính của lớp GMSUISettings
. Lớp này có sẵn dưới dạng 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ỉ sẽ không giới hạn quyền truy cập có lập trình vào chế độ cài đặt máy ảnh.
scrollGestures
– kiểm soát việc có bật hay tắt cử chỉ cuộn hay không. Nếu được bật, người dùng có thể vuốt để xoay máy ảnh.zoomGestures
– kiểm soát việc có bật hay tắt cử chỉ thu phóng hay khô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 máy ảnh. Xin lưu ý rằng thao tác nhấn đúp hoặc chụm khi bậtscrollGestures
có thể xoay máy ảnh đến điểm đã chỉ định.tiltGestures
– kiểm soát việc bật hay tắt cử chỉ nghiêng. Nếu được bật, người dùng có thể dùng hai ngón tay vuốt lên hoặc xuống theo chiều dọc để nghiêng máy ảnh.rotateGestures
– kiểm soát việc có bật cử chỉ xoay hay không. Nếu được bật, người dùng có thể sử dụng cử chỉ xoay hai ngón tay để xoay máy ảnh.
Trong ví dụ bên dưới, cả cử chỉ kéo và thu phóng đều đã bị tắt.
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; }