Class CameraUpdate


  • public abstract class CameraUpdate
    extends java.lang.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:
    NaverMap.moveCamera(CameraUpdate)
    • Field Detail

      • REASON_DEVELOPER

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

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

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

        public static final int REASON_LOCATION
        위치 정보 갱신으로 카메라가 움직였음을 나타내는 값.
        See Also:
        reason(int), Constant Field Values
    • Method Detail

      • 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
                                            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
                                                   LatLng target,
                                                   double zoom)
        카메라의 좌표를 target으로, 줌 레벨을 zoom으로 변경하는 CameraUpdate 객체를 생성합니다. 기울기 각도, 베어링 각도 등 좌표와 줌 레벨 외의 다른 속성은 변하지 않습니다.
        Parameters:
        target - 새로운 카메라 좌표.
        zoom - 새로운 카메라 줌 레벨.
        Returns:
        CameraUpdate 객체.
      • fitBounds

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

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

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

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

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