지도 추가

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

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

지도는 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 Console에서 설정

    2. API 키 사용하기

    3. Xcode 프로젝트 설정하기

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

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

    1. 지도의 중심과 확대/축소 수준을 지정하는 GMSCameraPosition 객체를 만듭니다. GMSMapView 객체를 인스턴스화할 때 GMSCameraPosition 객체를 필수 매개변수로 전달해야 합니다.

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

    3. GMSMapView 객체를 뷰 컨트롤러의 뷰로 설정합니다(예: self.view = mapView;).

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

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    let mapView = GMSMapView(frame: .zero, camera: camera)
    self.view = mapView
  }
}
      

Objective-C

#import "MapObjects.h"
@import GoogleMaps;

@implementation MapObjects

- (void)viewDidLoad {
  [super viewDidLoad];
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  self.view = mapView;
}

@end
      

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

다음 단계

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