// 시작 위치
const start = {
center: [127.0586339, 37.007009],
zoom: 1,
pitch: 0,
bearing: 0
};
// 종료 위치
const end = {
center: [127.0586339, 37.507009],
zoom: 18,
bearing: 130,
pitch: 75
};
// 지도 생성
const map = new routogl.Map({
container: 'map', // container ID
style: routogl.RoutoStyle.LIGHT,
...start
});
// Fly To
let isAtStart = true;
const flyTo = document.getElementById('flyTo');
flyTo.addEventListener('click', () => {
const target = isAtStart ? end : start;
isAtStart = !isAtStart;
map.flyTo({
...target, // 이동할 대상
duration: 12000, // 이동하는 애니메이션 총 시간 ms (=12초)
essential: true
});
});
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
/>
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>routo Developers - 신규기능 - Fly To</title>
<link href="https://api.mapbox.com/mapbox-gl-js/v3.7.0/mapbox-gl.css" rel="stylesheet">
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
/>
<style>html, body { margin: 0; padding: 0; } div#map { width: 100%; height: 50vh; }</style>
</head>
<body>
<main>
<div class="container">
<header
class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom"
>
<a
href="/"
class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none"
>
<span class="fs-4">routo Map Examples</span>
</a>
<nav aria-label="breadcrumb">
<ol class="breadcrumb p-3 bg-body-tertiary rounded-3"></ol>
</nav>
</header>
<examplecontent>
<h2 id="title" class="mb-5">Fly To</h2>
<hr/>
<p id="desc" class="text-start text-break fs-5">
routogl 지도의 특정 위치, 특정 줌 레벨로 이동하는 애니메이션 효과 예제입니다.
</p>
<!-- 지도 -->
<div id="map" class="mb-3 map"></div>
<div id="control" class="mb-3">
<button id="flyTo" class="button" style="margin-bottom: 5px;">Fly To</button>
</div>
</examplecontent>
</div>
</main>
</body>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://stg-api.routo.com/v3/maps/map?key=c914fb43-0d44-4fa7-838a-84619e3486c3"></script>
<script>
// 시작 위치
const start = {
center: [127.0586339, 37.007009],
zoom: 1,
pitch: 0,
bearing: 0
};
// 종료 위치
const end = {
center: [127.0586339, 37.507009],
zoom: 18,
bearing: 130,
pitch: 75
};
// 지도 생성
const map = new routogl.Map({
container: 'map', // container ID
style: routogl.RoutoStyle.LIGHT,
...start
});
// Fly To
let isAtStart = true;
const flyTo = document.getElementById('flyTo');
flyTo.addEventListener('click', () => {
const target = isAtStart ? end : start;
isAtStart = !isAtStart;
map.flyTo({
...target, // 이동할 대상
duration: 12000, // 이동하는 애니메이션 총 시간 ms (=12초)
essential: true
});
});</script>
</html>