Class CameraUpdate

java.lang.Object
com.naver.maps.map.CameraUpdate

public abstract class CameraUpdate extends Object
지도를 바라보는 카메라의 이동을 정의하는 클래스. 이 클래스의 인스턴스는 직접 생성할 수 없고, 팩토리 메서드를 이용해서 생성할 수 있습니다. 생성한 인스턴스를 파라미터로 삼아 NaverMap.moveCamera(CameraUpdate)를 호출하면 지도를 이동시킬 수 있습니다.

카메라의 이동은 다음과 같은 다섯 가지 요소로 구성됩니다.
  • 카메라의 위치: 카메라를 이동할 위치. CameraUpdate를 생성하는 팩토리 메서드의 파라미터로 지정합니다.
  • 피봇 지점: 카메라 이동의 기준점이 되는 지점. 피봇 지점을 지정하면 이동, 줌 레벨 변경, 회전의 기준점이 해당 지점이 됩니다. pivot(PointF)으로 지정합니다.
  • 애니메이션: 카메라 이동 시 적용될 애니메이션. 애니메이션의 유형과 시간을 지정할 수 있습니다. animate(CameraAnimation) 또는 animate(CameraAnimation, long)로 지정합니다.
  • 이동 원인: 카메라 이동의 원인. 이 값을 지정하면 NaverMap.OnCameraChangeListener.onCameraChange(int, boolean)reason 파라미터로 전달됩니다. reason(int)으로 지정합니다.
  • 콜백: 카메라 이동이 완료된 후 호출될 콜백. 카메라 이동이 방해 없이 완료된 경우와 취소된 경우를 구분할 수 있습니다. finishCallback(FinishCallback)cancelCallback(CancelCallback)으로 지정합니다.
See Also:
  • Field Details

    • REASON_DEVELOPER

      public static final int REASON_DEVELOPER
      개발자가 API를 호출해 카메라가 움직였음을 나타내는 값.
      See Also:
    • REASON_GESTURE

      public static final int REASON_GESTURE
      사용자의 제스처로 인해 카메라가 움직였음을 나타내는 값.
      See Also:
    • REASON_CONTROL

      public static final int REASON_CONTROL
      사용자의 버튼 선택으로 인해 카메라가 움직였음을 나타내는 값.
      See Also:
    • REASON_LOCATION

      public static final int REASON_LOCATION
      위치 정보 갱신으로 카메라가 움직였음을 나타내는 값.
      See Also:
    • REASON_CONTENT_PADDING

      public static final int REASON_CONTENT_PADDING
      콘텐츠 패딩 변경으로 카메라가 움직였음을 나타내는 값.
      See Also:
    • DEFAULT_ANIMATION_DURATION

      public static final int DEFAULT_ANIMATION_DURATION
      기본 애니메이션 시간을 의미하는 상수. 애니메이션 시간이 이 값으로 지정되었을 경우 NaverMap.setDefaultCameraAnimationDuration(int)으로 지정된 시간이 적용됩니다.
      See Also:
  • Method Details

    • withParams

      @NonNull public static CameraUpdate withParams(@NonNull CameraUpdateParams params)
      params를 이용해 카메라를 이동하는 CameraUpdate 객체를 생성합니다.
      Parameters:
      params - 카메라 이동에 사용할 파라미터.
      Returns:
      CameraUpdate 객체.
    • toCameraPosition

      @NonNull public static CameraUpdate toCameraPosition(@NonNull CameraPosition position)
      카메라를 position 위치로 이동하는 CameraUpdate 객체를 생성합니다.
      Parameters:
      position - 새로운 카메라 위치.
      Returns:
      CameraUpdate 객체.
    • scrollTo

      @NonNull public static CameraUpdate scrollTo(@NonNull com.naver.maps.geometry.LatLng target)
      카메라의 좌표를 target으로 변경하는 CameraUpdate 객체를 생성합니다. 줌 레벨, 기울기 각도, 베어링 각도 등 좌표 외의 다른 속성은 변하지 않습니다.
      Parameters:
      target - 새로운 카메라 좌표.
      Returns:
      CameraUpdate 객체.
    • scrollBy

      @NonNull public static CameraUpdate scrollBy(@NonNull android.graphics.PointF delta)
      카메라를 현재 위치에서 delta 픽셀만큼 이동하도록 지정하는 CameraUpdate 객체를 생성합니다. 줌 레벨, 기울기 각도, 베어링 각도 등 좌표 외의 다른 속성은 변하지 않습니다.
      Parameters:
      delta - 이동할 거리. 픽셀 단위.
      Returns:
      CameraUpdate 객체.
    • zoomTo

      @NonNull public static CameraUpdate zoomTo(double zoom)
      카메라의 줌 레벨을 zoom으로 변경하는 CameraUpdate 객체를 생성합니다. 좌표, 기울기 각도, 베어링 각도 등 줌 레벨 외의 다른 속성은 변하지 않습니다.
      Parameters:
      zoom - 새로운 카메라 줌 레벨.
      Returns:
      CameraUpdate 객체.
    • zoomBy

      @NonNull public static CameraUpdate zoomBy(double delta)
      카메라의 줌 레벨을 delta만큼 변경하는 CameraUpdate 객체를 생성합니다. 좌표, 기울기 각도, 베어링 각도 등 줌 레벨 외의 다른 속성은 변하지 않습니다.
      Parameters:
      delta - 줌 레벨의 변화량.
      Returns:
      CameraUpdate 객체.
    • zoomIn

      @NonNull public static CameraUpdate zoomIn()
      카메라의 줌 레벨을 1만큼 증가하는 CameraUpdate 객체를 생성합니다. 좌표, 기울기 각도, 베어링 각도 등 줌 레벨 외의 다른 속성은 변하지 않습니다.
      Returns:
      CameraUpdate 객체.
    • zoomOut

      @NonNull public static CameraUpdate zoomOut()
      카메라의 줌 레벨을 1만큼 감소하는 CameraUpdate 객체를 생성합니다. 좌표, 기울기 각도, 베어링 각도 등 줌 레벨 외의 다른 속성은 변하지 않습니다.
      Returns:
      CameraUpdate 객체.
    • scrollAndZoomTo

      @NonNull public static CameraUpdate scrollAndZoomTo(@NonNull com.naver.maps.geometry.LatLng target, double zoom)
      카메라의 좌표를 target으로, 줌 레벨을 zoom으로 변경하는 CameraUpdate 객체를 생성합니다. 기울기 각도, 베어링 각도 등 좌표와 줌 레벨 외의 다른 속성은 변하지 않습니다.
      Parameters:
      target - 새로운 카메라 좌표.
      zoom - 새로운 카메라 줌 레벨.
      Returns:
      CameraUpdate 객체.
    • fitBounds

      @NonNull public static CameraUpdate fitBounds(@NonNull com.naver.maps.geometry.LatLngBounds bounds)
      bounds가 화면에 온전히 보이는 좌표와 최대 줌 레벨로 카메라의 위치를 변경하는 CameraUpdate 객체를 생성합니다. 기울기 각도와 베어링 각도는 0으로 변경되며, 피봇 지점은 무시됩니다.
      Parameters:
      bounds - 카메라로 볼 영역.
      Returns:
      CameraUpdate 객체.
    • fitBounds

      @NonNull public static CameraUpdate fitBounds(@NonNull com.naver.maps.geometry.LatLngBounds bounds, @Px int padding)
      bounds가 화면에 온전히 보이는 좌표와 최대 줌 레벨로 카메라의 위치를 변경하는 CameraUpdate 객체를 생성합니다. 기울기 각도와 베어링 각도는 0으로 변경되며, 피봇 지점은 무시됩니다.
      Parameters:
      bounds - 카메라로 볼 영역.
      padding - 카메라가 변경된 후 영역과 지도 화면 간 확보할 최소 여백. 픽셀 단위.
      Returns:
      CameraUpdate 객체.
    • fitBounds

      @NonNull public static CameraUpdate fitBounds(@NonNull com.naver.maps.geometry.LatLngBounds bounds, @Px int paddingLeft, @Px int paddingTop, @Px int paddingRight, @Px int paddingBottom)
      bounds가 화면에 온전히 보이는 좌표와 최대 줌 레벨로 카메라의 위치를 변경하는 CameraUpdate 객체를 생성합니다. 기울기 각도와 베어링 각도는 0으로 변경되며, 피봇 지점은 무시됩니다.
      Parameters:
      bounds - 카메라로 볼 영역.
      paddingLeft - 카메라가 변경된 후 영역과 지도 화면 간 확보할 왼쪽 최소 여백. 픽셀 단위.
      paddingTop - 카메라가 변경된 후 영역과 지도 화면 간 확보할 위쪽 최소 여백. 픽셀 단위.
      paddingRight - 카메라가 변경된 후 영역과 지도 화면 간 확보할 오른쪽 최소 여백. 픽셀 단위.
      paddingBottom - 카메라가 변경된 후 영역과 지도 화면 간 확보할 아래쪽 최소 여백. 픽셀 단위.
      Returns:
      CameraUpdate 객체.
    • pivot

      @NonNull public CameraUpdate pivot(@NonNull android.graphics.PointF pivot)
      피봇 지점을 지정합니다. 0, 0일 경우 왼쪽 위, 1, 1일 경우 오른쪽 아래 지점을 의미합니다. fitBounds()를 이용해 객체를 생성한 경우에는 무시됩니다.
      Parameters:
      pivot - 피봇 지점.
      Returns:
      객체 자신.
    • animate

      @NonNull public CameraUpdate animate(@NonNull CameraAnimation animation)
      카메라 이동 시 적용할 애니메이션을 지정합니다. 애니메이션의 시간은 DEFAULT_ANIMATION_DURATION으로 지정됩니다. animationCameraAnimation.None일 경우 지도가 애니메이션 없이 즉시 이동됩니다.
      Parameters:
      animation - 애니메이션 유형.
      Returns:
      객체 자신.
      See Also:
    • animate

      @NonNull public CameraUpdate animate(@NonNull CameraAnimation animation, long duration)
      카메라 이동 시 적용할 애니메이션을 지정합니다. animationCameraAnimation.None이거나 duration0인 경우 지도가 애니메이션 없이 즉시 이동됩니다.
      Parameters:
      animation - 애니메이션 유형.
      duration - 애니메이션의 시간. 밀리초 단위.
      Returns:
      객체 자신.
      See Also:
    • reason

      public CameraUpdate reason(int reason)
      카메라 이동의 원인을 지정합니다.

      기본값은 REASON_DEVELOPER입니다.
      Parameters:
      reason - 카메라 이동의 원인.
      Returns:
      객체 자신.
    • finishCallback

      @NonNull public CameraUpdate finishCallback(@Nullable CameraUpdate.FinishCallback callback)
      카메라 이동이 완료된 후 호출될 콜백을 지정합니다.
      Parameters:
      callback - 콜백 객체.
      Returns:
      객체 자신.
      See Also:
    • cancelCallback

      @NonNull public CameraUpdate cancelCallback(@Nullable CameraUpdate.CancelCallback callback)
      카메라 이동이 취소된 후 호출될 콜백을 지정합니다.
      Parameters:
      callback - 콜백 객체.
      Returns:
      객체 자신.
      See Also: