[javascript] 자바스크립트를 활용하여 Mapbox지도에서 다중 축척 사용하기

맵을 포함한 웹 애플리케이션을 개발할 때, 다중 축척을 사용하면 사용자가 필요에 따라 지도의 축척을 자유롭게 조정할 수 있습니다. Mapbox는 자바스크립트 API를 제공하여 다중 축척을 구현할 수 있습니다. 이번 글에서는 자바스크립트를 사용하여 Mapbox 지도에서 다중 축척을 활용하는 방법에 대해 알아보겠습니다.

1. Mapbox 계정 및 API 키 생성

Mapbox API를 사용하기 위해 Mapbox 웹 사이트에 가입하여 계정을 생성한 후, API 키를 발급받아야 합니다. API 키를 발급받는 방법은 Mapbox 웹 사이트에서 자세히 설명되어 있습니다.

2. 필요한 라이브러리 가져오기

먼저, 다중 축척을 사용하기 위해 Mapbox 자바스크립트 라이브러리를 가져와야 합니다. 아래의 코드를 HTML 파일에 추가하여 라이브러리를 로드합니다.

<!DOCTYPE html>
<html>
<head>
    <!-- Mapbox 자바스크립트 라이브러리 -->
    <script src='https://api.mapbox.com/mapbox-gl-js/v2.3.1/mapbox-gl.js'></script>
    <!-- Mapbox 자바스크립트 라이브러리의 스타일시트 -->
    <link href='https://api.mapbox.com/mapbox-gl-js/v2.3.1/mapbox-gl.css' rel='stylesheet' />
</head>
<body>
    <!-- 지도를 표시할 컨테이너 -->
    <div id='map' style='width: 100%; height: 400px;'></div>

    <script>
        // 자바스크립트 코드 작성
    </script>
</body>
</html>

3. Mapbox 지도 생성하기

다음으로, 자바스크립트 코드를 사용하여 Mapbox 지도를 생성합니다. 아래의 코드는 기본적인 설정으로 Mapbox 지도를 생성하는 예시입니다.

// Mapbox API 키 설정
mapboxgl.accessToken = 'YOUR_API_KEY';

// Mapbox 지도 객체 생성
var map = new mapboxgl.Map({
    container: 'map', // 지도를 포함할 컨테이너의 ID
    style: 'mapbox://styles/mapbox/streets-v11', // 지도 스타일
    center: [longitude, latitude], // 중심 좌표 설정
    zoom: 12 // 기본 축척 레벨 설정
});

위 코드에서 YOUR_API_KEY를 발급받은 Mapbox API 키로 대체해야 합니다.

4. 다중 축척 사용하기

Mapbox는 다중 축척을 사용할 수 있는 MapboxNavigationControl 컨트롤을 제공합니다. 이를 활용하여 사용자가 지도의 축척을 변경할 수 있도록 만들 수 있습니다. 아래의 코드는 MapboxNavigationControl을 사용하여 지도에 다중 축척 컨트롤을 추가하는 예시입니다.

// MapboxNavigationControl 추가
var navControl = new mapboxgl.NavigationControl();
map.addControl(navControl, 'top-right');

위의 코드를 추가하면 지도 오른쪽 상단에 축척 컨트롤이 추가됩니다. 사용자는 이 컨트롤을 통해 지도의 축척을 조절할 수 있습니다.

5. 추가적인 설정

다중 축척을 사용하면 축척 컨트롤 외에도 다른 설정을 추가할 수 있습니다. Mapbox 자바스크립트 API에는 다양한 설정 옵션이 있으므로, 필요한 설정을 추가로 구현할 수 있습니다. 자세한 내용은 Mapbox 자바스크립트 API 문서를 확인하시기 바랍니다.

마무리

이번 글에서는 자바스크립트를 활용하여 Mapbox 지도에서 다중 축척을 사용하는 방법에 대해 알아보았습니다. Mapbox 자바스크립트 API를 활용하면 다양한 설정과 기능을 추가하여 웹 애플리케이션에서 사용자에게 좀 더 편리한 지도 환경을 제공할 수 있습니다.