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 đồ 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.
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á.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-09-05 UTC."],[[["\u003cp\u003eThis documentation outlines how to customize user interaction with the Google Maps SDK for iOS, focusing on controlling built-in UI components and map gestures.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can enable or disable UI controls like the compass, My Location button, and floor picker using the \u003ccode\u003eGMSUISettings\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003eMap gestures such as scrolling, zooming, tilting, and rotating can be individually enabled or disabled through properties of the \u003ccode\u003eGMSUISettings\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003eDisabling a gesture does not restrict programmatic access to camera settings, only user interaction.\u003c/p\u003e\n"],["\u003cp\u003eThese customizations provide developers with flexibility to tailor the map experience within their iOS applications.\u003c/p\u003e\n"]]],["The Maps SDK for iOS allows customization of user interaction with the map via the `GMSUISettings` class. Built-in UI controls, like the compass, My Location button, and floor picker, can be toggled on or off. The compass is enabled by setting `compassButton` to `YES`, the My Location button with `myLocationButton = YES`, and the floor picker is disabled by `indoorPicker = NO`. Map gestures (scroll, zoom, tilt, rotate) can be enabled or disabled by setting the properties of the same name to `YES` or `NO` respectively.\n"],null,["\u003cbr /\u003e\n\nSelect platform: [Android](/maps/documentation/android-sdk/controls \"View this page for the Android platform docs.\") [iOS](/maps/documentation/ios-sdk/controls \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/controls \"View this page for the JavaScript platform docs.\")\n\n\u003cbr /\u003e\n\nUsing the Maps SDK for iOS, you can customize the way in which users\ninteract with your map, by determining which of the built in UI components\nappear on the map and which gestures are allowed.\n\nMap controls\n\nThe Maps SDK for iOS provides some built-in UI controls that are\nsimilar to those found in the Google Maps for iOS application. You can\ntoggle the visibility of these controls using the `GMSUISettings` class.\nChanges made on this class are immediately reflected on the map.\n| **Note:** Each control has a predetermined position relative to the edge of the map. You can move the controls away from the edges by [padding](/maps/documentation/ios-sdk/map#map_padding) the map.\n\nCompass \n\nThe Maps SDK for iOS provides a compass graphic which appears in the\ntop right corner of the map under certain circumstances. The compass will only\nappear when the camera is oriented such that it has a non-zero bearing. When the\nuser clicks on the compass, the camera animates back to a position with bearing\nof zero (the default orientation) and the compass fades away shortly afterwards.\n\nThe compass is disabled by default. You can enable the compass by setting the\n`compassButton` property of `GMSUISettings` to `YES`. However, you cannot\nforce the compass to always be shown.\n\n\nSwift \n\n```swift\nlet camera = GMSCameraPosition(latitude: 37.757815, longitude: -122.50764, zoom: 12)\nlet mapView = GMSMapView(frame: .zero, camera: camera)\nmapView.settings.compassButton = true\n \n```\n\nObjective-C \n\n```objective-c\nGMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815\n longitude:-122.50764\n zoom:12];\nGMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];\nmapView.settings.compassButton = YES;\n \n```\n\n\u003cbr /\u003e\n\nMy Location button \n\nThe My Location button appears in the bottom right corner of the screen *only*\nwhen the My Location button is enabled. When a user clicks the button, the\ncamera animates to focus on the user's current location if the user's location\nis known. You can enable the button by setting the\n`myLocationButton` property of `GMSUISettings` to `YES`.\n\n\nSwift \n\n```swift\nmapView.settings.myLocationButton = true\n \n```\n\nObjective-C \n\n```objective-c\nmapView.settings.myLocationButton = YES;\n \n```\n\n\u003cbr /\u003e\n\nFloor picker \n\nThe floor picker control appears near the bottom right of the screen whenever an\nindoor map is featured prominently. When two or more indoor maps are visible the\nfloor picker relates to the building nearest to the center of the screen. Each\nbuilding has a default floor which is selected when the picker is first\ndisplayed. You can choose a different floor by selecting it from the picker.\n\nYou can disable the floor picker control by setting the `indoorPicker` property\nof `GMSUISettings` to `NO`.\n\n\nSwift \n\n```swift\nmapView.settings.indoorPicker = false\n \n```\n\nObjective-C \n\n```objective-c\nmapView.settings.indoorPicker = NO;\n \n```\n\n\u003cbr /\u003e\n\nMap gestures\n\nYou can disable the default gestures on the map by setting properties of the\n`GMSUISettings` class, which is available as a property of the `GMSMapView`.\nThe following gestures can be enabled and disabled programmatically. Note that\ndisabling the gesture won't limit programmatic access to the camera\nsettings.\n\n- `scrollGestures` --- controls whether scroll gestures are enabled or disabled. If enabled, users may swipe to pan the camera.\n- `zoomGestures` --- controls whether zoom gestures are enabled or disabled. If enabled, users may double tap, two-finger tap, or pinch to zoom the camera. Note that double tapping or pinching when `scrollGestures` are enabled may pan the camera to the specified point.\n- `tiltGestures` --- controls whether tilt gestures are enabled or disabled. If enabled, users may use a two-finger vertical down or up swipe to tilt the camera.\n- `rotateGestures` --- controls whether rotate gestures are enabled or disabled. If enabled, users may use a two-finger rotate gesture to rotate the camera.\n\nIn the example below, both pan and zoom gestures have been disabled.\n\n\nSwift \n\n```swift\noverride func loadView() {\n let camera = GMSCameraPosition.camera(\n withLatitude: 1.285,\n longitude: 103.848,\n zoom: 12\n )\n\n let mapView = GMSMapView.map(withFrame: .zero, camera: camera)\n mapView.settings.scrollGestures = false\n mapView.settings.zoomGestures = false\n self.view = mapView\n}\n \n```\n\nObjective-C \n\n```objective-c\n- (void)loadView {\n GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285\n longitude:103.848\n zoom:12];\n GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];\n mapView.settings.scrollGestures = NO;\n mapView.settings.zoomGestures = NO;\n self.view = mapView;\n}\n \n```\n\n\u003cbr /\u003e"]]