У меня проблема при доступе к картам Google из моего приложения, когда я отправляю более 10 запросов в цикле из java-скрипта, я получаю исключение OVER_QUERY_LIMIT от службы геокодирования. есть ли способ избавиться от этого, я пытался задать некоторые временные задержки, используя setInterval () и т. д. ... но не работает.
OVER_QUERY_LIMIT при использовании карт Google
Ответы (6)
Возможно, вы отправляете слишком много запросов в секунду, а Google не позволяет Вы делаете это.
Прочитайте http://code.google.com/apis/maps/faq.html#geocoder_classorhttp
Геокодирование в JavaScript API ограничено по скорости. При первой загрузке API вы можете отправить 10 запросов на адресное геокодирование или 5 на обратное (широта) геокодирование, прежде чем получите ответ OVER_QUERY_LIMIT. Когда вы это сделаете, используйте "экспоненциальная отсрочка" для задержки ваших запросов.
Вы также можете присоединиться к обсуждению проблемы 4805 (gmaps-api-проблемы).
Если вы используете автозаполнение, попробуйте использовать Google API автозаполнения мест. (Хотя это не совсем то, о чем он спрашивал, я предполагаю, что многие придут сюда из-за этого вопроса)
Имейте список API и используйте их случайным образом для каждого запроса. Например в питоне
как ключи = [key1,key1,key3....]
location = Geocoder(random.choice(keys)).geocode(address)
or
location = Geocoder(random.choice(keys)).reverse_geocode(Lat,Long)
На основе вашего требования
Сначала прочтите эту статью. https://developers.google.com/maps/premium/previous-licenses/articles/usage-limits
Если вы отправляете много запросов за одну секунду, используйте метод задержки.
function sleep(milliSeconds) {
var startTime = new Date().getTime();
while (new Date().getTime() < startTime + milliSeconds);
}
вызовите этот метод в своей структуре цикла. сон(2200);
Мы можем использовать очередь ajax.
Одновременно будет выполняться 20 запросов ajax, а остальные будут ждать в очереди.
Создайте несколько ключей геокодирования, сохраните их в массиве и используйте его случайным образом для каждого запроса ajax.
Здесь я загрузил 2200 маркеров. Добавление 2200 местоположений занимает около 1 минуты.
<https://jsfiddle.net/suchg/qm1pqunz/11/>