Shadow DOM error in Google Map

by Keith Henry

HTML

<div id="map"></div>
<!-- Replace the value of the key parameter with your own API key. -->
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap" async defer></script>

CSS

/* 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;
}

JavaScript

let map;
function initMap() {

  const parent = document.getElementById('map');
  const shadow = parent.attachShadow({mode: 'open'});
  const wrapper = document.createElement('div');
  wrapper.style.height = '100%';
  shadow.appendChild(wrapper);

  map = new google.maps.Map(wrapper, {
    streetViewControl: false,
    mapTypeControl: false,  
    center: {lat: -34.397, lng: 150.644},
    zoom: 8
  });
}