In API v2, the map object had a handy method getBoundsZoomLevel(). I used it to get the zoom level which fits the bounds best, then manipulated this optimal zoom level somehow and finally set the desired zoom level.
I cannot find similar function in API v3. (What a continuous frustrating experience when moving from v2 to v3)
Do I really have to use map.fitBounds(), map.getZoom(), manipulate and setZoom() again? That's really stupid!