지상 오버레이
지상 오버레이는 지도상의 특정 영역에 이미지를 나타내는 오버레이입니다. 지상 오버레이는 마커와 달리 지도상 영역에 고정되어 있으므로, 카메라를 확대하거나 축소하면 지도와 함께 확대되거나 축소됩니다.
추가 및 삭제
GroundOverlay
객체는 일반적인 자바 객체처럼 생성할 수 있습니다. 객체를 생성하고, bounds
속성에 영역, image
속성에 이미지를 지정한 후, map
속성에 지도 객체를 지정하면 지상 오버레이가 나타납니다. 단, map
을 지정하기 전에는 반드시 bounds
와 image
를 지정해야 하며, 그렇지 않으면 예외가 발생합니다.
다음은 지상 오버레이 객체를 생성하고 지도에 추가하는 예제입니다.
GroundOverlay groundOverlay = new GroundOverlay();
groundOverlay.setBounds(new LatLngBounds(
new LatLng(37.566351, 126.977234), new LatLng(37.568528, 126.979980)));
groundOverlay.setImage(
OverlayImage.fromResource(R.drawable.ground_overlay_image));
groundOverlay.setMap(naverMap);
Java
GroundOverlay groundOverlay = new GroundOverlay();
groundOverlay.setBounds(new LatLngBounds(
new LatLng(37.566351, 126.977234), new LatLng(37.568528, 126.979980)));
groundOverlay.setImage(
OverlayImage.fromResource(R.drawable.ground_overlay_image));
groundOverlay.setMap(naverMap);
Kotlin
val groundOverlay = GroundOverlay()
groundOverlay.bounds = LatLngBounds(
LatLng(37.566351, 126.977234), LatLng(37.568528, 126.979980))
groundOverlay.setImage(
OverlayImage.fromResource(R.drawable.ground_overlay_image))
groundOverlay.map = naverMap
map
에 null
을 지정하면 지도에서 지상 오버레이가 사라집니다.
다음은 지상 오버레이를 지도에서 제거하는 예제입니다.
groundOverlay.setMap(null);
Java
groundOverlay.setMap(null);
Kotlin
groundOverlay.map = null
영역
bounds
속성을 사용해 지상 오버레이의 영역을 지정할 수 있습니다. 영역은 필수적인 속성으로, 영역을 지정하지 않은 지상 오버레이를 지도에 추가하면 예외가 발생합니다.
다음은 지상 오버레이에 영역을 지정하는 예제입니다.
groundOverlay.setBounds(new LatLngBounds(
new LatLng(37.566351, 126.977234), new LatLng(37.568528, 126.979980)));
Java
groundOverlay.setBounds(new LatLngBounds(
new LatLng(37.566351, 126.977234), new LatLng(37.568528, 126.979980)));
Kotlin
groundOverlay.bounds = LatLngBounds(
LatLng(37.566351, 126.977234), LatLng(37.568528, 126.979980))
이미지
image
속성을 사용해 지상 오버레이의 이미지를 지정할 수 있습니다. 이미지를 지정하려면 먼저 OverlayImage
객체를 만들어야 합니다. OverlayImage
는 오버레이에서 사용할 수 있는 비트맵 이미지를 나타내는 클래스로, 팩토리 메서드를 이용해 리소스, 에셋, 비트맵, 뷰 등으로부터 인스턴스를 생성할 수 있습니다. 지상 오버레이의 화면상 크기는 줌 레벨에 따라 변하므로 사용자 단말의 DPI(Dots Per Inch)와 무관한 nodpi
리소스나 에셋을 사용해 만드는 것이 좋습니다.
다음은 지상 오버레이에 이미지를 지정하는 예제입니다.
groundOverlay.setImage(
OverlayImage.fromResource(R.drawable.ground_overlay_image));
Java
groundOverlay.setImage(
OverlayImage.fromResource(R.drawable.ground_overlay_image));
Kotlin
groundOverlay.setImage(
OverlayImage.fromResource(R.drawable.ground_overlay_image))
불투명도
alpha
속성을 이용하면 지상 오버레이의 불투명도를 지정할 수 있습니다. 값의 범위는 0
~1
이며, 0
일 경우 완전히 투명, 1
일 경우 완전히 불투명한 상태가 됩니다. 불투명도가 0
일 경우 visible
이 false
인 경우와 달리 여전히 화면에 나타나 있는 것으로 간주됩니다. 따라서 이벤트 처리의 대상이 됩니다.
다음은 지상 오버레이를 반투명으로 지정하는 예제입니다.