Complex styled maps

Read the documentation or view this example full screen.

function initMap() {
  var usRoadMapType = new google.maps.StyledMapType([
      {
        featureType: 'road.highway',
        elementType: 'geometry',
        stylers: [
          {hue: '#ff0022'},
          {saturation: 60},
          {lightness: -20}
        ]
      }, {
        featureType: 'road.arterial',
        elementType: 'all',
        stylers: [
          {hue: '#2200ff'},
          {lightness: -40},
          {visibility: 'simplified'},
          {saturation: 30}
        ]
      }, {
        featureType: 'road.local',
        elementType: 'all',
        stylers: [
          {hue: '#f6ff00'},
          {saturation: 50},
          {gamma: 0.7},
          {visibility: 'simplified'}
        ]
      }, {
        featureType: 'water',
        elementType: 'geometry',
        stylers: [
          {saturation: 40},
          {lightness: 40}
        ]
      }, {
        featureType: 'road.highway',
        elementType: 'labels',
        stylers: [
          {visibility: 'on'},
          {saturation: 98}
        ]
      }, {
        featureType: 'administrative.locality',
        elementType: 'labels',
        stylers: [
          {hue: '#0022ff'},
          {saturation: 50},
          {lightness: -10},
          {gamma: 0.90}
        ]
      }, {
        featureType: 'transit.line',
        elementType: 'geometry',
        stylers: [
          {hue: '#ff0000'},
          {visibility: 'on'},
          {lightness: -70}
        ]
      }
    ], {name: 'US Road Atlas'});

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 12,
    center: {lat: 41.85, lng: -87.65},
    mapTypeControlOptions: {
      mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'usroadatlas']
    }
  });

  map.mapTypes.set('usroadatlas', usRoadMapType);
  map.setMapTypeId('usroadatlas');
}
<div id="map"></div>
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}
#map {
  height: 100%;
}
<!-- Replace the value of the key parameter with your own API key. -->
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap">
</script>
JavaScript
function initMap() {
  var usRoadMapType = new google.maps.StyledMapType([
      {
        featureType: 'road.highway',
        elementType: 'geometry',
        stylers: [
          {hue: '#ff0022'},
          {saturation: 60},
          {lightness: -20}
        ]
      }, {
        featureType: 'road.arterial',
        elementType: 'all',
        stylers: [
          {hue: '#2200ff'},
          {lightness: -40},
          {visibility: 'simplified'},
          {saturation: 30}
        ]
      }, {
        featureType: 'road.local',
        elementType: 'all',
        stylers: [
          {hue: '#f6ff00'},
          {saturation: 50},
          {gamma: 0.7},
          {visibility: 'simplified'}
        ]
      }, {
        featureType: 'water',
        elementType: 'geometry',
        stylers: [
          {saturation: 40},
          {lightness: 40}
        ]
      }, {
        featureType: 'road.highway',
        elementType: 'labels',
        stylers: [
          {visibility: 'on'},
          {saturation: 98}
        ]
      }, {
        featureType: 'administrative.locality',
        elementType: 'labels',
        stylers: [
          {hue: '#0022ff'},
          {saturation: 50},
          {lightness: -10},
          {gamma: 0.90}
        ]
      }, {
        featureType: 'transit.line',
        elementType: 'geometry',
        stylers: [
          {hue: '#ff0000'},
          {visibility: 'on'},
          {lightness: -70}
        ]
      }
    ], {name: 'US Road Atlas'});

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 12,
    center: {lat: 41.85, lng: -87.65},
    mapTypeControlOptions: {
      mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'usroadatlas']
    }
  });

  map.mapTypes.set('usroadatlas', usRoadMapType);
  map.setMapTypeId('usroadatlas');
}
JavaScript + HTML
<!DOCTYPE html>
<html>
  <head>
    <title>Complex styled maps</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <style>
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
      #map {
        height: 100%;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script>
      function initMap() {
        var usRoadMapType = new google.maps.StyledMapType([
            {
              featureType: 'road.highway',
              elementType: 'geometry',
              stylers: [
                {hue: '#ff0022'},
                {saturation: 60},
                {lightness: -20}
              ]
            }, {
              featureType: 'road.arterial',
              elementType: 'all',
              stylers: [
                {hue: '#2200ff'},
                {lightness: -40},
                {visibility: 'simplified'},
                {saturation: 30}
              ]
            }, {
              featureType: 'road.local',
              elementType: 'all',
              stylers: [
                {hue: '#f6ff00'},
                {saturation: 50},
                {gamma: 0.7},
                {visibility: 'simplified'}
              ]
            }, {
              featureType: 'water',
              elementType: 'geometry',
              stylers: [
                {saturation: 40},
                {lightness: 40}
              ]
            }, {
              featureType: 'road.highway',
              elementType: 'labels',
              stylers: [
                {visibility: 'on'},
                {saturation: 98}
              ]
            }, {
              featureType: 'administrative.locality',
              elementType: 'labels',
              stylers: [
                {hue: '#0022ff'},
                {saturation: 50},
                {lightness: -10},
                {gamma: 0.90}
              ]
            }, {
              featureType: 'transit.line',
              elementType: 'geometry',
              stylers: [
                {hue: '#ff0000'},
                {visibility: 'on'},
                {lightness: -70}
              ]
            }
          ], {name: 'US Road Atlas'});

        var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 12,
          center: {lat: 41.85, lng: -87.65},
          mapTypeControlOptions: {
            mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'usroadatlas']
          }
        });

        map.mapTypes.set('usroadatlas', usRoadMapType);
        map.setMapTypeId('usroadatlas');
      }
    </script>
    <script async defer
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
    </script>
  </body>
</html>

Send feedback about...

Google Maps JavaScript API
Google Maps JavaScript API
Need help? Visit our support page.