커스텀 오버레이
React 컴포넌트를 지도 위에 직접 렌더링하는 예제입니다.
코드 보기
import {
NavermapsProvider,
Container as MapDiv,
NaverMap,
CustomOverlay,
useNavermaps,
} from 'react-naver-maps';
function CustomOverlayMapContent() {
const navermaps = useNavermaps();
return (
<NaverMap
defaultCenter={new navermaps.LatLng(37.5666805, 126.9784147)}
defaultZoom={15}
>
<CustomOverlay position={{ lat: 37.5666805, lng: 126.9784147 }}>
<div
style={{
background: '#fff',
border: '2px solid #6366f1',
borderRadius: '8px',
padding: '8px 12px',
fontSize: '14px',
fontWeight: 'bold',
color: '#1e293b',
boxShadow: '0 2px 8px rgba(0,0,0,0.15)',
transform: 'translate(-50%, -100%)',
}}
>
커스텀 오버레이
</div>
</CustomOverlay>
</NaverMap>
);
}
function CustomOverlayMap() {
return (
<MapDiv style={{ width: '100%', height: '400px' }}>
<CustomOverlayMapContent />
</MapDiv>
);
}
export default function CustomOverlayExample() {
return (
<NavermapsProvider ncpKeyId="aluya4ff04">
<CustomOverlayMap />
</NavermapsProvider>
);
} 설명
CustomOverlay는 position 좌표에 children을 렌더링합니다. React의 createPortal을 사용하므로 일반 React 컴포넌트를 그대로 활용할 수 있습니다.
스타일은 CSS로 자유롭게 지정하세요.