정보 창

지도 또는 마커 위에 상세 정보를 표출하는 기능입니다. 주로 팝업 말풍선 모양으로 많이 표현되며, 뷰 형태로 커스터마이징 할 수도 있습니다. 정보 창을 지도 위에 그리는 방법을 설명합니다.

추가 및 삭제

지도 위에 정보 창을 추가하려면 InvInfoWindowarrow-up-right 객체를 생성한 다음 반드시 positionarrow-up-right 속성과 adapterarrow-up-right 속성을 설정해주어야 합니다. positionarrow-up-right 속성은 setPosition()arrow-up-right 함수를 통해 설정할 수 있으며, adapterarrow-up-right 속성은 setAdapter()arrow-up-right 함수 또는 정보 창 객체 생성자arrow-up-right를 통해 설정할 수 있습니다.

생성된 정보 창 객체의 maparrow-up-right 속성을 표출하고자 하는 지도 객체로 설정하면 정보 창이 지도 위에 표출됩니다.

// 지도 위에 정보 창 추가
val infoWindow = InvInfoWindow().apply {
    position = LatLng(37.40219, 127.11047)
    adapter = object : InvInfoWindowTextAdapter(context) {
        override fun getText(infoWindow: InvInfoWindow): CharSequence {
            return "정보 창 내용"
        }
    }
    map = inaviMap
}
지도 위에 정보 창을 추가한 모습

반대로 지도에서 정보 창을를 제거하려면 maparrow-up-right 속성을 null로 설정하면 됩니다.

마커 위에 그리기

정보 창은 지도 위 뿐만 아니라 마커 위에도 그릴 수 있습니다. markerarrow-up-right 속성으로 정보 창이 그려질 마커를 설정하거나 위에 그려진 마커의 인스턴스를 가져올 수 있습니다.

마커 위에 정보 창을 추가한 모습

마커 위에 그려지고 있는지 확인

정보 창이 마커 위에 그려지게 되면 getMarker()arrow-up-right 함수로 현재 그려지고 있는 마커의 인스턴스를 가져올 수 있으며, InvMarker#getInfoWindow()arrow-up-right 함수로 마커 위에 그려지고 있는 정보 창의 인스턴스를 가져올 수 있습니다.

위치

positionarrow-up-right 속성으로 정보 창이 표출될 위치를 가져오거나 새로 설정할 수 있습니다. 이미 정보 창이 지도에 표출 중이라면, 이 속성을 변경할 경우 정보 창이 새로운 위치로 이동합니다. positionarrow-up-right 속성을 설정하지 않았거나, 좌표가 유효하지 않으면 InvalidLatLngExceptionarrow-up-right이 발생합니다.

circle-info

positionarrow-up-right 속성과 markerarrow-up-right 속성은 배타적인 관계입니다. markerarrow-up-right 속성이 설정되어 마커 위에 정보 창이 그려지고 있는 상태에서 positionarrow-up-right 속성을 설정하면 markerarrow-up-right 속성은 무시됩니다. 반대로 positionarrow-up-right 속성이 설정되어 있는 상태에서 markerarrow-up-right 속성을 설정하면 positionarrow-up-right 속성은 무시됩니다.

어댑터

adapterarrow-up-right 속성으로 정보 창에 대한 어댑터를 가져오거나 새로 설정할 수 있습니다. 어댑터는 지도에 표출할 정보 창의 형태를 정의한 것을 의미합니다.

아이나비 지도 SDK는 기본적으로 두 가지 기본 어댑터를 제공합니다.

종류

설명

기본 말풍선 배경에 텍스트가 포함된 정보 창을 표출할 때 사용

커스텀 뷰로 구성된 정보 창을 표출할 때 사용

가장 간단하게 adapterarrow-up-right 속성을 설정하는 방법은 InvInfoWindowTextAdapterarrow-up-right를 사용하는 것입니다. 이 클래스에는 기본 말풍선 배경이 들어가 있으며, 개발자는 getText()arrow-up-right 함수만을 오버라이딩하여 표출할 문구를 반환시켜주면 됩니다.

정보 창에 어댑터를 설정한 모습

불투명도

alphaarrow-up-right 속성으로 정보 창의 불투명도를 가져오거나 새로 설정할 수 있습니다. 0.0~1.0 사이의 값을 입력할 수 있으며 0.0은 완전한 투명, 1.0은 완전한 불투명을 의미합니다.

alphaarrow-up-right 속성 값이 0.0이면 시각적으로는 정보 창이 표출되지 않지만 실제로 정보 창은 지도 위에 그려지고 있습니다. 따라서, 클릭 리스너를 설정했을 경우 이벤트를 받게 됩니다.

정보 창에 불투명도를 설정한 모습

Last updated