Skip to content

Rectangle

Rectanglenaver.maps.Rectangle을 React 컴포넌트로 감싼 오버레이 API입니다.

공개 타입

ts
interface RectangleOptionProps {
  map?: naver.maps.Map | null;
  bounds: naver.maps.Bounds | naver.maps.BoundsLiteral;
  strokeWeight?: number;
  strokeOpacity?: number;
  strokeColor?: string;
  strokeStyle?: naver.maps.StrokeStyleType;
  strokeLineCap?: naver.maps.StrokeLineCapType;
  strokeLineJoin?: naver.maps.StrokeLineJoinType;
  fillColor?: string;
  fillOpacity?: number;
  clickable?: boolean;
  visible?: boolean;
  zIndex?: number;
}

interface RectangleLifecycleProps {
  onRectangleReady?: (rectangle: naver.maps.Rectangle) => void;
  onRectangleDestroy?: () => void;
  onRectangleError?: (error: Error) => void;
}

interface RectangleEventProps {
  onClick?: (event: naver.maps.PointerEvent) => void;
  onDblClick?: (event: naver.maps.PointerEvent) => void;
  onMouseDown?: (event: naver.maps.PointerEvent) => void;
  onMouseMove?: (event: naver.maps.PointerEvent) => void;
  onMouseOut?: (event: naver.maps.PointerEvent) => void;
  onMouseOver?: (event: naver.maps.PointerEvent) => void;
  onMouseUp?: (event: naver.maps.PointerEvent) => void;
  onRightClick?: (event: naver.maps.PointerEvent) => void;
  onTouchStart?: (event: naver.maps.PointerEvent) => void;
  onTouchMove?: (event: naver.maps.PointerEvent) => void;
  onTouchEnd?: (event: naver.maps.PointerEvent) => void;
  onBoundsChanged?: (bounds: naver.maps.Bounds) => void;
  onClickableChanged?: (clickable: boolean) => void;
  onFillColorChanged?: (fillColor: string) => void;
  onFillOpacityChanged?: (fillOpacity: number) => void;
  onMapChanged?: (map: naver.maps.Map | null) => void;
  onStrokeColorChanged?: (strokeColor: string) => void;
  onStrokeLineCapChanged?: (strokeLineCap: naver.maps.StrokeLineCapType) => void;
  onStrokeLineJoinChanged?: (strokeLineJoin: naver.maps.StrokeLineJoinType) => void;
  onStrokeOpacityChanged?: (strokeOpacity: number) => void;
  onStrokeStyleChanged?: (strokeStyle: naver.maps.StrokeStyleType) => void;
  onStrokeWeightChanged?: (strokeWeight: number) => void;
  onVisibleChanged?: (visible: boolean) => void;
  onZIndexChanged?: (zIndex: number) => void;
}

export type RectangleProps = RectangleOptionProps & RectangleLifecycleProps & RectangleEventProps;

옵션 프로퍼티

PropTypeDefaultDescription
mapnaver.maps.Map | null-사각형을 바인딩할 지도 인스턴스 (미지정 시 Provider map 사용)
boundsnaver.maps.Bounds | naver.maps.BoundsLiteral- (required)사각형 경계(bounds)
strokeWeightnumber-외곽선 두께
strokeOpacitynumber-외곽선 불투명도 (0~1)
strokeColorstring-외곽선 색상(CSS color)
strokeStylenaver.maps.StrokeStyleType-외곽선 스타일
strokeLineCapnaver.maps.StrokeLineCapType-외곽선 끝 마감 스타일
strokeLineJoinnaver.maps.StrokeLineJoinType-외곽선 연결부 마감 스타일
fillColorstring-내부 채움 색상(CSS color)
fillOpacitynumber-내부 채움 불투명도 (0~1)
clickableboolean-클릭/포인터 이벤트 수신 여부
visibleboolean-노출 여부
zIndexnumber-쌓임 순서

생명주기 프로퍼티

PropTypeDescription
onRectangleReady(rectangle: naver.maps.Rectangle) => void인스턴스 생성 완료 시 호출
onRectangleDestroy() => void인스턴스 정리 완료 시 호출
onRectangleError(error: Error) => void인스턴스 생성 실패 시 호출

이벤트 프로퍼티

