도형 오버레이

Rectangle, Polygon, Polyline을 함께 표시하는 예제입니다.

코드 보기
import {
  NavermapsProvider,
  Container as MapDiv,
  NaverMap,
  Rectangle,
  Polygon,
  Polyline,
  useNavermaps,
} from 'react-naver-maps';

const rectBounds = {
  south: 37.56,
  west: 126.97,
  north: 37.57,
  east: 126.98,
};

const polygonPaths = [
  [
    { lat: 37.57, lng: 126.975 },
    { lat: 37.575, lng: 126.985 },
    { lat: 37.565, lng: 126.985 },
  ],
];

const polylinePath = [
  { lat: 37.555, lng: 126.97 },
  { lat: 37.56, lng: 126.975 },
  { lat: 37.555, lng: 126.98 },
  { lat: 37.56, lng: 126.985 },
];

function ShapesMapContent() {
  const navermaps = useNavermaps();

  return (
    <NaverMap
      defaultCenter={new navermaps.LatLng(37.565, 126.98)}
      defaultZoom={13}
    >
      <Rectangle
        bounds={rectBounds}
        strokeColor="#FF0000"
        strokeWeight={2}
        fillColor="#FF0000"
        fillOpacity={0.15}
      />
      <Polygon
        paths={polygonPaths}
        strokeColor="#00AA00"
        strokeWeight={2}
        fillColor="#00FF00"
        fillOpacity={0.15}
      />
      <Polyline path={polylinePath} strokeColor="#0000FF" strokeWeight={3} />
    </NaverMap>
  );
}

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

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

설명

  • Rectangle: bounds로 사각 영역을 지정합니다.
  • Polygon: paths에 꼭짓점 좌표 배열을 전달합니다.
  • Polyline: path에 경로 좌표를 전달합니다. 채움(fill) 없이 선만 그립니다.

모든 도형은 strokeColor, strokeWeight, fillColor, fillOpacity 등 공통 스타일 prop을 지원합니다.