Вы можете использовать addListener для привязки события к состоянию незанятости вашей карты.
Так что, возможно, вы можете загрузить его скрытым в фоновом режиме, отобразить счетчик, дождаться события и затем отобразить его.
Что-то вроде:
google.maps.event.addListener(yourmap, 'idle', function()
{
if(!mapLoaded) $('#yourmapdiv').trigger('mapLoaded');
mapLoaded=true;
});
Тогда:
$('#yourmapdiv').bind('mapLoaded', function(){
// hide your spinner, show your map
});
Я не уверен в том, что состояние бездействия касается только загрузки плиток или всех маркеров.