그라운드 오버레이

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
플랫폼 선택: Android iOS 자바스크립트

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

소개

지면 오버레이는 지도에 고정된 이미지입니다. 마커와 달리 지면 오버레이는 화면이 아닌 지표면 방향을 향하므로 지도를 회전하거나 기울이거나 확대/축소하면 이미지의 방향이 변경됩니다.

지면 오버레이를 추가하려면 아이콘과 경계를 모두 정의하는 GMSGroundOverlay 객체를 만듭니다. 둘 중 하나를 지정하지 않으면 지면 오버레이가 지도에 표시되지 않습니다. 필요에 따라 지도에서 이미지의 위치에 영향을 주는 추가 설정을 지정할 수도 있습니다. 필요한 옵션을 정의한 후에는 이 객체의 map 속성을 설정하여 오버레이를 추가합니다.

오버레이 추가하기

  1. GMSGroundOverlay 객체를 인스턴스화합니다.
  2. icon 속성을 UIImage의 인스턴스로 설정합니다.
  3. bounds 속성을 GMSCoordinateBounds의 인스턴스로 설정합니다. 경계는 이미지의 남서쪽과 북동쪽 모서리를 나타냅니다.
  4. bearing, zoomLevel 등의 선택적 속성을 원하는 대로 설정합니다.
  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

mapView.clear()
      

Objective-C

[mapView clear];
      

지면 오버레이를 지도에 추가한 후 수정하려면 GMSGroundOverlay 객체를 유지해야 합니다. 나중에 이 객체를 변경하여 지면 오버레이를 수정할 수 있습니다.

Swift

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

// ...

overlay.isTappable = true
      

Objective-C

GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

// ...
overlay.tappable = YES;
      

이벤트

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