정보 창

마커를 클릭하면 정보 창이 토글되는 예제입니다.

코드 보기
import { useState } from 'react';
import {
  NavermapsProvider,
  Container as MapDiv,
  NaverMap,
  Marker,
  InfoWindow,
  useNavermaps,
} from 'react-naver-maps';

function InfoWindowMapContent() {
  const navermaps = useNavermaps();
  const [open, setOpen] = useState(true);

  return (
    <NaverMap
      defaultCenter={new navermaps.LatLng(37.5666805, 126.9784147)}
      defaultZoom={15}
    >
      <Marker
        position={new navermaps.LatLng(37.5666805, 126.9784147)}
        onClick={() => setOpen((prev) => !prev)}
      />
      {open && (
        <InfoWindow
          content="서울시청"
          position={new navermaps.LatLng(37.5666805, 126.9784147)}
          onClose={() => setOpen(false)}
        />
      )}
    </NaverMap>
  );
}

function InfoWindowMap() {
  return (
    <MapDiv style={{ width: '100%', height: '400px' }}>
      <InfoWindowMapContent />
    </MapDiv>
  );
}

export default function InfoWindowExample() {
  return (
    <NavermapsProvider ncpKeyId="aluya4ff04">
      <InfoWindowMap />
    </NavermapsProvider>
  );
}

설명

InfoWindowcontent에 문자열을 전달하면 해당 텍스트가 정보 창에 표시됩니다. onClose 이벤트로 닫기를 감지할 수 있습니다.

마커를 클릭하면 정보 창이 열리고 닫힙니다.