Traffic Layer

Sample code for Google Maps Platform JavaScript API author(s): Justin Poehnelt

HTML

<!doctype html>
<!--
 @license
 Copyright 2019 Google LLC. All Rights Reserved.
 SPDX-License-Identifier: Apache-2.0
-->
<html>
  <head>
    <title>Traffic Layer</title>

    <!-- jsFiddle will insert css and js -->
  </head>
  <body>
    <div class="buttons">
      <button onclick="goToLocation({ lat: 2.944121 , lng: 101.700232 })">Putrajaya</button>
      <button onclick="goToLocation({ lat: 6.1228, lng: 100.3668 })">Alor Setar</button>
      <button onclick="goToLocation({ lat: 2.2655, lng: 102.2831 })">Ayer Keroh, Melaka</button>
      <button onclick="goToLocation({ lat: 5.3294, lng: 103.1374 })">Kuala Terengganu</button>
    </div>
    <div id="map"></div>

    <!-- 
      The `defer` attribute causes the script to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises. See
      https://developers.google.com/maps/documentation/javascript/load-maps-js-api
      for more information.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&loading=async&callback=initMap&v=weekly"
      async defer
    ></script>
  </body>
</html>

CSS

/**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0
 */
/* 
 * Always set the map height explicitly to define the size of the div element
 * that contains the map. 
 */
#map {
  height: 100%;
}

/* 
 * Optional: Makes the sample page fill the window. 
 */
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}
a[href="https://jsfiddle.net/"] {
    display: none !important;
}

JavaScript

/**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0
 */


let map;

      function initMap() {
        map = new google.maps.Map(document.getElementById("map"), {
          zoom: 15,
          center: { lat: 2.944121, lng: 101.700232 },
        });

        const trafficLayer = new google.maps.TrafficLayer();
        trafficLayer.setMap(map);
      }

      function goToLocation(location) {
        map.setCenter(location);
        map.setZoom(15);
      }

      window.initMap = initMap;