210202
T Map API 다중마커 구현 + 풍선뷰 이벤트 처리(풍선뷰 누를 시 마커삭제) 본문
다중마커를 구현하기위해 참고한 사이트다.
https://community.openapi.sk.com/t/tmap/6715/2
다중마커 구현
다중마커 구현은 위의 사이트에서 처럼 지도에 마커를 찍을 좌표들(alTmapPoint)을 불러와서 반복문에서 계속해서 마커에 좌표들을 지정해주고 tMapView에 추가하는 방식이다.
여기서 잘 봐야할 부분은 TMapMarkerItem을 계속해서 생성하는 점과 tMapView에 마커를 추가할때 id를 변동시켜야 한다는 점이다. 이 두 부분을 꼭 지켜야 정상적으로 마커들이 출력된다.
풍선뷰 누를 시 마커 삭제
풍선뷰를 나오게 하려면 먼저 http://tmapapi.sktelecom.com/main.html#android/docs/androidDoc.TMapMarkerItem_setCanShowCallout을 참고하여 풍선뷰를 사용할 수 있게 설정해줘야 한다. 그 후 setCalloutTitle, setCalloutSubTitle 등 추가적인 선택을 해주면 된다.
만약 풍선뷰 클릭시 호출되는 OnCalloutRightButtonClickCallback를 구현하고 싶다면 setCallOutRightButtonImage 메소드를 사용하여 꼭 풍선뷰의 오른쪽에 이미지를 줘야한다.(오른쪽 이미지를 클릭하게 되면 호출되기 때문)
마커 삭제는 http://tmapapi.sktelecom.com/main.html#android/docs/androidDoc.TMapView_removeMarkerItem을 참고하여 구현했다. 특정 아이디를 가진 마커를 삭제하는 메소드를 사용한다.
OnCalloutRightButtonClickCallback을 통해서 만약 풍선뷰에 오른쪽 이미지가 클릭되면 마커가 삭제되게 구현하면 완성이다.
OnCalloutRightButtonClickCallback에서는 풍선뷰의 마커아이템을 반환한다.(TMapMarkerItem tMapMarkerItem)
이 반환된 마커 아이템의 id를 가져오고 가져온 id를 가진 마커를 삭제하게 한다.
tMapView.setOnCalloutRightButtonClickListener(new TMapView.OnCalloutRightButtonClickCallback() {
@Override
public void onCalloutRightButton(TMapMarkerItem tMapMarkerItem) {
String id = tMapMarkerItem.getID();
tMapView.removeMarkerItem(id);
}
});
T Map API를 처음써보거나 API 문서에 익숙치 않은 초보자라면 꼭 한번 따라해볼 것을 추천한다.
'Android' 카테고리의 다른 글
Kotlin 데이터 바인딩과 네비게이션을 사용하여 프래그먼트 구현 + 몇가지 오류들 해결 (0) | 2020.03.09 |
---|---|
Kotlin으로 Facebook 소셜 로그인 구현 + 유저 데이터 가져오기 (0) | 2020.03.08 |
Retrofit을 사용한 서버통신(jsonplaceholder 사이트 사용) (0) | 2020.02.22 |
뷰페이저(ViewPager) FragmentStatePagerAdapter로 구현하기 + 특정 프래그먼트에 도달하면 다이얼로그 띄워주기 (0) | 2020.02.20 |
프로그레스 다이얼로그 구현 (0) | 2020.02.20 |