Composited raster

by Tristen Brown

HTML

<link rel="stylesheet" href="https://api.tiles.mapbox.com/mapbox-gl-js/v1.1.0/mapbox-gl.css">
<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v1.1.0/mapbox-gl.js"></script>
<div id="map">
</div>
<div id="z">10</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 style = {
  version: 8,
  center: [139.767, 35.679],
  zoom: 10,
  sources: {
    composite: {
      url: 'mapbox://mapbox.satellite,yahoojapan.imagery-25,yahoojapan.imagery-16',
      type: "raster",
      tileSize: 256
    }
  },
  glyphs: 'mapbox://fonts/mapbox/{fontstack}/{range}.pbf',
  layers: [{
      id: 'background',
      type: 'background',
      paint: {
        'background-color': 'black'
      }
    },
    {
      id: 'satellite',
      type: 'raster',
      source: 'composite',
      'source-layer': 'mapbox_satellite_full'
    },
    {
      id: 'imagery-16',
      type: 'raster',
      source: 'composite',
      'source-layer': 'imagery-16'
    },
    {
      id: 'imagery-25',
      type: 'raster',
      source: 'composite',
      'source-layer': 'imagery-25',
      minzoom: 13
    }
  ]
};

const map = new mapboxgl.Map({
  container: 'map',
  style
});

map.on('load', () => {
	const z = document.getElementById('z');

	map.on('move', () => {
  	z.textContent = map.getZoom().toFixed(2);
  });
});