본문 바로가기
FE - Tools/React

[React] React에서 네이버 지도 API 사용하기

by thedev 2023. 1. 19.

 

React에서 네이버 지도 API 사용하기

 


 

1. public/index.html에 script 넣어주기

 

<!-- public/index.html -->

<script
      type="text/javascript"
      src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=발급받은ClientKey"
></script>

 

 index.html의 <head></head> 안에 위와 같은 script를 넣어준다. ClientId= 뒤에 발급받은 Key를 넣어준다. 환경변수를 사용하고 싶다면 <%=process.env.REACT_APP_환경변수이름%>으로 적어주면 된다.

 

<!-- 환경변수 사용 예시 -->

<script
      type="text/javascript"
      src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=<%=process.env.REACT_APP_MAP_CLIENT_ID%>"
></script>

 

 단, 개발자 도구에서 key 값이 다 보인다는 단점이 있다... 그래서 실제 서비스되는 웹 사이트에 적용하기엔 적절하지 않을 테니 참고해주시길! 😅

 

 

2. 지도 생성하기

 

 // src/Map.js
 
  const mapRef = useRef(null);
  const lat = // 위도 숫자로 넣어주기
  const lng = // 경도 숫자로 넣어주기
  
  useEffect(() => {
    const { naver } = window;
    if (mapRef.current && naver) {
      const location = new naver.maps.LatLng(lat, lng);
      const map = new naver.maps.Map(mapRef.current, {
        center: location,
        zoom: 17, // 지도 확대 정도
      });
      new naver.maps.Marker({
        position: location,
        map,
      });
    }
  }, []);
  
  return (
     <div ref={mapRef} style={{ width: "500px", height: "500px" }}></div>
  );

 

 지도를 넣고 싶은 곳에 useRef로 ref를 하나 만들어준다. 그리고 위도, 경도 값을 넣어주고 zoom 값은 원하는 대로 넣어준다. zoom은 지도의 확대 정도이다. 적절히 숫자를 바꿔보면 뭔지 바로 알 수 있으니, 원하는 값으로 적용해주면 됨! 그리고 반드시 width와 height 값을 지정해주어야 화면 상에 보이기 때문에 CSS로 width와 height를 꼭 설정해주어야 한다.

 


 

 

참고 자료

https://navermaps.github.io/maps.js/docs/tutorial-2-Getting-Started.html