지도는 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을 참고하세요.
지도 추가하기
지도를 추가하는 기본 단계는 다음과 같습니다.
SDK와 API 키를 가져온 후 필수 프레임워크를 추가하려면 다음 단계를 따르세요.
AppDelegate
에서GMSServices
의provideAPIKey:
클래스 메서드에 API 키를 제공합니다.ViewController
를 만들거나 업데이트합니다. 이 뷰 컨트롤러가 표시될 때 지도가 표시되는 경우viewDidLoad
메서드 내에 지도를 만들어야 합니다.지도 뷰를 초기화할 때
GMSMapViewOptions
를 사용하여 구성 옵션을 설정합니다. 속성에는frame
,camera
,mapID
,backgroundColor
또는screen
가 포함됩니다.GMSCameraPosition
객체를 사용하여 지도 옵션camera
속성을 설정합니다. 지도의 중심과 확대/축소 수준을 지정합니다.GMSMapView
options:
메서드를 사용하여GMSMapView
클래스를 만들고 인스턴스화합니다. 이 지도를 뷰 컨트롤러의 유일한 뷰로 사용하려면 지도 옵션frame
의 기본값CGRectZero
을 뷰frame
로 사용할 수 있습니다. 지도는 자동으로 크기가 조절됩니다.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
객체를 추가로 구성할 수 있습니다.
다음 단계
이 단계를 완료하면 지도 설정을 구성할 수 있습니다.