Tile coordinates

by Tristen Brown

HTML

<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v1.4.0/mapbox-gl.js"></script>
<link rel="stylesheet" href="https://api.tiles.mapbox.com/mapbox-gl-js/v1.4.0/mapbox-gl.css">
<script src="https://unpkg.com/@mapbox/[email protected]/index.js"></script>
<div id="map"></div>
<div id="z">0,0,0</div>

CSS

body {
    margin: 0;
    padding: 0;
  }

  #map {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 100%;
  }

  #z {
    background: black;
    font-family: 'Helvetica';
    color: white;
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 5px;
    border-radius: 3px;
  }

JavaScript

mapboxgl.accessToken = 'pk.eyJ1IjoidHJpc3RlbiIsImEiOiJjajZoOXU4Z2kwNnppMnlxd2d6bTFvZ2xtIn0.PP7AoUakMfeqdXFHdsY0oA';

const map = new mapboxgl.Map({
  container: 'map',
	style: 'mapbox://styles/mapbox/streets-v11'
});

map.on('load', () => {
  const z = document.getElementById('z');
  map.on('move', () => {
		const { lng, lat } = map.getCenter();
  	const zoom = map.getZoom().toFixed(2);
    const coords = pointToTile(lng, lat, zoom);
		z.textContent = `
x: ${coords[0]}    
y: ${coords[1]}
z: ${coords[2]}
`
  });
});