You need to create a google.maps.LatLngBounds object that is the union of the bounds of all the objects that you want displayed.
union(other:LatLngBounds) | LatLngBounds | Extends this bounds to contain the union of this and the given bounds.
pseudo code (you need to add the bounds of all the shapes you want displayed on the map to it):
var bounds = circle.getBounds();
bounds.union(rectangle.getBounds();
for (var aa=0; aa < arrayLatitude.length; aa++) {
var points = new google.maps.LatLng(arrayLatitude[aa], arrayLongitude[aa]);
bounds.extend(points);
}
map.fitBounds(bounds);