Вы можете использовать google.maps.ImageMapType
для добавления пользовательского слоя, вот так:
google.maps.event.addDomListener(window, "load", function () {
// Create map
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 11,
center: {lat: 62.323907, lng: -150.109291},
mapTypeId: 'satellite'
});
// Replace this url with any url you want
// It's actually a url template
var tileUrl = "http://b.tile.stamen.com/terrain/{z}/{x}/{y}.png";
// Create a new ImageMapType layer.
var layer = new google.maps.ImageMapType({
name: "stamen_terrain",
getTileUrl: function(coord, zoom) {
return tileUrl.replace("{x}", coord.x).replace("{y}", coord.y).replace("{z}", zoom);
},
tileSize: new google.maps.Size(256, 256),
minZoom: 1,
maxZoom: 20
});
// Register the new layer, then activate it.
map.mapTypes.set("stamen_terrain", layer);
map.setMapTypeId("stamen_terrain");
});
body {
margin: 0;
padding: 0;
}
#map {
height: 400px;
width: 400px;
}
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3&sensor=false"></script>
<div id="map"></div>