JSFiddle - React, Tailwind, and code Playground

by Tristen Brown

HTML

<link rel="stylesheet" href="https://api.mapbox.com/mapbox-assembly/mbx/v1.2.0/assembly.min.css">
<script src="https://api.mapbox.com/mapbox-gl-js/v3.3.0/mapbox-gl.js"></script>
<link rel="stylesheet" href="https://api.mapbox.com/mapbox-gl-js/v3.3.0/mapbox-gl.css">
<div id="map" class="absolute top bottom left right w-full"></div>

JavaScript

mapboxgl.accessToken =
  "pk.eyJ1IjoibWFwYm94c2F0ZWxsaXRlIiwiYSI6ImNqZWZ0MHg0djFqZWoyeG9kN3ZiMmkyd3cifQ.y2HNjGo7FcKQ7psI_BfGqQ"

const style = {
  version: 8,
  name: "Blank",
  sources: {
    composite: {
      url: "mapbox://mapbox.mapbox-streets-v8",
      type: "vector",
      promoteId: {
      	water: "water"
      }
    },
  },
  glyphs: "mapbox://fonts/mapbox/{fontstack}/{range}.pbf",
  projection: { name: "globe" },
  layers: [
    {
      id: "background",
      type: "background",
      paint: { "background-color": "rgb(162, 240, 61)" },
    },
    {
      id: "water",
      type: "fill",
      source: "composite",
      "source-layer": "water",
      paint: {
        "fill-color": [
          "case",
          ["to-boolean", ["feature-state", "hovered"]],
          "red",
          "rgb(87, 161, 239)",
        ],
      },
    },
  ],
}

var map = (window.map = new mapboxgl.Map({
  container: "map",
  style,
}))

map.on('drag', () => {
  console.log('drag'); // will no longer fire after setPitch is called.
  map.setPitch(map.getPitch() + 1);
});