보통 이렇게 합니다.
- 클라이언트에서 영역좌표를 받으면 그 좌표안에 있는 폴리곤(형상)들만 쿼리하여 내려 보내주는 API 서비스 제작
- 지도에 보이는 영역 (LatLngBounds)의 남서좌표와 북동좌표값을 추출
http://apis.map.daum.net/web/sample/mapInfo/
Map.getBounds()
LatLngBounds.getSouthWest()
LatLngBounds.getNorthEast() - 위 좌표를 API를 통해 호출하여 받은 형상 데이타를 Polygon 객체를 통해서 표출
이렇게 하면 보이는 영역의 형상들만 그릴 수 있기 때문에 꽤나 복잡한 형상도 소화할 수 있습니다.
지도 이벤트 중, zoom_changed
이벤트 핸들러에서 Map.getLevel()로 지도의 레벨을 확인한 다음 원하는 레벨 이하에서는 1번에서 만든 API를 호출하게끔 하면 됩니다.
http://apis.map.daum.net/web/sample/addMapZoomChangedEvent/
위의 구조가 아니더라도 서버에서 전체 데이터가 아닌 일정량의 필요한 데이터만 주고 받는 형식이라면 무엇이든 가능할 겁니다. 클라이언트의 부하를 서버가 대신 맡는다 생각하시면 되요.