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

Tech.Forum

마커의 label, title, icon 관련 문의 입니다.

#1

첫째, 생성된 마커를 재활용 하려고 하는데 label, title, icon 을 변경 할 수 있는 방법이 있나요?

둘째, 마커 한번에 100개 추가하기 예제를 바탕으로 mfc에서 작업을 하고 있습니다.
TMap(v2)에 그려진 마커를 지우고 다시 그리면 메모리가 계속해서 증가합니다.
프로그램 특성상 화면을 10초에 한번 기존 마커를 지우고 다시 마커를 표시하는데 ,
메모리가 반환이 안되고 계속 증가해서 문제가 발생합니다.
해결 방법이 없을까요?

0 Likes

#2

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

문의주신 순서대로 답변 드리겠습니다.

첫째, 생성된 마커의 label, title, icon을 변경하시기 위해선,
변경하고자 하는 옵션값을 변경하여, 다시 마커를 생성하셔야 됩니다.

둘째, 마커를 지우고 다시 생성하는 과정인
마커의 배열을 반복문으로 setMap()이후 다시 마커객체를
생성하여 push하시는 것으로 보입니다만,
말씀하신 마커를 지우고 다시 생성하는 순서를
정확히 알지 못하여 정확한 답변을 드리기 어렵습니다.
소스를 남겨주시면 정확한 답변을 드리도록 하겠습니다.

추가적으로, 마커를 지우시게되면 마커의 배열 또한, 초기화를 하셔야 합니다.

감사합니다.

0 Likes

#3
// MFC 다이얼로그에서 10초에 한번씩  DisplayDrivers() 함수를 호출 합니다.
// 다이얼로그를 종료 하면 메모리는 정상적으로 반환됩니다.
// 하지만 보통 몇시간동안 띄워놓는 화면이라 비정상적 종료가 일어 납니다. 


var map;
var markers = [];

function initTmap()
{
    map = new Tmapv2.Map("map_div",
        {
            center: new Tmapv2.LatLng(37.566481622437934, 126.98502302169841), 
            width: "100%",      // 지도의 넓이
            height: "630px",   // 지도의 높이
            httpsMode: false
        });
}

function removeMarkers()
{
    for (var i = 0; i < markers.length; i++) {
        markers[i].setMap(null);
    }
    markers = [];
}

function DisplayDrivers(strDrivers)
{
        removeMarkers();

        var DriverArray = strDrivers.split('|');
        for (var i = 0; i < DriverArray.length; i++)
        {
            var InfoArray = DriverArray[i].split('^');
            var lon = InfoArray[0];
            var lat = InfoArray[1];
            var icon_idx = InfoArray[2];
            var label1 = InfoArray[3];
            var content = "<span style='font-size: 13px; background-color:#FFFF00;'>" + label1 + "</span>";
            var tooltip = "<span style='font-size: 13px;float:left; text-align:left;' >" + InfoArray[4] + "</span>";
            var wgs84 = new Tmapv2.LatLng(lat, lon);
            var icon_path = GetIcon(icon_idx);

            var marker = new Tmapv2.Marker({
                position: wgs84, 
                label: content,  
                title: tooltip,
                icon: icon_path
            });

            marker.setMap(map); //Marker가 표시될 Map 설정.
            markers.push(marker);
        }
}
0 Likes

#4

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

검토 후 답변 드리도록 하겠습니다.

감사합니다.

0 Likes

#5

검토 후 답변 주신다고 했는데 아직 없어서 경과가 어떻게 되고 있나 해서요 ^^;

0 Likes

#6

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

불편을 드려서 죄송합니다.
현재 문의주신 내용을 검토 중에 있으며,
문의 주신 문제에 대하여 빠른시일내에 해결하도록 하고있습니다.
완료가 되는 대로 답변 다시 드리겠습니다.

감사합니다.

0 Likes

#7

검토가 많이 늦어지는것 같아 남겨봅니다.
아직 v2로 업데이트를 못하고 있습니다.
생성된 마커를 재활용 할 수 있게 하는것도 검토 부탁드립니다.
label, title, icon 변경이 가능하다면 v2로 업데이트 가능 할듯 합니다.

감사합니다.

0 Likes

#8

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

생성된 마커의 label, title, icon등을 변경하는 메소드가
이번 정기 업데이트에 포함이 되어, 업데이트가 적용되는
7월8일 이후부터 해당 내용을 사용하실 수 있습니다.
다만, 마커의 메모리 관련하여서는 아직 다음 업데이트에
포함이 되지 않아, 빠른 시일내에 업데이트 항목에
포함되도록 하겠습니다.

감사합니다.

0 Likes