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