Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 状态代码超过\u查询\u限制Google Maps API_Javascript_Jquery_Google Maps Api 3 - Fatal编程技术网

Javascript 状态代码超过\u查询\u限制Google Maps API

Javascript 状态代码超过\u查询\u限制Google Maps API,javascript,jquery,google-maps-api-3,Javascript,Jquery,Google Maps Api 3,我有20个地址到地理编码。它们都是有效的。当我尝试对它们进行地理编码时,我得到了超过查询限制。我也在地图上放上标记,每次我都会在地图上看到不同数量的标记。我找到了这个,但对我没有帮助。此外,地理编码后,标记数组的长度为0,我不知道为什么。此html代码: <div class="address-list"> <ul> <li data-address='ТРЦ Квадрат, бульвар

我有20个地址到地理编码。它们都是有效的。当我尝试对它们进行地理编码时,我得到了超过查询限制。我也在地图上放上标记,每次我都会在地图上看到不同数量的标记。我找到了这个,但对我没有帮助。此外,地理编码后,标记数组的长度为0,我不知道为什么。此html代码:

 <div class="address-list">
                <ul>
                    <li data-address='ТРЦ Квадрат, бульвар Перова, 36, Киев, город Киев'>ТРЦ Квадрат, бульвар Перова 36</li>
                    <li data-address='Дніпровська набережна, 33'> ТЦ Аркадия, Днепровская Набережная 33 </li>
                    <li data-address='Срібнокільська, 3г, Київ'>  ТЦ ИнСилвьер, Срибнокольская 3г</li>
                    <li data-address="вулиця Лук'янівська, Київ"> ТЦ Квадрат, Белорусская 1</li>
                    <li data-address='проспект Генерала Ватутіна, 2, Київ, 02000'> ТЦ Скаймолл, проспект Генерала Ватутіна 2 </li>
                    <li data-address='вулиця Архітектора Вербицького 30а 30a, Київ, город Киев'> вулиця Архітектора Вербицького 30а</li>
                    <li data-address='Дніпровська набережна, 33, Київ, 02000'> Дніпровська набережна 33</li>
                    <li data-address='вулиця Михайла Гришка, 3а, Київ, 02000'> вулиця Михайла Гришка 3а</li>
                    <li data-address='вулиця Антоновича, 176, Київ, 03150'>ТРЦ Ocean Plaza, вулиця Антоновича 176</li>
                    <li data-address='вулиця Олександра Мишуги, 4, Київ'>ТЦ Пирамида, вулиця Олександра Мишуги 4</li>
                    <li data-address='вулиця Антоновича, 176, Київ, 03150'>ТРЦ Ocean Plaza, вулиця Антоновича 176</li>     
                    <li data-address='вулиця Олександра Архипенка, 6, Київ, 02000'>вулиця Мате Залки 6, Сильпо</li>
                    <li data-address='Бессарабська площа, Київ, 02000'>ТЦ Метроград, вулиця Красноармейская 13</li>
                    <li data-address='Спортивна площа, 1a, Київ, 01023'>ТЦ Гулливер, Спортивная 1а</li>
                    <li data-address='Спортивна площа, 1a, Київ, 01023'>ТЦ Гулливер, Спортивная 1а</li>
                    <li data-address='площа Льва Толстого, Київ, 01004'> ТЦ "Метроград", пл. Льва Толстого</li>
                    <li data-address='Майдан Незалежності, 1, Київ'>Пл. Майдан Независимости 1, ТЦ Глобус</li>
                </ul>
            </div>
            <div id="map">

            </div>

    'Пааажа33 of theocean Plaza,of thefrieчача176 ofааааааааа1072 аааааааа1072 аааааааа1072 аа“Маааа。Лаааааааааааааааааа
这是js代码:

var map;
var markers=[];
var addreses=[];
var buf=[];
var geocoder;
var delay = 100;
var index = 0;

function initMap() {
    map = new google.maps.Map(document.getElementById("map"),{
        center: { lat: 50.448998, lng: 30.522364},
        zoom: 11    
    });
    geocoder = new google.maps.Geocoder();
}

 $(function(){
     buf = $('.address-list ul li');
     for(var i = 0; i < buf.length; i++){
        var data = $(buf[i]).data('address');
        addreses[i] = data;
     }

     nextAddress();

    $('.address-list ul li').hover(
        function(e){
            for (var i = 0; i < buf.length; i++){
                var addr = $(this).data('address');
                if(addreses[i] == addr){
                    var pos = markers[i].getPosition();
                    map.setCenter(pos);
                    break;
                }
            }
        }
    );
});

function geocodeAddress(addr, mark, next){
    geocoder.geocode({'address': addr}, function(results, status){
        if(status === google.maps.GeocoderStatus.OK){ 
            mark = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
            });
            mark = results[0].geometry.location;
        }else{
            console.log('Error occured!' + status);
            if(status === google.maps.GeocoderStatus.OVER_QUERY_LIMIT){
                index--;
                delay++;
            }
        }
        console.log(markers.length);
        next();
    });
}

function nextAddress(){
    if(index < addreses.length){
        setTimeout(geocodeAddress(addreses[index], markers[index], nextAddress), delay);
        index++;
    }else{
        console.log("Markers done!!!" + markers.length);
    }
}
var映射;
var标记=[];
var addreses=[];
var buf=[];
var地理编码器;
无功延迟=100;
var指数=0;
函数initMap(){
map=new google.maps.map(document.getElementById(“map”){
中心:{lat:50.448998,lng:30.522364},
缩放:11
});
geocoder=新的google.maps.geocoder();
}
$(函数(){
buf=$('地址列表ul li');
对于(变量i=0;i
您实际上一次点击20个请求来进行地理编码。 地理编码器有配额和速率限制。您可以在不超过查询限制的情况下对10个位置进行地理编码(实际数量可能取决于服务器负载)。最好的解决方案是在超过查询限制错误时延迟,然后重试。像这样的

$(项目)。每个(功能(i,项目){

setTimeout(函数(){

},200)

}

请提供一个例子来说明您的问题。我在发布的代码中遇到一个javascript错误:
uncaughttypeerror:无法读取未定义的属性“geocode”。如果我解决了这个问题,我会在前10个位置之后得到
OVER\u QUERY\u LIMIT
,但没有标记。这意味着在
initMap和标记的地理编码。可能重复
geoLocate("address", function(myLatlng){
  ...value
});