지도 이벤트

사용자가 지도 이벤트를 통해 지도와 상호작용 하는 방법을 설명합니다.

지도 이벤트 감지

InaviMap의 각 리스너 속성을 설정하면 사용자가 지도를 클릭, 길게 클릭, 두 번 클릭 했을 때의 이벤트를 감지할 수 있습니다.

지도 클릭

onMapClickListener 속성은 사용자가 지도를 클릭했을 때의 이벤트를 담당하는 리스너입니다. 사용자가 지도를 클릭하면 이 리스너의 콜백 함수로 화면상의 좌표지도상의 좌표가 전달됩니다.

inaviMap.setOnMapClickListener { pointF, latLng ->
    Toast.makeText(context, "화면상 좌표 : (${pointF.x}, ${pointF.y})\n" +
        "지도상 좌표 : (${latLng.latitude}, ${latLng.longitude})", 
        Toast.LENGTH_SHORT).show()
}

지도 길게 클릭

onMapLongClickListener 속성은 사용자가 지도를 길게 클릭했을 때의 이벤트를 담당하는 리스너입니다. 사용자가 지도를 길게 클릭하면 이 리스너의 콜백 함수로 화면상의 좌표지도상의 좌표가 전달됩니다.

inaviMap.setOnMapLongClickListener { pointF, latLng ->
    Toast.makeText(context, "화면상 좌표 : (${pointF.x}, ${pointF.y})\n" +
            "지도상 좌표 : (${latLng.latitude}, ${latLng.longitude})",
        Toast.LENGTH_SHORT).show()
}

지도 두 번 클릭

onMapDoubleClickListener 속성은 사용자가 지도를 두 번 클릭했을 때의 이벤트를 담당하는 리스너입니다. 사용자가 지도를 두 번 클릭하면 이 리스너의 콜백 함수로 화면상의 좌표지도상의 좌표가 전달됩니다. 함수의 반환값은 지도가 이벤트를 소비할 지 여부입니다. true를 반환할 경우 지도 두 번 클릭의 기본 동작(지도 확대)이 실행되지 않습니다.

inaviMap.setOnMapDoubleClickListener { pointF, latLng ->
    Toast.makeText(context, "화면상 좌표 : (${pointF.x}, ${pointF.y})\n" +
            "지도상 좌표 : (${latLng.latitude}, ${latLng.longitude})",
        Toast.LENGTH_SHORT).show()
    
    // 이벤트 소비 여부. true를 반환하면 시 지도 확대 기능이 작동하지 않는다.
    return@setOnMapDoubleClickListener true
}

Last updated