Google Maps V3 fitBounds zooms to a closer view when called a second time with the same bounds
===

    function ZoomCenter(bounds, canvas)
    {
      var center = bounds.getCenter();

      if (canvas.getMapTypeId() == "roadmap") canvas.fitBounds(bounds);
      else
      {
        var maxZoomService = new google.maps.MaxZoomService();

        maxZoomService.getMaxZoomAtLatLng(center, function(response)
        {
          if (response.status != google.maps.MaxZoomStatus.OK) alert("Error in Google MaxZoomService");
          else
          {
            var max_zoom = (response.zoom > SATMAP_MAX_ZOOM) ? SATMAP_MAX_ZOOM : response.zoom;

            canvas.setOptions( { maxZoom: max_zoom } );
            canvas.fitBounds(bounds);
            canvas.setOptions( { maxZoom: SATMAP_MAX_ZOOM} );
          }
        });
      }
    }

This first time this is called it zooms to 1 less than what will fit on the map. The second time and and every time after the first it will zoom to the correct level using the exact same bounds data.

Is there a bug in fitBounds? or am I missing something?
