맵박스(Mapbox)는 인기있는 오픈소스 맵핑 플랫폼입니다. 맵박스 SDK를 사용하면 자바스크립트로 지도에 다양한 기능을 추가할 수 있습니다. 이번 포스트에서는 자바스크립트로 맵박스 지도에 커스텀 마커를 추가하는 방법을 알아보겠습니다.
1. 맵박스 API 키 생성하기
먼저, 맵박스에서 API 키를 생성해야 합니다. 맵박스 개발자 포털에 가입한 후, 개발자 대시보드에서 API 키를 생성하세요. 이 API 키는 맵박스 SDK를 사용하기 위해서 필요합니다.
2. 필요한 파일 추가하기
맵박스 SDK를 사용하기 위해 필요한 파일들을 추가해야 합니다. HTML 파일의 head 태그 안에 다음과 같이 스크립트를 추가하세요.
<script src="https://api.mapbox.com/mapbox-gl-js/v2.4.1/mapbox-gl.js"></script>
<link href="https://api.mapbox.com/mapbox-gl-js/v2.4.1/mapbox-gl.css" rel="stylesheet" />
3. HTML 구조 설정하기
맵박스 지도를 보여줄 HTML 요소를 준비해야 합니다. 다음과 같이 div 태그를 사용하여 지도를 감싸는 컨테이너를 만드세요.
<div id="map"></div>
4. 자바스크립트로 맵박스 지도 초기화하기
다음으로, 자바스크립트 코드를 사용해 맵박스 지도를 초기화합니다. 앞서 생성한 API 키를 사용해야 합니다. 다음은 초기화를 위한 코드입니다.
mapboxgl.accessToken = 'YOUR_API_KEY';
const map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v11',
center: [longitude, latitude],
zoom: 12
});
위 코드에서 YOUR_API_KEY
를 생성한 API 키로 대체해야 합니다. longitude
와 latitude
는 지도의 중심 좌표를 나타냅니다.
5. 커스텀 마커 추가하기
이제 커스텀 마커를 추가할 차례입니다. 다음 코드를 사용하여 커스텀 마커를 생성하고 지도에 추가하세요.
const marker = new mapboxgl.Marker({
color: '#FF0000',
draggable: true
}).setLngLat([longitude, latitude])
.addTo(map);
위 코드에서 color
는 마커의 색상을 지정하고, draggable
은 마커를 드래그할 수 있는지 여부를 나타냅니다. setLngLat
메소드의 인자로 마커의 좌표를 전달합니다.
6. 결과 확인하기
위의 단계를 모두 완료하면 맵박스 지도에 커스텀 마커가 추가됩니다. 마커를 드래그하면 위치가 변경되는 것을 확인할 수 있습니다.