[javascript] 자바스크립트를 이용한 Mapbox 지도의 줌 인/아웃 제어하기

오늘은 자바스크립트를 이용하여 Mapbox 지도에서 줌 인과 줌 아웃을 제어하는 방법에 대해 알아보겠습니다. Mapbox는 오픈 소스 맵핑 플랫폼으로, 자바스크립트를 통해 맵 제어 및 상호작용을 할 수 있습니다.

Mapbox 지도 줌 인/아웃 버튼 만들기

먼저, Mapbox GL JS를 사용하여 지도를 생성해야합니다. 다음은 Mapbox GL JS를 이용한 간단한 지도 생성 예제입니다.

// 토큰 및 지도 옵션 설정
mapboxgl.accessToken = 'your-mapbox-access-token';
var map = new mapboxgl.Map({
  container: 'map',
  style: 'mapbox://styles/mapbox/streets-v11',
  center: [longitude, latitude],
  zoom: 10
});

이제 지도 위에 줌 인과 줌 아웃 버튼을 만들어 보겠습니다.

<!DOCTYPE html>
<html>
<head>
    <title>Mapbox 지도 줌 인/아웃 제어하기</title>
    <meta charset='utf-8' />
    <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
    <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' />
    <style>
        body { margin: 0; padding: 0; }
        #map { position: absolute; top: 0; bottom: 0; width: 100%; }
        .mapboxgl-ctrl-group { display: none; }
        .mapboxgl-ctrl-zoom-in, .mapboxgl-ctrl-zoom-out { display: inline-block; background-color: #fff; border: 1px solid #ccc; border-radius: 2px; font-size: 22px; line-height: 0.8; padding: 1px; cursor: pointer; }
        .mapboxgl-ctrl-zoom-in { margin-bottom: 10px; }
    </style>
</head>
<body>
    <div id='map'></div>
    <div class='mapboxgl-ctrl-top-right'>
        <div class='mapboxgl-ctrl-group'>
            <button class='mapboxgl-ctrl-zoom-in' type='button' onclick='zoomIn()'>+</button>
            <button class='mapboxgl-ctrl-zoom-out' type='button' onclick='zoomOut()'>-</button>
        </div>
    </div>
    <script>
        // 토큰 및 지도 옵션 설정
        mapboxgl.accessToken = 'your-mapbox-access-token';
        var map = new mapboxgl.Map({
            container: 'map',
            style: 'mapbox://styles/mapbox/streets-v11',
            center: [longitude, latitude],
            zoom: 10
        });

        // 줌 인 함수
        function zoomIn() {
            map.zoomIn();
        }

        // 줌 아웃 함수
        function zoomOut() {
            map.zoomOut();
        }
    </script>
</body>
</html>

위의 예제에서는 mapboxgl-ctrl-zoom-in 클래스를 가진 줌 인 버튼과 mapboxgl-ctrl-zoom-out 클래스를 가진 줌 아웃 버튼을 생성하였습니다. 버튼을 클릭할 때마다 zoomIn() 또는 zoomOut() 함수가 호출되어 지도의 줌 레벨이 조정됩니다.

결론

이번 포스트에서는 자바스크립트를 이용하여 Mapbox 지도에서 줌 인과 줌 아웃을 제어하는 방법을 알아보았습니다. Mapbox를 사용하면 사용자가 지도를 더 편리하게 조작할 수 있으므로, 웹 애플리케이션 또는 모바일 앱에서 유용하게 활용될 수 있습니다.

더 자세한 정보는 Mapbox GL JS documentation을 참조하시기 바랍니다.