클러스터링은 직접 구현하시기를 추천드리는 바입니다.
특히나 back단에서 미리 클러스터링 된 데이터를 내려주는게 베스트고요.
일반적으로
-
축소된 지도에서는
마커가 화면에 많이 보이기 때문에
(서버에서 계산하든, 클라이언트에서 계산하든)그룹핑 알고리즘을 사용하여 대표마커를 찍어서 표현하는게 좋습니다. -
확대된 지도에서는
마커가 일부만 보이기 때문에
현재 보이는 지도 영역을 서버로 전달하여
그 영역에 보이는 마커들만 받아서 뿌리는 방식도 클라이언트의 부하를 줄이는데 도움이 될 수 있습니다.
1번을 2번과 섞어서 사용하거나
2번만 사용하되 축소레벨을 제한하는 방식이 주로 사용됩니다.
마커를 500개나 찍는것은,
어쨌든 좁은 화면에 렌더링해야 할 컴포넌트를 500 * N개를 찍는다는 의미이므로
리스소가 제한되어 있는 컴퓨팅 환경상 느려질 수 밖에 없습니다.
모바일을 더 제약이 심할거고요.
사용자 입장에서 생각해 봐도
디바이스 스크린 사이즈가 작은 모바일에 조밀한 마커들을 한 화면에 보여준다는 것은
그저 데이타가 많다는 것 이상의 정보를 전달하기 힘들며
여러 의미로 사용자 경험을 해치는 일일 수 있습니다.