PropTypeDescription
onClick(event: naver.maps.PointerEvent) => void사각형 클릭 시 호출
onDblClick(event: naver.maps.PointerEvent) => void사각형 더블클릭 시 호출
onMouseDown(event: naver.maps.PointerEvent) => void마우스 버튼 다운 시 호출
onMouseMove(event: naver.maps.PointerEvent) => void마우스 이동 시 호출
onMouseOut(event: naver.maps.PointerEvent) => void포인터가 사각형 밖으로 나갈 때 호출
onMouseOver(event: naver.maps.PointerEvent) => void포인터가 사각형 안으로 들어올 때 호출
onMouseUp(event: naver.maps.PointerEvent) => void마우스 버튼 업 시 호출
onRightClick(event: naver.maps.PointerEvent) => void우클릭 시 호출
onTouchStart(event: naver.maps.PointerEvent) => void터치 시작 시 호출
onTouchMove(event: naver.maps.PointerEvent) => void터치 이동 시 호출
onTouchEnd(event: naver.maps.PointerEvent) => void터치 종료 시 호출
onBoundsChanged(bounds: naver.maps.Bounds) => void경계(bounds) 변경 시 호출
onClickableChanged(clickable: boolean) => void클릭 가능 여부 변경 시 호출
onFillColorChanged(fillColor: string) => void채움 색상 변경 시 호출
onFillOpacityChanged(fillOpacity: number) => void채움 불투명도 변경 시 호출
onMapChanged(map: naver.maps.Map | null) => void바인딩된 map 변경 시 호출
onStrokeColorChanged(strokeColor: string) => void외곽선 색상 변경 시 호출
onStrokeLineCapChanged(strokeLineCap: naver.maps.StrokeLineCapType) => void외곽선 끝 마감 변경 시 호출
onStrokeLineJoinChanged(strokeLineJoin: naver.maps.StrokeLineJoinType) => void외곽선 연결부 마감 변경 시 호출
onStrokeOpacityChanged(strokeOpacity: number) => void외곽선 불투명도 변경 시 호출
onStrokeStyleChanged(strokeStyle: naver.maps.StrokeStyleType) => void외곽선 스타일 변경 시 호출
onStrokeWeightChanged(strokeWeight: number) => void외곽선 두께 변경 시 호출
onVisibleChanged(visible: boolean) => void노출 여부 변경 시 호출
onZIndexChanged(zIndex: number) => void쌓임 순서 변경 시 호출

Ref 메서드

MethodSignatureDescription
getInstance() => naver.maps.Rectangle | null내부 Rectangle 인스턴스를 반환
getAreaSize(...args: Parameters<naver.maps.Rectangle["getAreaSize"]>) => ReturnType<naver.maps.Rectangle["getAreaSize"]> | undefined면적(제곱미터) 조회
getBounds(...args: Parameters<naver.maps.Rectangle["getBounds"]>) => ReturnType<naver.maps.Rectangle["getBounds"]> | undefined좌표 경계 조회
getClickable(...args: Parameters<naver.maps.Rectangle["getClickable"]>) => ReturnType<naver.maps.Rectangle["getClickable"]> | undefined클릭 가능 여부 조회
getDrawingRect(...args: Parameters<naver.maps.Rectangle["getDrawingRect"]>) => ReturnType<naver.maps.Rectangle["getDrawingRect"]> | undefined렌더링 경계 조회
getElement(...args: Parameters<naver.maps.Rectangle["getElement"]>) => ReturnType<naver.maps.Rectangle["getElement"]> | undefinedDOM 요소 조회
getMap(...args: Parameters<naver.maps.Rectangle["getMap"]>) => ReturnType<naver.maps.Rectangle["getMap"]> | undefined바인딩 map 조회
getOptions(...args: Parameters<naver.maps.Rectangle["getOptions"]>) => ReturnType<naver.maps.Rectangle["getOptions"]> | undefined옵션 조회
getPanes(...args: Parameters<naver.maps.Rectangle["getPanes"]>) => ReturnType<naver.maps.Rectangle["getPanes"]> | undefinedpanes 조회
getProjection(...args: Parameters<naver.maps.Rectangle["getProjection"]>) => ReturnType<naver.maps.Rectangle["getProjection"]> | undefinedprojection 조회
getStyles(...args: Parameters<naver.maps.Rectangle["getStyles"]>) => ReturnType<naver.maps.Rectangle["getStyles"]> | undefined스타일 조회
getVisible(...args: Parameters<naver.maps.Rectangle["getVisible"]>) => ReturnType<naver.maps.Rectangle["getVisible"]> | undefined노출 여부 조회
getZIndex(...args: Parameters<naver.maps.Rectangle["getZIndex"]>) => ReturnType<naver.maps.Rectangle["getZIndex"]> | undefinedzIndex 조회
setBounds(...args: Parameters<naver.maps.Rectangle["setBounds"]>) => ReturnType<naver.maps.Rectangle["setBounds"]> | undefined경계(bounds) 설정
setClickable(...args: Parameters<naver.maps.Rectangle["setClickable"]>) => ReturnType<naver.maps.Rectangle["setClickable"]> | undefined클릭 가능 여부 설정
setMap(...args: Parameters<naver.maps.Rectangle["setMap"]>) => ReturnType<naver.maps.Rectangle["setMap"]> | undefinedmap 바인딩/해제
setOptions(...args: Parameters<naver.maps.Rectangle["setOptions"]>) => ReturnType<naver.maps.Rectangle["setOptions"]> | undefined옵션 일괄/부분 설정
setStyles(...args: Parameters<naver.maps.Rectangle["setStyles"]>) => ReturnType<naver.maps.Rectangle["setStyles"]> | undefined스타일 일괄/부분 설정
setVisible(...args: Parameters<naver.maps.Rectangle["setVisible"]>) => ReturnType<naver.maps.Rectangle["setVisible"]> | undefined노출 여부 설정
setZIndex(...args: Parameters<naver.maps.Rectangle["setZIndex"]>) => ReturnType<naver.maps.Rectangle["setZIndex"]> | undefinedzIndex 설정

동작 규칙

  • 컴포넌트 언마운트 시 이벤트 리스너 정리 후 setMap(null)을 호출합니다.
  • map prop을 지정하지 않으면 NaverMapProvider 컨텍스트의 map 인스턴스를 사용합니다.