OVER_QUERY_LIMIT,我不知道为什么

时间:2014-10-14 17:00:46

标签: javascript jquery google-maps google-maps-api-3

我正在构建商店定位器类型的页面。用户输入他/她的邮政编码,然后进入结果页面。

在结果页面上,我首先运行geoencode以获取邮政编码的LatLng并将地图居中。然后我浏览结果div(从数据库中填充)并为每个结果运行geoencode并为每个设置标记。所有的距离计算都是在数据库方面完成的,所以我不必在这里处理它们。然后我设置了一个信息窗口和一个点击事件,这样当他们打开时,他们会在他们的信息窗口中获得相应的信息。这部分一切正常。

当我从数据库中获得超过10个结果时,我遇到的问题就是处理。 Google地图每秒最多有10个api通话。所以我尝试创建一个更多的结果按钮,然后点击,将在页面和地图上显示接下来的10个结果。

$('#more-results').click(function(){
    var $elements = $('#dealer-results-dev li[data-index='+base+']').nextUntil( '#dealer-results-dev li[data-index='+(base + 11)+']' );
    $elements.slideDown();
    $elements.each(function(index, element){
        $element = $(element);
        var address = $element.find('span.address').html() + ' ' +$element.find('span.address2').html();
        geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {  
            var marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
            });
            markers.push(marker);
            google.maps.event.addListener(marker, 'click', function() {
                var $element = $('#dealer-results li:nth-child('+(index +1)+')')
                var contentString = '<div class="content">'+
                        '<h3>'+ $element.find('h3').html()+'</h3>'+
                        '<span>' + $element.find('span.distance').html() +'</span><br>'+
                        '<span>' + $element.find('span.address').html() +'</span><br>'+
                        '<span>' + $element.find('span.address2').html() +'</span><br>'+
                        '<span>' + $element.find('span.phone').html() + '</span><br>'+
                        '<span>Link</span>'+
                        '</div>';
                infowindow.setContent(contentString);
                infowindow.open(map,marker);
                map.setCenter(results[0].geometry.location);
            });
        }else{
            alert("Geocode was not successful for the following reason: " + status);
        }
    });
});
base += 10;

});

我尝试将其设置为5,但我仍然在第4个元素处获得错误。

0 个答案:

没有答案