В общем, если вы прячете блок с картой по принципу display none block. То достаточно выполнить событие resize для карты.
Или в функцию отдельную запихнуть и вызывать ее когда нужно, или на событие on click
function showMap(){
google.maps.event.trigger(map, 'resize');
}
//или
$('#btn').on('click', function() {
showMap();
google.maps.event.trigger(map, 'resize'); //или сразу
});
Но у меня другая проблема, в модальных окнах это не сработает, так как в дереве при загрузке не было карты, и нужно инициализировать карту в окне. Тут нужно смотреть доки popup окна вашего и на callback функцию вешать вызов функции initialize(); или на события event. Но нужно вызвать initialize(); пример
$('.get-direction').on('click',function() {
// if map is null (the first time), initiate Google maps;
if (! map) {
initialize();
}
searchAddress( $(this).html() );
showMap();
});
$('.close-map').click(function() {
hideMap();
});