Class InfoWindow

  • All Implemented Interfaces:
    Pickable

    public final class InfoWindow
    extends Overlay
    지도의 특정 지점 또는 마커 위에 열 수 있는 정보 창. 정보 창은 이미지로 특정 지점을 표시한다는 점에서 마커와 유사하나, 다음과 같은 차이가 있습니다.
    • 마커처럼 특정 좌표에 열 수 있을 뿐만 아니라 다른 마커 위에도 열 수 있습니다.
    • 고정된 이미지를 지정하는 마커와 달리 이미지를 반환하는 어댑터를 지정할 수 있으므로, 객체/상황별로 다른 이미지를 노출할 수 있습니다.
    • Constructor Detail

      • InfoWindow

        public InfoWindow()
        기본 생성자.
      • InfoWindow

        public InfoWindow​(@NonNull
                          InfoWindow.Adapter adapter)
        어댑터를 지정하는 생성자.
        Parameters:
        adapter - 어댑터.
    • Method Detail

      • open

        @UiThread
        public void open​(@NonNull
                         Marker marker)
        정보 창을 marker의 위에 엽니다. open(marker, Align.Top)과 동일합니다.
        Parameters:
        marker - 정보 창을 열 마커.
      • open

        @UiThread
        public void open​(@NonNull
                         Marker marker,
                         @NonNull
                         Align align)
        정보 창을 marker에 엽니다. 정보 창을 열 마커는 반드시 지도에 추가된 상태여야 하며, 그렇지 않을 경우 무시됩니다. align을 이용하면 마커의 어느 방향에 정보 창의 앵커를 위치시킬지를 지정할 수 있습니다.
        Parameters:
        marker - 정보 창을 열 마커.
        align - 정보 창을 열 방향.
      • close

        @UiThread
        public void close()
        정보 창을 닫습니다. 정보 창이 열려 있지 않은 경우 무시됩니다.
      • getMarker

        @Nullable
        @UiThread
        public Marker getMarker()
        정보 창이 열려 있는 마커를 반환합니다.
        Returns:
        정보 창이 열려 있는 마커. 정보 창이 마커에 열려 있지 않은 경우 null.
      • getAlign

        @NonNull
        @UiThread
        public Align getAlign()
        정보 창이 마커에 열려 있는 경우 열린 방향을 반환합니다.
        Returns:
        정렬 방향. 마커에 열려 있지 않은 경우 무의미한 값.
      • setMap

        public void setMap​(@Nullable
                           NaverMap map)
        mapnull일 경우 close(), 그렇지 않을 경우 open(NaverMap)을 호출합니다.
        Overrides:
        setMap in class Overlay
        Parameters:
        map - 지도 객체.
      • getGlobalZIndex

        public int getGlobalZIndex()
        전역 Z 인덱스를 반환합니다. 여러 오버레이가 화면에서 겹쳐지면 전역 Z 인덱스가 큰 오버레이가 작은 오버레이를 덮습니다. 또한 값이 0 이상이면 오버레이가 심벌 위에, 0 미만이면 심벌 아래에 그려집니다.

        기본값은 DEFAULT_GLOBAL_Z_INDEX입니다.
        Overrides:
        getGlobalZIndex in class Overlay
        Returns:
        전역 Z 인덱스.
      • setGlobalZIndex

        public void setGlobalZIndex​(int globalZIndex)
        전역 Z 인덱스를 지정합니다. 여러 오버레이가 화면에서 겹쳐지면 전역 Z 인덱스가 큰 오버레이가 작은 오버레이를 덮습니다. 또한 값이 0 이상이면 오버레이가 심벌 위에, 0 미만이면 심벌 아래에 그려집니다.

        기본값은 DEFAULT_GLOBAL_Z_INDEX입니다.
        Overrides:
        setGlobalZIndex in class Overlay
        Parameters:
        globalZIndex - 전역 Z 인덱스.
      • getPosition

        @NonNull
        @UiThread
        public LatLng getPosition()
        좌표를 반환합니다. 좌표는 open(NaverMap)을 호출해 정보 창을 여는 경우 사용되며, open(Marker)을 호출해 여는 경우에는 마커의 위치에 정보 창이 열리므로 무시됩니다.

        기본값은 유효하지 않은(LatLng.isValid()false인) 좌표입니다.
        Returns:
        좌표.
      • setPosition

        @UiThread
        public void setPosition​(@NonNull
                                LatLng position)
        좌표를 지정합니다. 좌표는 open(NaverMap)을 호출해 정보 창을 여는 경우 사용되며, open(Marker)을 호출해 여는 경우에는 마커의 위치에 정보 창이 열리므로 무시됩니다.

        따라서 open(NaverMap)을 호출하기 전에는 반드시 이 메서드를 호출해 좌표를 지정해야 합니다. 만약 position이 유효하지 않은(LatLng.isValid()false인) 좌표라면 Overlay.InvalidCoordinateException이 발생합니다.
        Parameters:
        position - 좌표.
        Throws:
        Overlay.InvalidCoordinateException - position이 유효하지 않은 경우 발생.
      • getAdapter

        @NonNull
        @UiThread
        public InfoWindow.Adapter getAdapter()
        이미지 어댑터를 반환합니다.

        기본값은 DEFAULT_ADAPTER입니다.
        Returns:
        어댑터.
      • setAdapter

        @UiThread
        public void setAdapter​(@NonNull
                               InfoWindow.Adapter adapter)
        이미지 어댑터를 지정합니다.

        기본값은 DEFAULT_ADAPTER입니다.
        Parameters:
        adapter - 어댑터.
      • getAnchor

        @NonNull
        @UiThread
        public android.graphics.PointF getAnchor()
        앵커를 반환합니다. 앵커는 이미지에서 기준이 되는 지점을 의미합니다. 앵커로 지정된 지점이 정보 창의 좌표에 위치합니다. 값의 범위는 (0, 0)~(1, 1)이며, (0, 0)일 경우 이미지의 왼쪽 위, (1, 1)일 경우 이미지의 오른쪽 아래를 의미합니다.

        기본값은 DEFAULT_ANCHOR입니다.
        Returns:
        앵커.
      • setAnchor

        @UiThread
        public void setAnchor​(@NonNull
                              android.graphics.PointF anchor)
        앵커를 지정합니다. 앵커는 이미지에서 기준이 되는 지점을 의미합니다. 앵커로 지정된 지점이 정보 창의 좌표에 위치합니다. 값의 범위는 (0, 0)~(1, 1)이며, (0, 0)일 경우 이미지의 왼쪽 위, (1, 1)일 경우 이미지의 오른쪽 아래를 의미합니다.

        기본값은 DEFAULT_ANCHOR입니다.
        Parameters:
        anchor - 앵커.
      • getOffsetX

        @Px
        @UiThread
        public int getOffsetX()
        정보 창과 좌표 또는 마커 간의 X축 방향 여백을 반환합니다.

        기본값은 0입니다.
        Returns:
        여백. 픽셀 단위.
      • setOffsetX

        @UiThread
        public void setOffsetX​(@Px
                               int offset)
        정보 창과 좌표 또는 마커 간의 X축 방향 여백을 지정합니다.

        기본값은 0입니다.
        Parameters:
        offset - 여백. 픽셀 단위.
      • getOffsetY

        @Px
        @UiThread
        public int getOffsetY()
        정보 창과 좌표 또는 마커 간의 Y축 방향 여백을 반환합니다.

        기본값은 0입니다.
        Returns:
        여백. 픽셀 단위.
      • setOffsetY

        @UiThread
        public void setOffsetY​(@Px
                               int offset)
        정보 창과 좌표 또는 마커 간의 Y축 방향 여백을 지정합니다.

        기본값은 0입니다.
        Parameters:
        offset - 여백. 픽셀 단위.
      • getAlpha

        @UiThread
        public float getAlpha()
        불투명도를 0~1로 반환합니다. 0일 경우 완전히 투명, 1일 경우 완전히 불투명함을 의미합니다.

        기본값은 1입니다.
        Returns:
        불투명도.
      • setAlpha

        @UiThread
        public void setAlpha​(float alpha)
        불투명도를 0~1로 지정합니다. 0일 경우 완전히 투명, 1일 경우 완전히 불투명함을 의미합니다.

        기본값은 1입니다.
        Parameters:
        alpha - 불투명도.
      • invalidate

        @UiThread
        public void invalidate()
        이미지를 다시 그립니다.