Возможно, не очень эффективно, но ...
Вы можете рекурсивно уменьшать масштаб, проверяя, каждый раз, когда широта Lat находится в пределах карты,
// keep zooming out until map contains cords
function zoomOut(bounds, latlng, currentZoom) {
if (!bounds.contains(latlng)) {
var newZoom = currentZoom - 1;
map.setZoom(newZoom);
zoomOut(map.getBounds(), latlng, newZoom);
}
}
var fitToMarkers = function(markers) {
var length = markers.length;
for (var i = 0; i < length; i++) {
var latlng = new google.maps.LatLng(markers[i].lat, markers[i].lng)
zoomOut(map.getBounds(), latlng, map.getZoom());
}
};