para Google Maps v3, debe activar el evento de cambio de tamaño de manera diferente:
google.maps.event.trigger(map, "resize");
Consulte la documentación del evento de cambio de tamaño (deberá buscar la palabra "cambio de tamaño"): http://code.google.com/apis/maps/documentation/v3/reference.html#event
Actualizar
Esta respuesta ha estado aquí durante mucho tiempo, por lo que una pequeña demostración podría valer la pena y, aunque usa jQuery, no hay una necesidad real de hacerlo.
$(function() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644)
};
var map = new google.maps.Map($("#map-canvas")[0], mapOptions);
// listen for the window resize event & trigger Google Maps to update too
$(window).resize(function() {
// (the 'map' here is the result of the created 'var map = ...' above)
google.maps.event.trigger(map, "resize");
});
});
html,
body {
height: 100%;
}
#map-canvas {
min-width: 200px;
width: 50%;
min-height: 200px;
height: 80%;
border: 1px solid blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&dummy=.js"></script>
Google Maps resize demo
<div id="map-canvas"></div>
ACTUALIZACIÓN 2018-05-22
Con una nueva versión de renderizador en la versión 3.32 de la API de JavaScript de Maps, el evento de cambio de tamaño ya no forma parte de la Map
clase.
La documentación dice
Cuando se cambia el tamaño del mapa, el centro del mapa se fija
fuente: https://developers.google.com/maps/documentation/javascript/new-renderer
google.maps.event.trigger(map, "resize");
no tiene ningún efecto a partir de la versión 3.32