컨트롤 및 동작

플랫폼 선택: Android iOS 자바스크립트

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

지도 컨트롤

iOS용 Maps SDK에서는 iOS용 Google 지도 애플리케이션에 있는 UI와 유사한 몇 가지 내장 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;
      

층 선택기

층 선택 도구는 실내 지도가 눈에 띄게 표시될 때마다 화면 오른쪽 하단 근처에 표시됩니다. 실내 지도가 두 개 이상 표시되면 화면 중앙에서 가장 가까운 건물과 층 선택기가 연결됩니다. 각 건물에는 선택 도구가 처음 표시될 때 선택되는 기본 층이 있습니다. 선택기에서 다양한 층을 선택할 수 있습니다.

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;
}