반응형
이 글의 동영상 강의
이번 포스트에서는 리액트에 카카오지도를 추가하는 코드를 만들어봅니다.
npx create-react-app kakaomap
프로젝트가 잘 실행되는지 확인해봅니다.
cd kakaomap
yarn start
Visual Studio를 실행합니다.
code .
index.html의 head에 다음 내용을 추가합니다.
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' https://dapi.kakao.com http://*.daumcdn.net; script-src 'self' 'unsafe-inline' https://dapi.kakao.com http://*.daumcdn.net; img-src 'self' 'unsafe-inline' https://dapi.kakao.com http://*.daumcdn.net;">
<meta http-equiv="X-Content-Security-Policy" content="default-src 'self' 'unsafe-inline' https://dapi.kakao.com http://*.daumcdn.net; script-src 'self' 'unsafe-inline' https://dapi.kakao.com http://*.daumcdn.net; img-src 'self' 'unsafe-inline' https://dapi.kakao.com http://*.daumcdn.net;">
<script type="text/javascript" src="https://dapi.kakao.com/v2/maps/sdk.js?autoload=false&appkey=발급받은키"></script>
App.js를 다음과 같이 수정합니다.
import './App.css';
import { useEffect } from 'react';
function App() {
//스크립트 파일 읽어오기
const new_script = src => {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = src;
script.addEventListener('load', () => {
resolve();
});
script.addEventListener('error', e => {
reject(e);
});
document.head.appendChild(script);
});
};
useEffect(() => {
//카카오맵 스크립트 읽어오기
const my_script = new_script('https://dapi.kakao.com/v2/maps/sdk.js?autoload=false&appkey=발급받은키');
//스크립트 읽기 완료 후 카카오맵 설정
my_script.then(() => {
console.log('script loaded!!!');
const kakao = window['kakao'];
kakao.maps.load(() => {
const mapContainer = document.getElementById('map');
const options = {
center: new kakao.maps.LatLng(37.56000302825312, 126.97540593203321), //좌표설정
level: 3
};
const map = new kakao.maps.Map(mapContainer, options); //맵생성
//마커설정
const markerPosition = new kakao.maps.LatLng(37.56000302825312, 126.97540593203321);
const marker = new kakao.maps.Marker({
position: markerPosition
});
marker.setMap(map);
});
});
}, []);
return (
<div className="App">
<div id="map" className="map"/>
</div>
);
}
export default App;
App.css에 class를 추가합니다.
.map {
width: 100%;
height: 600px;
align-items: center;
justify-content: center;
margin-left: auto;
margin-right: auto;
border-style: solid;
border-width: medium;
border-color: #D8D8D8;
}
실행화면
지도의 좌표는 다음 URL에서 찾으시면 됩니다.
(고맙게도 페이지를 만들어주셔서 감사합니다^^)
https://tablog.neocities.org/keywordposition.html
이상으로 리액트에 카카오맵을 추가해 보았습니다.
반응형
'Frontend' 카테고리의 다른 글
Nuxt3에서 Mobile device Check 방법 (0) | 2024.11.06 |
---|---|
Vuejs(Nuxtjs) 날짜포맷 filter 사용법(Date format filter) (0) | 2022.05.14 |
리액트활용-02.리액트로 카카오지도 페이지 만들기 1/2 (0) | 2021.09.26 |
리액트기초-04.자동생성된 React 소스 분석 (0) | 2021.09.06 |
리액트활용-01.aws s3에 React를 이용한 file upload 기능 만들기 2/2 (3) | 2021.08.12 |
리액트활용-01.aws s3에 React를 이용한 file upload 기능 만들기 1/2 (0) | 2021.08.12 |
리액트기초-03.Visual Studio Code 설치 (0) | 2021.08.12 |
리액트기초-02.React 프로젝트 만들기(create-react-app) (0) | 2021.08.10 |