Kakao.js
import React, { useEffect } from 'react';
const { kakao } = window;
function Kakao() {
useEffect(() => {
const container = document.getElementById('map'); // 지도를 표시할 div
const options = {
center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표
level: 3 // 지도의 확대 레벨
};
const map = new kakao.maps.Map(container, options); // 지도를 생성합니다
// 마커가 표시될 위치입니다
const markerPosition = new kakao.maps.LatLng(33.450701, 126.570667);
// 마커를 생성합니다
const marker = new kakao.maps.Marker({
position: markerPosition,
clickable: true // 마커를 클릭했을 때 지도의 클릭 이벤트가 발생하지 않도록 설정합니다
});
// 아래 코드는 위의 마커를 생성하는 코드에서 clickable: true 와 같이
// 마커를 클릭했을 때 지도의 클릭 이벤트가 발생하지 않도록 설정합니다
// marker.setClickable(true);
// 마커를 지도에 표시합니다.
marker.setMap(map);
// 마커를 클릭했을 때 마커 위에 표시할 인포윈도우를 생성합니다
const iwContent = '<div style="padding:5px;">Hello World!</div>', // 인포윈도우에 표출될 내용으로 HTML 문자열이나 document element가 가능합니다
iwRemoveable = true; // removeable 속성을 ture 로 설정하면 인포윈도우를 닫을 수 있는 x버튼이 표시됩니다
// 인포윈도우를 생성합니다
const infowindow = new kakao.maps.InfoWindow({
content : iwContent,
removable : iwRemoveable
});
// 마커에 클릭이벤트를 등록합니다
kakao.maps.event.addListener(marker, 'click', function() {
// 마커 위에 인포윈도우를 표시합니다
infowindow.open(map, marker);
});
}, []);
return (
<div id="map" style={{
width: '100vw',
height: '100vh'
}}></div>
)
}
export default Kakao;
const marker = new kakao.maps.Marker({
position: markerPosition,
clickable: true // 마커를 클릭했을 때 지도의 클릭 이벤트가 발생하지 않도록 설정합니다
});
clickable을 true로 설정한다.
// 마커를 클릭했을 때 마커 위에 표시할 인포윈도우를 생성합니다
const iwContent = '<div style="padding:5px;">Hello World!</div>', // 인포윈도우에 표출될 내용으로 HTML 문자열이나 document element가 가능합니다
iwRemoveable = true; // removeable 속성을 ture 로 설정하면 인포윈도우를 닫을 수 있는 x버튼이 표시됩니다
// 인포윈도우를 생성합니다
const infowindow = new kakao.maps.InfoWindow({
content : iwContent,
removable : iwRemoveable
});
// 마커에 클릭이벤트를 등록합니다
kakao.maps.event.addListener(marker, 'click', function() {
// 마커 위에 인포윈도우를 표시합니다
infowindow.open(map, marker);
});
이부분만 작성하면 클릭하면 내가 원하는 것을 띄울수있다.