Skip to content

Instantly share code, notes, and snippets.

@malwoodsantoro
Last active March 4, 2022 04:54
Show Gist options
  • Save malwoodsantoro/fea9bc14e2d1565d29ebbcab0badd705 to your computer and use it in GitHub Desktop.
Save malwoodsantoro/fea9bc14e2d1565d29ebbcab0badd705 to your computer and use it in GitHub Desktop.
Add 'go to route' button to recenter on route after panning
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Display driving directions</title>
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
<script src="https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.js"></script>
<link href="https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.css" rel="stylesheet" />
<style>
body {
margin: 0;
padding: 0;
}
#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
#route {
display: block;
position: relative;
margin: 0px auto;
width: 25%;
height: 40px;
padding: 10px;
border: none;
border-radius: 3px;
font-size: 12px;
text-align: center;
color: #fff;
background: #99cfe0;
}
</style>
</head>
<body>
<script
src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v4.0.2/mapbox-gl-directions.js"></script>
<link rel="stylesheet"
href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v4.0.2/mapbox-gl-directions.css"
type="text/css" />
<div id="map"></div>
<button id="route">Go to route</button>
<script>
mapboxgl.accessToken = 'pk.eyJ1IjoibWFsLXdvb2QiLCJhIjoiY2oyZ2t2em50MDAyMzJ3cnltMDFhb2NzdiJ9.X-D4Wvo5E5QxeP7K_I3O8w';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v11',
center: [-79.4512, 43.6568],
zoom: 13
});
var routeCenter;
map.on('load', function () {
var directions = new MapboxDirections({
accessToken: mapboxgl.accessToken
})
map.addControl(directions);
directions.on('route', function (e) {
routeCenter = map.getCenter()
})
document.getElementById('route').addEventListener('click', function () {
map.flyTo({
center: [routeCenter.lng, routeCenter.lat],
essential: true // this animation is considered essential with respect to prefers-reduced-motion
});
});
})
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment