google maps over query limit

Eu sei que perguntas semelhantes foram postadas, mas eu não encontrei e respondi em nenhuma delas, pois isso está relacionado ao meu problema em particular.

Eu tenho um javascript que usa o Google Maps para colocar zipcodes do cliente em um mapa. O problema que tenho é parecido com o que os outros já postaram - recebo um erro de "excesso de limite de consulta".

Eu tentei configurações diferentes usando o setTimeOut para tentar enviar ao Google os dados dentro dos intervalos de tempo permitidos, mas não consigo fazer com que funcione.

Aqui está a minha ação:

        function initialize() 
        {
            var rowNum      = 0 ; 
            var rowColor    = "" ;

            var latlng      = new google.maps.LatLng(27.91425, -82.842617);             

            var myOptions   = 
            {
                zoom: 7,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };

            map             = new google.maps.Map(document.getElementById("map_canvas"),myOptions);

            geocoder        = new google.maps.Geocoder();

            data.forEach(function(mapData,idx) 
            {       
                window.setTimeout(function() 
                { 
                    geocoder.geocode({ 'address': mapData.address}, function(results, status) 
                    {                   
                        if (status == google.maps.GeocoderStatus.OK) 
                        {
                            var marker = new google.maps.Marker({
                            map: map, 
                            position: results[0].geometry.location,
                            title: mapData.title,
                            icon: getIcon(mapData.type)
                        });

                        var contentHtml = "<div style='width:250px;height:90px'><strong>"+mapData.title+"</strong><br />"+mapData.address+"</div>";

                        var infowindow = new google.maps.InfoWindow({
                            content: contentHtml
                        });

                        google.maps.event.addListener(marker, 'click', function() 
                        {
                          infowindow.open(map,marker);
                        });

                        marker.locid = idx+1;
                        marker.infowindow = infowindow;
                        markers[markers.length] = marker;

                        if (idx%2 == 0)
                        {
                            rowColor = 'style="background-color:#00FFFF;"' ; 
                        }
                        else
                        {
                            rowColor = 'style="background-color:#FFFFFF;"' ; 
                        }

                        var sideHtml = '<div ' + rowColor + ' class="loc" data-locid="'+marker.locid+'"><b>'+mapData.title+'</b><br/>';
                             sideHtml += mapData.address + '</div>';
                             $("#locs").append(sideHtml); 

                        //Are we all done? Not 100% sure of this
                        if(markers.length == data.length) doFilter();
                    } 
                    else 
                    {
                        // alert("Geocode was not successful for the following reason: " + status);
                    }   
                }, 3000);                   
            });                             
        });

Quando executo minha página usando essa ação, recebo 11 marcadores, embora eu tenha muito mais do que isso em minha string JSON. O window.setTimeout não tem absolutamente nenhum efeito - obviamente estou fazendo algo errado aqui.

Eu apreciaria qualquer ajuda sobre este assunto.

Obrigado,

questionAnswers(1)

yourAnswerToTheQuestion