Skip to content

Polyline

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

공개 타입

ts
interface PolylineOptionProps {
  map?: naver.maps.Map | null;
  path: naver.maps.ArrayOfCoords | naver.maps.KVOArrayOfCoords | naver.maps.ArrayOfCoordsLiteral;
  strokeWeight?: number;
  strokeOpacity?: number;
  strokeColor?: string;
  strokeStyle?: naver.maps.StrokeStyleType;
  strokeLineCap?: naver.maps.StrokeLineCapType;
  strokeLineJoin?: naver.maps.StrokeLineJoinType;
  clickable?: boolean;
  visible?: boolean;
  zIndex?: number;
  startIcon?: naver.maps.PointingIcon;
  startIconSize?: number;
  endIcon?: naver.maps.PointingIcon;
  endIconSize?: number;
}

interface PolylineLifecycleProps {
  onPolylineReady?: (polyline: naver.maps.Polyline) => void;
  onPolylineDestroy?: () => void;
  onPolylineError?: (error: Error) => void;
}

interface PolylineEventProps {
  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;
  onClickableChanged?: (clickable: boolean) => void;
  onEndIconChanged?: (icon: naver.maps.PointingIcon) => void;
  onEndIconSizeChanged?: (size: number) => void;
  onMapChanged?: (map: naver.maps.Map | null) => void;
  onPathChanged?: (
    path: naver.maps.ArrayOfCoords | naver.maps.KVOArrayOfCoords | naver.maps.ArrayOfCoordsLiteral
  ) => void;
  onStartIconChanged?: (icon: naver.maps.PointingIcon) => void;
  onStartIconSizeChanged?: (size: number) => 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 PolylineProps = PolylineOptionProps & PolylineLifecycleProps & PolylineEventProps;

옵션 프로퍼티

PropTypeDefaultDescription
mapnaver.maps.Map | null-폴리라인을 바인딩할 지도 인스턴스 (미지정 시 Provider map 사용)
pathArrayOfCoords | KVOArrayOfCoords | ArrayOfCoordsLiteral- (required)폴리라인 경로 좌표
strokeWeightnumber-외곽선 두께
strokeOpacitynumber-외곽선 불투명도 (0~1)
strokeColorstring-외곽선 색상(CSS color)
strokeStylenaver.maps.StrokeStyleType-외곽선 스타일
strokeLineCapnaver.maps.StrokeLineCapType-외곽선 끝 마감 스타일
strokeLineJoinnaver.maps.StrokeLineJoinType-외곽선 연결부 마감 스타일
clickableboolean-클릭/포인터 이벤트 수신 여부
visibleboolean-노출 여부
zIndexnumber-쌓임 순서
startIconnaver.maps.PointingIcon-선 시작점 아이콘
startIconSizenumber-시작점 아이콘 크기
endIconnaver.maps.PointingIcon-선 끝점 아이콘
endIconSizenumber-끝점 아이콘 크기

생명주기 프로퍼티

PropTypeDescription
onPolylineReady(polyline: naver.maps.Polyline) => void인스턴스 생성 완료 시 호출
onPolylineDestroy() => void인스턴스 정리 완료 시 호출
onPolylineError(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터치 종료 시 호출
onClickableChanged(clickable: boolean) => void클릭 가능 여부 변경 시 호출
onEndIconChanged(icon: naver.maps.PointingIcon) => void끝 아이콘 변경 시 호출
onEndIconSizeChanged(size: number) => void끝 아이콘 크기 변경 시 호출
onMapChanged(map: naver.maps.Map | null) => void바인딩된 map 변경 시 호출
onPathChanged(path: naver.maps.ArrayOfCoords | naver.maps.KVOArrayOfCoords | naver.maps.ArrayOfCoordsLiteral) => voidpath 변경 시 호출
onStartIconChanged(icon: naver.maps.PointingIcon) => void시작 아이콘 변경 시 호출
onStartIconSizeChanged(size: number) => 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쌓임 순서 변경 시 호출

Ref 메서드

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

동작 규칙

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