Shading the entire map, except for a defined circle:
const north = map.getBounds().getNorthEast().lat()
const east = map.getBounds().getNorthEast().lng()
const south = map.getBounds().getSouthWest().lat()
const west = map.getBounds().getSouthWest().lng()
const outer = [
{lat: north, lng: east},
{lat: south, lng: east},
{lat: south, lng: west},
{lat: north, lng: west}
];
const inner = drawCircle(circle.center,
const overlay = new google.maps.Polygon(
{
path: [outer, inner],
map: map,
fillColor: 'black',
fillOpacity: 0.35,
});