NaverMap
NaverMap 컴포넌트는 네이버 지도를 렌더링합니다. Container 컴포넌트 내부에서 사용해야 합니다.
사용법
import { Container as MapDiv, NaverMap } from 'react-naver-maps';
<MapDiv style={{ width: '100%', height: '400px' }}>
<NaverMap
defaultCenter={new navermaps.LatLng(37.3595704, 127.105399)}
defaultZoom={15}
/>
</MapDiv>;
Controlled vs Uncontrolled
NaverMap은 center/defaultCenter, zoom/defaultZoom 등 controlled/uncontrolled 패턴을 지원합니다.
defaultCenter: 초기 중심 좌표 (uncontrolled)center: 중심 좌표 (controlled — 외부에서 값을 관리)
Props
| 이름 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
children | React.ReactNode | - | - | - |
center | naver.maps.Coord | naver.maps.CoordLiteral | undefined | - | - | - |
zoom | number | undefined | - | - | - |
bounds | naver.maps.Bounds | naver.maps.BoundsLiteral | undefined | - | - | - |
mapTypeId | naver.maps.MapTypeId | undefined | - | - | - |
size | naver.maps.Size | naver.maps.SizeLiteral | undefined | - | - | - |
centerPoint | naver.maps.Point | naver.maps.PointLiteral | undefined | - | - | - |
defaultCenter | naver.maps.Coord | naver.maps.CoordLiteral | undefined | - | - | - |
defaultZoom | number | undefined | - | - | - |
defaultBounds | naver.maps.Bounds | naver.maps.BoundsLiteral | undefined | - | - | - |
defaultMapTypeId | naver.maps.MapTypeId | undefined | - | - | - |
defaultSize | naver.maps.Size | naver.maps.SizeLiteral | undefined | - | - | - |
defaultCenterPoint | naver.maps.Point | naver.maps.PointLiteral | undefined | - | - | - |
minZoom | number | undefined | - | - | - |
maxZoom | number | undefined | - | - | - |
logoControl | boolean | undefined | - | - | - |
background | string | undefined | - | - | - |
baseTileOpacity | number | undefined | - | - | - |
draggable | boolean | undefined | - | - | - |
scrollWheel | boolean | undefined | - | - | - |
pinchZoom | boolean | undefined | - | - | - |
keyboardShortcuts | boolean | undefined | - | - | - |
disableDoubleClickZoom | boolean | undefined | - | - | - |
disableDoubleTapZoom | boolean | undefined | - | - | - |
disableTwoFingerTapZoom | boolean | undefined | - | - | - |
disableKineticPan | boolean | undefined | - | - | - |
tileTransition | boolean | undefined | - | - | - |
logoControlOptions | naver.maps.ControlOptions | undefined | - | - | - |
mapDataControl | boolean | undefined | - | - | - |
mapDataControlOptions | naver.maps.ControlOptions | undefined | - | - | - |
mapTypeControl | boolean | undefined | - | - | - |
mapTypeControlOptions | naver.maps.MapTypeControlOptions | undefined | - | - | - |
scaleControl | boolean | undefined | - | - | - |
scaleControlOptions | naver.maps.ControlOptions | undefined | - | - | - |
zoomControl | boolean | undefined | - | - | - |
zoomControlOptions | naver.maps.ZoomControlOptions | undefined | - | - | - |
mapTypes | naver.maps.MapTypeRegistry | undefined | - | - | - |
maxBounds | naver.maps.Bounds | naver.maps.BoundsLiteral | undefined | - | - | - |
padding | naver.maps.Margin | undefined | - | - | - |
resizeOrigin | naver.maps.Position | undefined | - | - | - |
overlayZoomEffect | string | null | undefined | - | - | - |
tileSpare | number | undefined | - | - | - |
zoomOrigin | naver.maps.Coord | naver.maps.CoordLiteral | undefined | - | - | - |
blankTileImage | string | null | undefined | - | - | - |
onCenterChanged | ((center: naver.maps.Coord) => void) | undefined | - | - | - |
onZoomChanged | ((zoom: number) => void) | undefined | - | - | - |
onBoundsChanged | ((bounds: naver.maps.Bounds) => void) | undefined | - | - | - |
onMapTypeIdChanged | ((mapTypeId: naver.maps.MapTypeId) => void) | undefined | - | - | - |
onSizeChanged | ((value: naver.maps.Size) => void) | undefined | - | - | - |
onCenterPointChanged | ((value: naver.maps.Point) => void) | undefined | - | - | - |
onMapTypeChanged | ((value: naver.maps.MapType) => void) | undefined | - | - | - |
onInit | (() => void) | undefined | - | - | - |
onIdle | (() => void) | undefined | - | - | - |
onPanning | (() => void) | undefined | - | - | - |
onZooming | (() => void) | undefined | - | - | - |
onTilesloaded | (() => void) | undefined | - | - | - |
onResize | (() => void) | undefined | - | - | - |
onProjectionChanged | (() => void) | undefined | - | - | - |
onAddLayer | (() => void) | undefined | - | - | - |
onRemoveLayer | (() => void) | undefined | - | - | - |
onClick | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onDblclick | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onRightclick | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onMousedown | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onMouseup | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onMouseover | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onMouseout | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onMousemove | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onDragstart | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onDrag | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onDragend | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onTouchstart | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onTouchmove | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onTouchend | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onPinchstart | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onPinch | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onPinchend | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onTap | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onLongtap | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onTwofingertap | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onDoubletap | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onKeydown | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |
onKeyup | ((e: naver.maps.PointerEvent) => void) | undefined | - | - | - |