MapView_ZoomIn_Out 따라가보자

2019, Apr 12    

ZoomIn

  • 마우스 휠 이벤트 -> drawingObject.Scroll()호출
  • 이벤트 Delta 값 확인하고 ZoomIn 호출
  • ZoomIn 단계는 0 에서 0.5 사이가 되도록 조절
    • Zoom Set 하면 SetBoundingRect 호출 -> 다시 그림.
  • PointToOrigin 호출

PointToOrigin 하는 일은?

  • ZoomIn 했을 때 보여줄 왼쪽 위 모서리 좌표 계산
  • 현재 모서리 좌표와 늘어난 지도 사이즈 매개변수
  • 현재 모서리 좌표가 새로운 모서리 좌표의 가운데에 오게끔 계산
    • 컨테이너 상단 가운데 좌표얻기.
    • 늘어난 지도에서 좌표 구하기.
    • 좌표가 컨테이너 상단 가운데에 오게 계산.

SetBoundingRect 호출

  • 모서리 좌상단 좌표 저장.
  • 현재 지도 이미지 사이즈 저장.

AvoidOutOfScreen 호출

  • 모서리 좌상단 좌표가 좌표범위를 벗어났는지 판단.
    • 넘어가면 0으로 Set.
  • 모서리 좌성단 좌표 + 컨테이너 넓이가 지도 좌표를 넘어가는지 판단.
    • 넘어가면 지도 사이즈 - 컨테이너 사이즈 좌표로 Set.

ZoomOut

  • Zoom에서 step보다 작거나 같은 수 빼서 Zoom Set.