지도 추가

플랫폼 선택: Android iOS JavaScript

지도는 API에서 UIView의 서브클래스인 GMSMapView 클래스로 표현됩니다. 지도는 iOS용 Maps SDK에서 가장 중요한 객체이며 마커, 다중선과 같은 다른 객체를 추가, 삭제, 관리하는 데 필요한 메서드를 제공합니다.

소개

iOS용 Maps SDK를 사용하면 iOS 애플리케이션에 Google 지도를 표시할 수 있습니다. 이러한 지도는 Google 지도 iOS 앱에 표시되는 지도와 모양이 동일하며, SDK가 다수의 동일한 지형지물을 노출합니다.

또한 API는 매핑 기능 외에도 iOS UI 모델과 일치하는 다양한 상호작용을 지원합니다. 예를 들어 탭이나 두 번 탭과 같은 사용자 동작에 반응하는 응답자를 정의하여 지도와의 상호작용을 설정할 수 있습니다.

지도 객체 사용 시 주요 클래스는 GMSMapView 클래스입니다. GMSMapView는 다음 작업을 자동으로 처리합니다.

  • Google 지도 서비스에 연결
  • 지도 타일 다운로드
  • 기기 화면에 타일 표시
  • 화면 이동 및 확대/축소와 같은 다양한 컨트롤 표시
  • 화면 이동 및 확대/축소 동작 시 지도를 이동하거나 확대/축소하여 응답
    • 지도의 시야각을 기울여 두 손가락 동작에 반응

이러한 자동 작업 외에도 GMSMapView 클래스에 의해 노출된 속성과 메서드를 통해 지도의 동작과 모양을 제어할 수 있습니다. GMSMapView를 사용하면 마커, 지면 오버레이, 다중선을 추가 및 삭제하고, 표시되는 지도 유형을 변경하고, GMSCameraPosition 클래스를 통해 지도에 표시되는 항목을 제어할 수 있습니다.

SwiftUI로 지도 빌드하기

SwiftUI는 선언적 접근 방식을 사용하여 UI를 만드는 추가 방법을 제공합니다. 다양한 모든 상태와 함께 뷰가 표시되는 방식을 SwiftUI에 지정하면 나머지 작업은 시스템에서 처리합니다. SwiftUI는 이벤트 또는 사용자 작업으로 인해 기본 상태가 변경될 때마다 뷰 업데이트를 처리합니다.

iOS용 Maps SDK는 UIKit를 기반으로 빌드되었으며 SwiftUI 호환 뷰를 제공하지 않습니다. SwiftUI에 지도를 추가하려면 UIViewRepresentable 또는 UIViewControllerRepresentable를 준수해야 합니다. 자세한 내용은 Codelab SwiftUI로 iOS 앱에 지도 추가를 참고하세요.

지도 추가하기

지도를 추가하는 기본 단계는 다음과 같습니다.

  1. SDK와 API 키를 가져오고 필수 프레임워크를 추가하려면 다음 단계를 따르세요.

    1. Google Cloud 콘솔에서 설정

    2. API 키 사용하기

    3. Xcode 프로젝트 설정

    4. AppDelegate에서 GMSServicesprovideAPIKey: 클래스 메서드에 API 키를 제공합니다.

    5. ViewController를 만들거나 업데이트합니다. 이 뷰 컨트롤러가 표시될 때 지도가 표시되면 viewDidLoad 메서드 내에서 지도를 만들어야 합니다.

    6. 지도뷰를 초기화할 때 GMSMapViewOptions를 사용하여 구성 옵션을 설정합니다. 속성에는 frame, camera, mapID, backgroundColor, screen가 포함됩니다.

    7. GMSCameraPosition 객체를 사용하여 지도 옵션 camera 속성을 설정합니다. 지도의 중심과 확대/축소 수준을 지정합니다.

    8. GMSMapView options: 메서드를 사용하여 GMSMapView 클래스를 만들고 인스턴스화합니다. 이 지도를 뷰 컨트롤러의 유일한 뷰로 사용하려는 경우 지도 옵션 frame 기본값 CGRectZero을 뷰 frame로 사용할 수 있습니다. 지도의 크기가 자동으로 조절됩니다.

    9. GMSMapView 객체를 뷰 컨트롤러의 뷰로 설정합니다. 예를 들면 self.view = mapView;입니다.

아래 예시는 싱가포르 도심을 중심으로 하는 지도를 앱에 추가합니다.

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()

    let options = GMSMapViewOptions()
    options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    options.frame = self.view.bounds;

    let mapView = GMSMapView(options:options)
    self.view = mapView
  }
}

Objective-C

- (void)viewDidLoad {
  [super viewDidLoad];

  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                        longitude:103.848
                                                             zoom:12];
  options.frame = self.view.bounds;

  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  self.view = mapView;
}

이 단계를 따른 후에는 GMSMapView 객체를 추가로 구성할 수 있습니다.

다음 단계

이 단계를 완료하면 지도 설정을 구성할 수 있습니다.