컨트롤 및 동작

플랫폼 선택: Android iOS JavaScript

iOS용 Maps SDK를 사용하면 지도에 표시할 기본 제공 UI 구성요소와 허용되는 동작을 지정하여 사용자가 지도와 상호작용하는 방식을 맞춤설정할 수 있습니다.

지도 컨트롤

iOS용 Maps SDK는 iOS용 Google 지도 애플리케이션에 있는 것과 유사한 몇 가지 내장 UI 컨트롤을 제공합니다. GMSUISettings 클래스를 사용하여 이러한 컨트롤의 표시 여부를 설정할 수 있습니다. 이 클래스의 변경사항은 지도에 즉시 반영됩니다.

나침반

iOS용 Maps SDK는 특정 상황에서 지도의 오른쪽 위 모서리에 표시되는 나침반 그래픽을 제공합니다. 나침반은 방위가 0이 아닌 상태가 되는 방향으로 카메라가 향하고 있는 경우에만 표시됩니다. 사용자가 나침반을 클릭하면 카메라의 베어링 위치가 도로 0 (기본 방향)으로 애니메니트되고, 잠시 후에 나침반이 사라집니다.

나침반은 기본적으로 비활성화되어 있습니다. GMSUISettingscompassButton 속성을 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;
      

내 위치 버튼

내 위치 버튼은 내 위치 버튼이 사용 설정된 경우에만 화면 오른쪽 아래 모서리에 표시됩니다. 사용자가 버튼을 클릭하면 현재 사용자의 위치를 알고 있으면 카메라가 애니메이트되어 사용자의 현재 위치에 초점을 맞춥니다. GMSUISettingsmyLocationButton 속성을 YES로 설정하여 버튼을 사용 설정할 수 있습니다.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

층 선택기

층 선택기 컨트롤은 실내 지도가 명확히 표시될 때마다 화면 오른쪽 아래 근처에 나타납니다. 실내 지도가 2개 이상 표시되면 층 선택기가 화면 중앙에서 가장 가까운 건물에 연결됩니다. 각 건물에는 기본 층이 있으며 선택기가 처음 표시될 때 이 층이 선택됩니다. 선택기에서 다양한 층을 선택할 수 있습니다.

GMSUISettingsindoorPicker 속성을 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;
}