Change map mode

The following example shows how to change the map mode, toggling the visibility of labels.

Read the documentation.

let map;
async function init() {
    const { Map3DElement, MapMode } = await google.maps.importLibrary("maps3d");
    map = new Map3DElement({ center: { lat: 37.79810773998413, lng: -122.41784275049939, altitude: 89.08476932205978 }, range: 6062.016931506805, tilt: 81.17100663963272, heading: -56.047035719765596, });
    map.mode = MapMode.SATELLITE;
    document.body.append(map);
    const locationCamera = {
        center: { lat: 21.263523536467105, lng: -157.80663691939296, altitude: 80.28936069489404 },
        range: 1500.8202963253427, tilt: 76.9173260789542, heading: -44.59196007522445,
    };
    // Get the button element by its ID
    const toggleButton = document.getElementById('toggleButton');
    toggleButton.addEventListener('click', function () {
        // Toggle the labels.
        if (map.mode == MapMode.SATELLITE) {
            // Setting the map mode to HYBRID turns the labels on.
            map.mode = MapMode.HYBRID;
            document.getElementById('toggleButton').innerText = "Labels are on. (HYBRID)";
        }
        else {
            // Setting the map mode to SATELLITE turns the labels on.
            map.mode = MapMode.SATELLITE;
            document.getElementById('toggleButton').innerText = "Labels are off. (SATELLITE)";
        }
    });
}
init();
/* * Always set the map height explicitly to define the size of the div element
 * that contains the map. 
 */
html,
map {
  height: 100%;
}
body {
  height: 100%;
  margin: 0;
  padding: 0;
}
.toggleButton {
    background: rgb(235, 235, 235);
    color: black;
    border: none;
    padding: 10px 20px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    border-radius: 4px;
    cursor: pointer;
    position: fixed;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
}

.toggleButton:hover {
    background-color: #007bff;
    color: white;
}
<html>
  <head>
    <title>Map</title>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <div id="map"></div>

    <button class="toggleButton" id="toggleButton">Labels are off. (SATELLITE)</button>

    <!-- prettier-ignore -->
    <script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})
        ({key: "AIzaSyA6myHzS10YXdcazAFalmXvDkrYCp5cLc8", v: "beta",});</script>
  </body>
</html>

Try Sample

Clone Sample

Git and Node.js are required to run this sample locally. Follow these instructions to install Node.js and NPM. The following commands clone, install dependencies and start the sample application.

  git clone https://github.com/googlemaps-samples/js-api-samples.git
  cd samples/3d-label-toggle
  npm i
  npm start