[javascript] 자바스크립트로 Mapbox 지도의 커스텀 마커 추가하기

맵박스(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 키로 대체해야 합니다. longitudelatitude는 지도의 중심 좌표를 나타냅니다.

5. 커스텀 마커 추가하기

이제 커스텀 마커를 추가할 차례입니다. 다음 코드를 사용하여 커스텀 마커를 생성하고 지도에 추가하세요.

const marker = new mapboxgl.Marker({
  color: '#FF0000',
  draggable: true
}).setLngLat([longitude, latitude])
  .addTo(map);

위 코드에서 color는 마커의 색상을 지정하고, draggable은 마커를 드래그할 수 있는지 여부를 나타냅니다. setLngLat 메소드의 인자로 마커의 좌표를 전달합니다.

6. 결과 확인하기

위의 단계를 모두 완료하면 맵박스 지도에 커스텀 마커가 추가됩니다. 마커를 드래그하면 위치가 변경되는 것을 확인할 수 있습니다.

참고 자료