모든 준비를 마쳤습니다!

개발을 시작하려면 개발자 문서로 이동하세요.

Google Maps SDK for iOS 활성화

개발을 시작하기 위해 Google Developers Console에서 우선적으로 해야 할 일을 몇 가지 소개하겠습니다.

  1. 프로젝트 생성 또는 선택
  2. Google Maps SDK for iOS 활성화
  3. 적합한 키 생성
계속

그라운드 오버레이

그라운드 오버레이는 위도/경도 좌표에 연동된 지도 위의 오버레이이므로, 지도를 드래그하거나 확대/축소하면 함께 움직입니다.

소개

그라운드 오버레이는 지도에 고정된 이미지입니다. 마커와 달리 그라운드 오버레이는 화면이 아니라 지표면과 반대쪽 방향이므로, 지도를 회전, 틸트 또는 확대/축소하면 이미지의 방향이 바뀝니다.

그라운드 오버레이를 추가하려면 아이콘과 경계를 모두 정의하는GMSGroundOverlay 객체를 생성합니다. 둘 중 하나라도 지정하지 않으면 그라운드 오버레이가 지도에 나타나지 않습니다. 지도에서 이미지의 위치에 영향을 주는 추가 설정을 선택적으로 지정할 수 있습니다. 필요한 옵션을 정의한 후에 이 객체의 map 속성을 설정하여 오버레이를 추가합니다.

오버레이 추가

  1. GMSGroundOverlay 객체를 인스턴스화합니다.
  2. icon 속성을 UIImage의 인스턴스로 설정합니다.
  3. bounds 속성을 GMSCoordinateBounds의 인스턴스로 설정합니다. 경계는 이미지의 남서쪽 모서리와 북동쪽 모서리를 나타냅니다.
  4. 필요한 경우 bearingzoomLevel 등의 선택적 속성을 설정합니다.
  5. map 속성을 설정합니다. 이미지가 지도에 나타납니다.

아래 예시는 기존 GMSMapView 객체에 그라운드 오버레이를 추가하는 방법을 보여줍니다.

Swift

let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)
let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)
let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
let icon = UIImage(named: "newark_nj_1922")

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

Objective-C

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
                                                                        coordinate:northEast];

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"];
GMSGroundOverlay *overlay =
    [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

오버레이 제거

GMSGroundOverlaymap속성을 nil로 설정하여 지도에서 그라운드 오버레이를 제거할 수 있습니다. 또는, GMSMapView``clear 메서드를 호출하여 현재 지도에 있는 모든 오버레이(그라운드 오버레이 포함)를 제거할 수 있습니다.

Swift

let camera = GMSCameraPosition.camera(withLatitude: 40.71,
                                      longitude: -74.22,
                                      zoom:11)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
...
mapView.clear()

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40.742
                                                        longitude:-74.174
                                                             zoom:6];
mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
...
[mapView clear];

지도에 그라운드 오버레이를 추가한 다음 수정하려면 GMSGroundOverlay 객체를 보유하고 있어야 합니다. 나중에 이 객체를 변경하여 그라운드 오버레이를 수정할 수 있습니다.

Swift

let overlay = GMSGroundOverlay(position: newark, icon: icon, zoomLevel: 10)
overlay.map = mapView
...
overlay.isTappable = true

Objective-C

GMSGroundOverlay *overlay =
    [GMSGroundOverlay groundOverlayWithPosition:newark
                                           icon:icon
                                      zoomLevel:10];
overlay.map = mapView;
...
overlay.tappable = YES;

이벤트

사용자가 오버레이를 누르는 등과 같이 지도에서 발생하는 이벤트를 수신할 수 있습니다. 이벤트를 수신하려면 GMSMapViewDelegate 프로토콜로 구현합니다. GMSMapViewDelegate에 대해서는 이벤트 가이드와 메서드 목록을 참조하세요.

다음에 대한 의견 보내기...

Google Maps SDK for iOS
Google Maps SDK for iOS
도움이 필요하시나요? 지원 페이지를 방문하세요.