정보 창
지도 또는 마커 위에 상세 정보를 표출하는 기능입니다. 주로 팝업 말풍선 모양으로 많이 표현되며, 뷰 형태로 커스터마이징 할 수도 있습니다. 정보 창을 지도 위에 그리는 방법을 설명합니다.
추가 및 삭제
지도 위에 정보 창을 추가하려면 InvInfoWindow
객체를 생성한 다음 반드시 position
속성과 adapter
속성을 설정해주어야 합니다. position
속성은 setPosition()
함수를 통해 설정할 수 있으며, adapter
속성은 setAdapter()
함수 또는 정보 창 객체 생성자를 통해 설정할 수 있습니다.
생성된 정보 창 객체의 map
속성을 표출하고자 하는 지도 객체로 설정하면 정보 창이 지도 위에 표출됩니다.
// 지도 위에 정보 창 추가
val infoWindow = InvInfoWindow().apply {
position = LatLng(37.40219, 127.11047)
adapter = object : InvInfoWindowTextAdapter(context) {
override fun getText(infoWindow: InvInfoWindow): CharSequence {
return "정보 창 내용"
}
}
map = inaviMap
}

반대로 지도에서 정보 창을를 제거하려면 map
속성을 null
로 설정하면 됩니다.
// 지도에서 정보 창 제거
infoWindow.map = null
마커 위에 그리기
정보 창은 지도 위 뿐만 아니라 마커 위에도 그릴 수 있습니다. marker
속성으로 정보 창이 그려질 마커를 설정하거나 위에 그려진 마커의 인스턴스를 가져올 수 있습니다.
// 지도 위에 마커 추가
val marker = InvMarker().apply {
position = LatLng(37.40219, 127.11047)
map = inaviMap
}
// 마커에 정보 창 표출
infoWindow.setMarker(marker)

마커 위에 그려지고 있는지 확인
정보 창이 마커 위에 그려지게 되면 getMarker()
함수로 현재 그려지고 있는 마커의 인스턴스를 가져올 수 있으며, InvMarker#getInfoWindow()
함수로 마커 위에 그려지고 있는 정보 창의 인스턴스를 가져올 수 있습니다.
if (marker.infoWindow != null) {
// 정보 창이 마커 위에 표출되고 있는 경우
} else {
// 정보 창이 마커 위에 표출되고 있지 않는 경우
}
위치
position
속성으로 정보 창이 표출될 위치를 가져오거나 새로 설정할 수 있습니다. 이미 정보 창이 지도에 표출 중이라면, 이 속성을 변경할 경우 정보 창이 새로운 위치로 이동합니다. position
속성을 설정하지 않았거나, 좌표가 유효하지 않으면 InvalidLatLngException
이 발생합니다.
어댑터
adapter
속성으로 정보 창에 대한 어댑터를 가져오거나 새로 설정할 수 있습니다. 어댑터는 지도에 표출할 정보 창의 형태를 정의한 것을 의미합니다.
아이나비 지도 SDK는 기본적으로 두 가지 기본 어댑터를 제공합니다.
종류
설명
기본 말풍선 배경에 텍스트가 포함된 정보 창을 표출할 때 사용
커스텀 뷰로 구성된 정보 창을 표출할 때 사용
가장 간단하게 adapter
속성을 설정하는 방법은 InvInfoWindowTextAdapter
를 사용하는 것입니다. 이 클래스에는 기본 말풍선 배경이 들어가 있으며, 개발자는 getText()
함수만을 오버라이딩하여 표출할 문구를 반환시켜주면 됩니다.
// 정보 창에 설정된 position 속성을 텍스트로 표출
infoWindow.position = LatLng(37.40219, 127.11047)
infoWindow.adapter = object : InvInfoWindowTextAdapter(context) {
override fun getText(infoWindow: InvInfoWindow): CharSequence {
return if (infoWindow.marker == null){
"좌표 : (${infoWindow.position.latitude}, " +
"${infoWindow.position.longitude})"
} else {
"마커 InfoWindow"
}
}
}

불투명도
alpha
속성으로 정보 창의 불투명도를 가져오거나 새로 설정할 수 있습니다. 0.0
~1.0
사이의 값을 입력할 수 있으며 0.0
은 완전한 투명, 1.0
은 완전한 불투명을 의미합니다.
alpha
속성 값이 0.0
이면 시각적으로는 정보 창이 표출되지 않지만 실제로 정보 창은 지도 위에 그려지고 있습니다. 따라서, 클릭 리스너를 설정했을 경우 이벤트를 받게 됩니다.
// 정보 창의 불투명도를 0.5로 설정
infoWindow.alpha = 0.5f

Last updated
Was this helpful?