지도 추가

플랫폼 선택: 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를 준수해야 합니다. 자세한 내용은 SwiftUI로 iOS 앱에 지도 추가 Codelab을 참고하세요.

지도 추가하기

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

  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 객체를 추가로 구성할 수 있습니다.

다음 단계

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