iOS용 Maps SDK를 사용하면 지도에 표시할 기본 제공 UI 구성요소와 허용되는 동작을 지정하여 사용자가 지도와 상호작용하는 방식을 맞춤설정할 수 있습니다.
지도 컨트롤
iOS용 Maps SDK는 iOS용 Google 지도 애플리케이션에 있는 것과 유사한 몇 가지 내장 UI 컨트롤을 제공합니다. GMSUISettings
클래스를 사용하여 이러한 컨트롤의 표시 여부를 설정할 수 있습니다.
이 클래스의 변경사항은 지도에 즉시 반영됩니다.
나침반
iOS용 Maps SDK는 특정 상황에서 지도의 오른쪽 위 모서리에 표시되는 나침반 그래픽을 제공합니다. 나침반은 방위가 0이 아닌 상태가 되는 방향으로 카메라가 향하고 있는 경우에만 나타납니다. 사용자가 나침반을 클릭하면 카메라의 베어링 위치가 도로 0 (기본 방향)으로 애니메니트되고, 잠시 후에 나침반이 사라집니다.
나침반은 기본적으로 비활성화되어 있습니다. 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;
층 선택기
층 선택기 컨트롤은 실내 지도가 명확히 표시될 때마다 화면 오른쪽 아래 근처에 나타납니다. 실내 지도가 2개 이상 표시되면 층 선택기가 화면 중앙에서 가장 가까운 건물에 연결됩니다. 각 건물에는 기본 층이 있으며 선택기가 처음 표시될 때 이 층이 선택됩니다. 선택기에서 다양한 층을 선택할 수 있습니다.
GMSUISettings
의 indoorPicker
속성을 NO
로 설정하여 층 선택기 컨트롤을 사용 중지할 수 있습니다.
Swift
mapView.settings.indoorPicker = false
Objective-C
mapView.settings.indoorPicker = NO;
지도 동작
GMSMapView
의 속성으로 사용할 수 있는 GMSUISettings
클래스의 속성을 설정하여 지도에서 기본 제스처를 비활성화할 수 있습니다.
다음 제스처는 프로그래밍 방식으로 활성화/비활성화할 수 있습니다. 제스처를 비활성화하더라도 카메라 설정에 대한 프로그래매틱 액세스는 제한되지 않습니다.
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; }