Google Maps überschreitet das Abfragelimit

Ich weiß, dass ähnliche Fragen gestellt wurden, aber ich habe sie in keiner gefunden und beantwortet, da sie sich auf mein spezielles Problem beziehen.

Ich habe ein Javascript, das Google Maps verwendet, um Kunden-Postleitzahlen auf einer Karte zu platzieren. Das Problem, das ich habe, ähnelt dem, was andere bereits gepostet haben - ich erhalte den Fehler "Abfrageüberschreitung".

Ich habe verschiedene Setups mit setTimeOut versucht, um zu versuchen, die Daten innerhalb der zulässigen Zeitintervalle auf Google zu senden, kann sie jedoch nicht zum Laufen bringen.

Hier ist meine Aktion:

        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);                   
            });                             
        });

Wenn ich meine Seite mit dieser Aktion ausführe, erhalte ich 11 Markierungen zurück, obwohl in meiner JSON-Zeichenfolge viel mehr enthalten sind. Das window.setTimeout hat absolut keine Auswirkung - ich mache hier offensichtlich etwas falsch.

Ich würde mich über jede Hilfe in dieser Angelegenheit freuen.

Vielen Dank,

Antworten auf die Frage(1)

Ihre Antwort auf die Frage