지상 오버레이
지상 오버레이는 지도상의 특정 영역에 이미지를 나타내는 오버레이입니다. 지상 오버레이는 마커와 달리 지도상 영역에 고정되어 있으므로, 카메라를 확대하거나 축소하면 지도와 함께 확대되거나 축소됩니다.
추가 및 삭제
NMFGroundOverlay
객체는 일반적인 클래스 객체처럼 생성할 수 있습니다. 객체를 생성하고, bounds
속성에 영역, overlayImage
속성에 이미지를 지정한 후, mapView
속성에 지도 객체를 지정하면 지상 오버레이가 나타납니다. 단, mapView
를 지정하기 전에는 반드시 bounds
와 image
를 지정해야 하며, 그렇지 않으면 지도에 추가되지 않습니다.
다음은 지상 오버레이 객체를 생성하고 지도에 추가하는 예제입니다.
let groundOverlay = NMFGroundOverlay()
groundOverlay.bounds = NMGLatLngBounds(southWest: NMGLatLng(lat: 37.566351, lng: 126.977234),
northEast: NMGLatLng(lat: 37.568528, lng: 126.979980))
groundOverlay.overlayImage = NMFOverlayImage(name: "ground_overlay_image")
groundOverlay.mapView = mapView
Swift
let groundOverlay = NMFGroundOverlay()
groundOverlay.bounds = NMGLatLngBounds(southWest: NMGLatLng(lat: 37.566351, lng: 126.977234),
northEast: NMGLatLng(lat: 37.568528, lng: 126.979980))
groundOverlay.overlayImage = NMFOverlayImage(name: "ground_overlay_image")
groundOverlay.mapView = mapView
Objective-C
NMFGroundOverlay *groundOverlay = [NMFGroundOverlay new];
groundOverlay.bounds = NMGLatLngBoundsMake(37.566351, 126.977234, 37.568528, 126.979980);
groundOverlay.overlayImage = [NMFOverlayImage overlayImageWithName:@"ground_overlay_image"];
groundOverlay.mapView = self.mapView;
다음 그림은 지상 오버레이를 지도에 추가한 결과입니다.
mapView
에 nil
을 지정하면 지도에서 지상 오버레이가 사라집니다.
다음은 지상 오버레이를 지도에서 제거하는 예제입니다.
groundOverlay.mapView = nil
Swift
groundOverlay.mapView = nil
Objective-C
groundOverlay.mapView = nil;
영역
bounds
속성을 사용해 지상 오버레이의 영역을 지정할 수 있습니다. 영역은 필수적인 속성으로, 영역을 지정하지 않은 지상 오버레이는 지도에 추가되지 않습니다.
다음은 지상 오버레이에 영역을 지정하는 예제입니다.
groundOverlay.bounds = NMGLatLngBounds(southWest: NMGLatLng(lat: 37.566351, lng: 126.977234),
northEast: NMGLatLng(lat: 37.568528, lng: 126.979980))
Swift
groundOverlay.bounds = NMGLatLngBounds(southWest: NMGLatLng(lat: 37.566351, lng: 126.977234),
northEast: NMGLatLng(lat: 37.568528, lng: 126.979980))
Objective-C
groundOverlay.bounds = NMGLatLngBoundsMake(37.566351, 126.977234, 37.568528, 126.979980);
이미지
overlayImage
속성을 사용해 지상 오버레이의 이미지를 지정할 수 있습니다. 이미지는 필수적인 속성으로, 이미지를 지정하지 않은 지상 오버레이는 지도에 추가되지 않습니다. 이미지를 지정하려면 먼저 NMFOverlayImage
객체를 만들어야 합니다. NMFOverlayImage
클래스에 정의된 팩토리 메서드를 이용해 이미지 에셋, UIImage
, NSBundle
등으로부터 인스턴스를 생성할 수 있습니다.
다음은 지상 오버레이에 이미지를 지정하는 예제입니다.
groundOverlay.overlayImage = NMFOverlayImage(name: "ground_overlay_image")
Swift
groundOverlay.overlayImage = NMFOverlayImage(name: "ground_overlay_image")
Objective-C
groundOverlay.overlayImage = [NMFOverlayImage overlayImageWithName:@"ground_overlay_image"];
불투명도
alpha
속성을 이용하면 지상 오버레이의 불투명도를 지정할 수 있습니다. 값의 범위는 0
~1
이며, 0
일 경우 완전히 투명, 1
일 경우 완전히 불투명한 상태가 됩니다. 불투명도가 0
일 경우 visible
이 false
인 경우와 달리 여전히 화면에 나타나 있는 것으로 간주됩니다. 따라서 이벤트 처리의 대상이 됩니다.
다음은 지상 오버레이를 반투명으로 지정하는 예제입니다.
groundOverlay.alpha = 0.5
Swift
groundOverlay.alpha = 0.5
Objective-C
groundOverlay.alpha = 0.5f;
다음 그림은 지상 오버레이를 반투명으로 지정한 결과입니다.