Polygon does not have a getBounds method in the Google Maps API version 3. You can implement it manually. But there are fors in it. By the way. I applied the getBounds method. This is a hard-coded version. Link to the demo.
UPDATE
To get a single border for multiple polygons, use the union method of the getBounds method.
var coordinates = [ new google.maps.LatLng(10,15), new google.maps.LatLng(12,16), new google.maps.LatLng(11,18), new google.maps.LatLng(11,19), new google.maps.LatLng(13,21), new google.maps.LatLng(12,22), new google.maps.LatLng(13,24), new google.maps.LatLng(11,25), new google.maps.LatLng(8,23), new google.maps.LatLng(7,23), new google.maps.LatLng(8,21), new google.maps.LatLng(6,17), new google.maps.LatLng(9,16) ] var coordinates_1 = [ new google.maps.LatLng(15,28), new google.maps.LatLng(16,30), new google.maps.LatLng(17,30), new google.maps.LatLng(16,31), new google.maps.LatLng(16,32), new google.maps.LatLng(14,29), ] var options = { path: coordinates, strokeColor: "#222", strokeOpacity: 1, strokeWeight: 2, fillColor: "#000", fillOpacity: 0, zIndex: 0, map: map } var options_1 = { path: coordinates_1, strokeColor: "#222", strokeOpacity: 1, strokeWeight: 2, fillColor: "#000", fillOpacity: 0, zIndex: 0 } var polygon = new google.maps.Polygon(options); var polygon_1 = new google.maps.Polygon(options_1); if(!google.maps.Polygon.prototype.getBounds) google.maps.Polygon.prototype.getBounds = function() { var bounds = new google.maps.LatLngBounds(); var paths = this.getPaths(); for (var i = 0; i < paths.getLength(); i++) { var path = paths.getAt(i); for (var j = 0; j < path.getLength(); j++) { bounds.extend(path.getAt(j)); } } return bounds; } var rectangle = new google.maps.Rectangle({ strokeColor: '#FF0000', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#FF0000', fillOpacity: 0.35, map: map, bounds: polygon.getBounds() }); var rectangle_1 = new google.maps.Rectangle({ strokeColor: '#FF0000', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#FF0000', fillOpacity: 0.35, map: map, bounds: polygon_1.getBounds() }); var rectangle_single = new google.maps.Rectangle({ strokeColor: '#FFC000', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#FFF000', fillOpacity: 0.35, map: map, bounds: polygon.getBounds().union(polygon_1.getBounds()) });