[javascript] 자바스크립트로 Mapbox 지도의 특정 위치에 원 추가하기
지도 API를 사용하여 자바스크립트로 웹 페이지에 Mapbox 지도를 표시하고, 특정 위치에 원을 추가하는 방법을 알아보겠습니다.
1. Mapbox 계정 및 API 키 생성
Mapbox 서비스를 사용하기 위해서는 먼저 Mapbox 계정을 생성해야 합니다. 계정을 생성한 후에는 API 키를 생성하여 받아야 합니다. 이 API 키는 Mapbox 지도를 사용하기 위해 필요한 인증 정보입니다.
2. HTML 파일 생성
다음과 같이 마크업된 HTML 파일을 생성합니다.
<!DOCTYPE html>
<html>
<head>
<title>Mapbox 지도 테스트</title>
<meta charset='utf-8' />
<script src='https://api.mapbox.com/mapbox-gl-js/v2.4.0/mapbox-gl.js'></script>
<link href='https://api.mapbox.com/mapbox-gl-js/v2.4.0/mapbox-gl.css' rel='stylesheet' />
<style>
#map {
width: 100%;
height: 400px;
}
</style>
</head>
<body>
<div id='map'></div>
<script>
mapboxgl.accessToken = 'YOUR_API_KEY';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v11',
center: [longitude, latitude],
zoom: 12
});
var marker = new mapboxgl.Marker()
.setLngLat([longitude, latitude])
.addTo(map);
var circle = new mapboxgl.Circle()
.setLngLat([longitude, latitude])
.setRadius(100)
.addTo(map);
</script>
</body>
</html>
위의 코드에서 YOUR_API_KEY
부분을 생성한 API 키로 대체해야 합니다.
3. 자바스크립트 파일에서 위도와 경도 가져오기
원하는 위치에 원을 추가하기 위해서는 해당 위치의 위도와 경도 값을 알아야 합니다. 이 값을 가져올 수 있는 방법은 여러 가지가 있습니다. 예를 들어, 사용자의 현재 위치를 가져오거나, 주소를 통해 위도와 경도를 변환하는 등의 방법이 있습니다.
아래는 사용자의 현재 위치를 가져오는 예시입니다.
if (navigator.geolocation) {
// 사용자의 현재 위치를 가져오기
navigator.geolocation.getCurrentPosition(function (position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
// 위의 코드에서 Mapbox 지도 초기화 부분에 위도와 경도 값을 대입하여 사용하면 됩니다.
});
} else {
console.log('지오로케이션을 지원하지 않는 브라우저입니다.');
}
4. 결과 확인하기
위의 코드를 모두 작성하고 HTML 파일을 웹 브라우저에서 열면, Mapbox 지도가 표시되며 원이 원하는 위치에 추가된 것을 확인할 수 있습니다.
이와 같이 자바스크립트로 Mapbox 지도의 특정 위치에 원을 추가하는 방법을 알아보았습니다. 위의 코드를 활용하여 다양한 원의 크기와 스타일을 적용하거나, 다른 기능들을 추가할 수도 있습니다. Mapbox의 공식 문서를 참조하여 더 많은 기능들을 살펴보시기 바랍니다.
참고: 이 예시 코드는 Mapbox GL JS v2.4.0 버전을 기준으로 작성되었습니다.