지도 API 중에서 카카오맵을 사용하기로 한 이유
카카오맵 API를 사용하는데 필요한 문서와 예제가 많아 빠르게 구현하고 추후 유지보수하기 쉬울 것이라고 판단하여 선택
1. 설치
npm install react-kakao-maps-sdk
2. 스크립트 추가
라이브러리를 사용하기 위해 index.html 파일에 아래의 코드 추가
<!--// kakao map api -->
<script
type="text/javascript"
src="//dapi.kakao.com/v2/maps/sdk.js?appkey=%VITE_APPKAKAO_JAVASCRIPT_KEY%&libraries=services,clusterer"
></script>
<!-- kakao map api //-->
3. 맵 화면에 출력
구글링 해보니 여러 방법이 있었는데 카카오 공식문서를 참고하여 코드 작성함
import React, { useEffect, useRef } from 'react';
const { kakao } = window;
const KakaoMap = () => {
const mapContainer = useRef(null);
const mapStyle = { width: '100%', height: '40vh', display: 'block', margin: '0 auto' }; // 지도 스타일 설정
useEffect(() => {
const mapPosition = new kakao.maps.LatLng(333.450701, 126.570667); //지도의 초기 위치 설정
const mapOptions = {
center: mapPosition,
level: 4, // 지도 확대 레벨
};
// 지도 생성
const map = new kakao.maps.Map(mapContainer.current, mapOptions);
}, []);
return (
<div>
<div id="map" ref={mapContainer} style={mapStyle} />
</div>
);
};
export default KakaoMap;
1. useEffect 훅을 사용하여 컴포넌트가 마운트될 때 한번만 실행되도록 함
2. mapContainer 참조(ref)를 사용하여 지도가 렌더링 될 DOM요소를 참조함
3. mapOptions 객체 내 level 속성을 사용하여 지도 초기의 확대 수준을 설정 (필요에 따라 변경하면 됨)
4. useRef를 사용하여 div 요소는 mapContainer ref를 통해 지도가 렌더링될 DOM 요소를 참조
'공부 ✍' 카테고리의 다른 글
[BROWSER] async / defer (0) | 2023.10.16 |
---|---|
[ERROR] octal literals are not allowed. use the syntax '0o0' (2) | 2023.10.04 |
[React] User agent, 사용자 브라우저 확인 방법 (0) | 2023.04.30 |
[React] Memoization, useMemo (0) | 2023.04.20 |
[JavaScript] 호이스팅, TDZ (0) | 2022.10.17 |