안녕하세요
“커스텀오버레이를 드래그 하기” 소스 부분를 조금 변경 하여 개발중인데
customoverlay 속도 이슈 때문에 문의 드립니다
(사실 C#만 개발 해왔는데 자바스크립트는 정말 초보 수준입니다ㅠ)
제가 구현하고자 하는 것은 지도 맵클릭할때 마다 customoverlay 계속 생성 후
각각의 customoverlay 를 개별로 드래그 하는 것입니다
그래서 제가 구현한 방법은 "content.myParam"에 customoverlay 객체를 할당하여 추후 onMouseDown 나 onMouseUp 이벤트 핸들러에서 개별 처리를 위해서 아래와 같이 구현 했습니다. 제가 원하는대로 개발은 되었으나, 드래그시 버벅 거림이 장난 아닙니다 ㅠ
혹시 해결 방안이 있을까요???
function mapClickListener(mouseEvent) {
var content = document.createElement('div');
content.className = 'red';
content.innerHTML = "10";
var customoverlay = new daum.maps.CustomOverlay({
map: map,
content: content,
position: mouseEvent.latLng
});
content.myParam = customoverlay;
addEventHandle(content, 'mousedown', onMouseDown);
addEventHandle(document, 'mouseup', onMouseUp);
}
function onMouseDown(e) {
// 커스텀 오버레이를 드래그 할 때, 내부 텍스트가 영역 선택되는 현상을 막아줍니다.
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
var customoverlay =e.target.myParam;
var proj = map.getProjection(), // 지도 객체로 부터 화면픽셀좌표, 지도좌표간 변환을 위한 MapProjection 객체를 얻어옵니다
overlayPos = customoverlay.getPosition(); // 커스텀 오버레이의 현재 위치를 가져옵니다
// 커스텀오버레이에서 마우스 관련 이벤트가 발생해도 지도가 움직이지 않도록 합니다
daum.maps.event.preventMap();
// mousedown된 좌표를 설정합니다
startX = e.clientX;
startY = e.clientY;
// mousedown됐을 때의 커스텀 오버레이의 좌표를
// 지도 컨테이너내 픽셀 좌표로 변환합니다
startOverlayPoint = proj.containerPointFromCoords(overlayPos);
// document에 mousemove 이벤트를 등록합니다
addEventHandle(document, 'mousemove', onMouseMove);
}