You can define many map types from external map services, like OpenStreetMap:
map.addMapType("osm", { getTileUrl: function(coord, zoom) { return "https://a.tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png"; }, tileSize: new google.maps.Size(256, 256), name: "OpenStreetMap", maxZoom: 18 });
You must define a function called getTileUrl
, which returns a tile URL according the coordenates in the map.