[javascript] Mapbox지도에 다른 데이터 시각화하기

Mapbox는 오픈소스 맵핑 플랫폼으로, 웹 기반의 지도와 공간 데이터 시각화를 제공합니다. 이제는 Mapbox를 사용하여 지도에 다양한 데이터를 시각화해 보겠습니다.

1. Mapbox 계정 생성 및 프로젝트 설정하기

먼저, Mapbox 계정을 생성하고 프로젝트를 설정해야 합니다. Mapbox 홈페이지에 접속하여 계정을 생성하고, 새로운 프로젝트를 생성합니다. 프로젝트를 생성하면 API 키를 발급받을 수 있습니다.

2. 필요한 라이브러리 설치하기

Mapbox를 사용하기 위해 필요한 라이브러리를 설치해야 합니다. 가장 일반적으로 사용되는 것은 mapbox-gl 라이브러리입니다. 다음 명령어를 사용하여 설치합니다.

npm install mapbox-gl

3. Mapbox 지도 생성하기

Mapbox에서 제공하는 API 키를 사용하여 지도를 생성합니다. HTML 파일에 다음 코드를 추가합니다.

<!DOCTYPE html>
<html>
<head>
    <script src='https://api.mapbox.com/mapbox-gl-js/v2.6.1/mapbox-gl.js'></script>
    <link href='https://api.mapbox.com/mapbox-gl-js/v2.6.1/mapbox-gl.css' rel='stylesheet' />
    <style>
        #map {
            width: 100%;
            height: 500px;
        }
    </style>
</head>
<body>
    <div id='map'></div>
   
    <script>
        mapboxgl.accessToken = 'YOUR_ACCESS_TOKEN';
        var map = new mapboxgl.Map({
            container: 'map',
            style: 'mapbox://styles/mapbox/streets-v11'
        });
    </script>
</body>
</html>

위 코드에서 'YOUR_ACCESS_TOKEN'을 발급받은 API 키로 변경해야 합니다.

4. 데이터 시각화하기

이제 지도에 데이터를 시각화해 보겠습니다. 예를 들어, CSV 파일에 포함된 위도와 경도 정보를 사용하여 지도에 마커를 생성하는 방법을 알아보겠습니다. 먼저, CSV 파일을 읽어와 데이터를 추출합니다. 그리고 각 데이터에 대해 마커를 생성하고 지도에 추가합니다.

map.on('load', function () {
    d3.csv('data.csv', function (data) {
        data.forEach(function (marker) {
            var el = document.createElement('div');
            el.className = 'marker';
            new mapboxgl.Marker(el)
                .setLngLat([marker.lon, marker.lat])
                .addTo(map);
        });
    });
});

위 코드에서 data.csv는 실제 데이터가 있는 CSV 파일의 경로입니다. 데이터를 마커로 시각화하는 경우, 해당 마커에 대한 스타일 및 이벤트 처리를 추가로 설정할 수 있습니다.

결론

이제 Mapbox를 사용하여 지도에 다른 데이터를 시각화하는 방법을 알아보았습니다. Mapbox는 다양한 데이터 유형을 시각화하는 데 사용할 수 있는 강력한 도구입니다. 해당 기능을 활용하여 지도에 원하는 데이터를 시각적으로 표현해보세요.

참고 자료