Class InfoWindow

java.lang.Object
com.naver.maps.map.overlay.Overlay
com.naver.maps.map.overlay.InfoWindow
All Implemented Interfaces:
Pickable

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

    • DEFAULT_ADAPTER

      @NonNull public static final InfoWindow.Adapter DEFAULT_ADAPTER
      기본 어댑터. 빈 말풍선이 나타납니다.
      See Also:
    • DEFAULT_GLOBAL_Z_INDEX

      public static final int DEFAULT_GLOBAL_Z_INDEX
      기본 전역 Z 인덱스.
      See Also:
    • DEFAULT_ANCHOR

      @NonNull public static final android.graphics.PointF DEFAULT_ANCHOR
      기본 앵커. 가운데 아래를 가리킵니다.
      See Also:
  • Constructor Details

    • InfoWindow

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

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

    • 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 - 정보 창을 열 방향.
    • open

      @UiThread public void open(@NonNull NaverMap map)
      정보 창을 setPosition(LatLng)으로 지정한 지점에 엽니다.

      정보 창을 특정 지점에 열기 전에는 반드시 setPosition(LatLng)로 좌표를 지정해야 합니다. 그렇지 않을 경우 Overlay.InvalidCoordinateException이 발생합니다.
      Parameters:
      map - 정보 창을 열 지도 객체.
      Throws:
      Overlay.InvalidCoordinateException - position을 지정하지 않은 경우 발생.
    • 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 com.naver.maps.geometry.LatLng getPosition()
      좌표를 반환합니다. 좌표는 open(NaverMap)을 호출해 정보 창을 여는 경우 사용되며, open(Marker)을 호출해 여는 경우에는 마커의 위치에 정보 창이 열리므로 무시됩니다.

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

      @UiThread public void setPosition(@NonNull com.naver.maps.geometry.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

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

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

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

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

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