지도에 표시한 마커의 개수가 많아지면 지도를 움직일때 버벅입니다

image

(사진은 예시를 위해 3550여건의 마커를 넣었습니다)

위 사진처럼 마커의 개수가 많아지면 지도를 드래그할때 지도가 버벅입니다.

마커의 이미지를 4pixel 정도의 작은 이미지를 사용하여도 똑같이 버벅입니다.
(스프라이트 이미지는 사용하지 않았습니다.)

마커의 최대 표시 개수의 제한이 있는건지 아니면 다른 방법을 통해 마커를 그려야 하는건지 문의드립니다.

– 19.01.31 16:56 수정 ( 질문의 정확도를 높이기 위해 상세 코드와 설명을 추가합니다. )

// 3500번 반복호출
<c:forEach items="{3500여개의 좌표}" var="point">
	setMarkerInfo("<c:out value="${point.lat}"/>", "<c:out value="${point.lng}"/>");
</c:forEach>

function setMarkerInfo(lat, lng){
	var latlng = new daum.maps.LatLng(lat, lng);
	var iconImg = "이미지.png";
	var icon = new daum.maps.MarkerImage(
		iconImg,
		new daum.maps.Size(2, 2),
		new daum.maps.Point(1, 1)
	);

	marker = new daum.maps.Marker({
		position: latlng,
		image: icon
	});

	marker.setMap(this.map);
}

https://devtalk.kakao.com/t/topic/56874/2?u=doji.doo

해당 답변을 참고해 주세요.

image

다음지도에서는 많은 수의 마커를 찍어도 전혀 버벅임이 없는데 어떤 방식으로 마커를 생성하는지 궁금합니다.

해당 기능은 마커를 찍은게 아닙니다.
검색 결과 위치에 점을 찍은 타일 이미지를 미리 준비해두고 커스텀타일셋으로 지도 위에 얹은 것이며 마우스 오버와 클릭할때 하이라이트 되는 점 하나만 마커입니다. 마우스와의 충돌검사 및 클릭 이벤트는 알고리즘으로 최대한 빠르게 처리하도록 되어 있고요. 타일 이미지는 좌표계 스펙에 따라 미리 만들어 두고 서비스합니다. 화면에 보이는 타일 이미지만큼만 추가 로딩하면 되기에 많은 장소를 느려짐 없이 표현하는 것이 가능한 것이고요.

1개의 좋아요