안녕하십니까. 회사 내에서 아래와 같은 페이지를 만들고자 합니다.
과거 계속 질문을 하면서 전체적인 방향을 결정하게 되었습니다. 다만, 확인 및 가능여부에 따라 피드백 받고싶은 건이 있어 다시한번 질문글을 남깁니다.
- 최종목적 : 지도위에 한전에서 보유하고 있는 조건에 따라 색을 표현하고자 함
- 폴리곤방식 : 폴리곤의 사이즈를 100*100m 정도로 무주군 전체에 폴리곤을 씌우고자 합니다.
※ 다만, 이러한 방식으로 엄청나게 많은 폴리곤들로 지도를 뒤덮어 버리면,
퍼포먼스가 떨어질 것으로 예상되므로, 아래와 같이 질문을 드립니다.
질문#1 : 수많은 네모 모양의 폴리곤들을 제가 검색한 주소의 인근만 보이게 할 수 있나요?
질문#2 : 수많은 네모 모양의 폴리곤들을 지도의 확대레벨(번지단위로 보일정도로 확대한 레벨부터)에 따라 보이게 할 수 있나요?
-
보통 이렇게 합니다.
- 클라이언트에서 영역좌표를 받으면 그 좌표안에 있는 폴리곤(형상)들만 쿼리하여 내려 보내주는 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/
위의 구조가 아니더라도 서버에서 전체 데이터가 아닌 일정량의 필요한 데이터만 주고 받는 형식이라면 무엇이든 가능할 겁니다. 클라이언트의 부하를 서버가 대신 맡는다 생각하시면 되요.