본문 바로가기
개발활용툴

Mapbox 사용법(1) 가입 및 기본사용

by 즐거운코딩 2023. 11. 10.
반응형

위치정보를 지도에 표출하기 위해 구글맵, 네이버, 카카오 등 다양한 맵을 사용할 수 있습니다.

이번에는 Open Street Map 기반의 지도서비스인 Mapbox를 이용하여 지도를 표출하는 방법을 설명하고자 합니다.

Mapbox에서 제공하는 API, SDK를 이용하면 웹, 모바일, 자동차용도 등 다양한 용도에 다양한 스타일의 지도서비스를 만들 수 있습니다.

http://mapbox.com

 

Mapbox | Maps, Navigation, Search, and Data

APIs and SDKs for AI-powered maps, location search, turn-by-turn navigation, and geospatial data in mobile or web apps. Get started for free.

www.mapbox.com

 

mapbox product

 

웹용 사용서비스인 Mapbox GL JS(자바스크립트용)은 월 5만건에 대해서는 무료로 이용 가능

mapbox pricing

1.  Mapbox 가입하기

mapbox sign up

 

            이름과 이메일로 가입

2. Mapbox token 발급하기

Create a token 을 선택하여 Mabpox 사용하기 위한 access token을 발급받습니다.

이렇게 간단하게 사용할 준비가 되었습니다.

 

3. Mapbox 사용방법

Mapbox에서는 product에 따른 documentation 을 통해서 쉽게 사용할 수 있도록 예제까지 제공하고 있습니다.

https://docs.mapbox.com/ 

 

Documentation

Examples, tutorials, and API references for building with Mapbox.

docs.mapbox.com

 

웹 애플리케이션용으로는 Mapbox GL JS 를 사용하면 됩니다.  여기서 GL은 Graphic Library 약자로 2D, 3D 맵을 렌더링 해주는 라이브러리 입니다. 지도는 클라이언트 사이트 렌더링(client side rendering)을 지원하기 때문에 웹브라우저에서 별도 플러그인 없이도 지도를 그려줍니다.

 

기본적인 사용방법은 다음과 같습니다.

  • CDN 설정하기 : HTML 파일의 <head> 에 아래와 같이 설정
<script src='https://api.mapbox.com/mapbox-gl-js/v2.14.1/mapbox-gl.js'></script>
<link href='https://api.mapbox.com/mapbox-gl-js/v2.14.1/mapbox-gl.css' rel='stylesheet' />

 

  • Map 표출하기 : HTML 파일의 <body> 에 아래와 같이 사용
<div id='map' style='width: 400px; height: 300px;'></div>
<script>
mapboxgl.accessToken = 'pk.eyJ1Ijoid29uc3Vrb2giLCJhIjoiY2xteGg4Z2N3MDQyNDJrbnp2NTdwN2c1dSJ9.-fYvqPuAKKSEwQA8POGgwA';
const map = new mapboxgl.Map({
    container: 'map', // container ID
    style: 'mapbox://styles/mapbox/streets-v12', // style URL
    center: [-74.5, 40], // starting position [lng, lat]
    zoom: 9, // starting zoom
});
</script>

 

[실제 사용 예시]

accessToken 은 실제 가입해서 발급받은 유효한 값으로 변경해서 사용해야 합니다.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Display a map on a webpage</title>
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
<link href="https://api.mapbox.com/mapbox-gl-js/v2.14.1/mapbox-gl.css" rel="stylesheet">
<script src="https://api.mapbox.com/mapbox-gl-js/v2.14.1/mapbox-gl.js"></script>
<style>
body { margin: 0; padding: 0; }
#map { position: absolute; top: 0; bottom: 0; width: 100%; }
</style>
</head>
<body>
<div id="map"></div>
<script>
	mapboxgl.accessToken = 'pk.eyJ1Ijoid29uc3Vrb2giLCJhIjoiY2xteGg4Z2N3MDQyNDJrbnp2NTdwN2c1dSJ9.-fYvqPuAKKSEwQA8POGgwA';
    const map = new mapboxgl.Map({
        container: 'map', // container ID
        // Choose from Mapbox's core styles, or make your own style with Mapbox Studio
        style: 'mapbox://styles/mapbox/streets-v12', // style URL
        center: [-74.5, 40], // starting position [lng, lat]
        zoom: 9 // starting zoom
    });
</script>

</body>
</html>

 

mapbox smaple map

 

반응형