I've finally found how to fix my problem which is a mix between @Andy's solution and mine. The resize
event must indeed be triggered, however the zoom level and the map center are not properly displayed, as you can see below :

To update the zoom level and the center, I use this home-made method which updates the bounds of my map depending on the map markers :
var updateBounds = function ( map, markers ) {
var bounds = new google.maps.LatLngBounds();
for ( var i = 0, len = markers.length ; i < len ; i++ ) {
bounds.extend ( markers[i].marker.position );
}
// extend bounds using two invisible markers so the markers don't get too close to the map borders
var
extendPoint1 = new google.maps.LatLng ( bounds.getNorthEast().lat() + 0.001, bounds.getNorthEast().lng() + 0.001 ),
extendPoint2 = new google.maps.LatLng ( bounds.getNorthEast().lat() - 0.001, bounds.getNorthEast().lng() - 0.001 );
bounds.extend ( extendPoint1 );
bounds.extend ( extendPoint2 );
map.fitBounds ( bounds );
};