Tech. Forum 개발자들을 위한 정보 공유의 장입니다
닫기

Tech.Forum

T MAP API getMarkerItemFromID(ID).setICon시 실시간 ICON변경 문의

#1

TMapView.getMarkerItemFromID(ID).setIcon(icon); 으로 이미 등록 된 Marker의 icon을 변경하였습니다.
변경된 사항을 확인하기 위해선 지도를 움직여주는 제스처를 취해야 변경됩니다.
함수 호출 후 아무런 제스처를 안하면 변경이 안됩니다.
listview의 notifyDataSetChanged 같은 함수는 없나요?

0 Likes

#2

안녕하세요.
T map API 운영담당자 입니다.

질문하신 기능을 하는 함수는 없습니다.
다만, 변경된 이미지를 지도에 표출하기 위해 지도를 움직이는
함수 또는 마커를 다시 뛰어주는 함수를 호출하시면
질문하신 기능과 같은 기능을 구현하실수 있습니다.
아래에 예시를 참고하시면 도움이 되실겁니다.


Ex)

1. 현재의 줌레벨로 지도를 설정하여 지도초기화.
tMapView.setZoomLevel(tMapView.getZoomLevel());

2. 지도에 등록한 마커를 재호출.
tMapView.removeMarkerItem("동일ID");// 생략가능
tMapView.addMarkerItem("동일ID",동일 마커아이템);

감사합니다.

1 Like

#3

좋은답변 감사합니다.
혹시 저와 같은 문제를 겪을 분들을 위해 간단하게 남겨봅니다.

지금 현재 OnDisableScrollWithZoomLevelCallback를 통해 마커의 이미지를 재등록해주는 프로세스로 구성하였는데 1번이 간편하지만, 제가 적용하기엔 애매한 부분이 있네요.

2번은 TMapMarkerItem을 따로 getMarkerItemFromID(“동일ID”)로 얻은 다음
TMapMarkerItem.setIcon(Bitmap) 후
tMapView.removeMarkerItem(“동일ID”);// 생략가능
tMapView.addMarkerItem(“동일ID”,동일 마커아이템);

0 Likes

#4

질문이 하나 더 있습니다.
OnDisableScrollWithZoomLevelCallback의 경우 클릭이 끝난 경우도 호출 하던데, 클릭부분은 막을 수 없나요?
제가 원하는건 지도를 움직이거나, zoom in-out 했을때 콜백을 받고싶거든요.

0 Likes

#5

안녕하세요.
T map API 운영담당자 입니다.

OnEnableScrollWithZoomLevelCallback()함수를 사용하시면
일반적인 클릭이 끝난 경우 호출되지 않습니다.

단, 클릭 발생후 scroll및 zoom 으로 이어진 클릭이 끝난 경우는 스크롤 발생이후 처리 이기에
막으실수 없습니다.
아래에 관련함수 문서를 참고하시면 도움이 되실겁니다.


http://tmapapi.sktelecom.com/main.html#android/docs/androidDoc.TMapView_setOnEnableScrollWithZoomLevelListener


감사합니다.

0 Likes

#6

TMapView.OnDisableScrollWithZoomLevelCallback onDisableScrollWithZoomLevelCallback = new TMapView.OnDisableScrollWithZoomLevelCallback() {
@Override
public void onDisableScrollWithZoomLevelEvent(float v, TMapPoint tMapPoint) {

    }
};

위와 같이 리스너를 등록 후 지도의 특정부분 클릭 후 끝나면 호출이 됩니다.
클릭을 통한 지도이동 및 zoom으로 이어지지 않는 범위내에서요.
scroll이란 부분이 지도 이동을 표현하는건가요?

0 Likes

#7

안녕하세요.
T map API 운영담당자 입니다.

현재 클릭이벤트와 스크롤이벤트를 테스트 해본 결과, 중복된 이벤트 처리가 이루어지고
있는것이 확인 되었습니다. getCenterPoint()함수를 사용하셔서, 중심좌표 이동시
화면이동으로 인식하여 스크롤 콜백이벤트를 실행하시고, 이동이 없을시 스크롤 이벤트가
실행되지 않는 방법으로 구현하시면 될것 같습니다.
아래에 중심좌표 함수관련 링크를 참고하시면 도움이 되실겁니다.


http://tmapapi.sktelecom.com/main.html#android/docs/androidDoc.TMapView_getCenterPoint


감사합니다.

0 Likes