OVER_QUERY_LIMIT при использовании карт Google

У меня проблема при доступе к картам Google из моего приложения, когда я отправляю более 10 запросов в цикле из java-скрипта, я получаю исключение OVER_QUERY_LIMIT от службы геокодирования. есть ли способ избавиться от этого, я пытался задать некоторые временные задержки, используя setInterval () и т. д. ... но не работает.


person Sriharsha    schedule 20.08.2010    source источник
comment
возможный дубликат Как мне Геокодировать 20 адресов, не получив ответа OVER_QUERY_LIMIT?   -  person Gilles 'SO- stop being evil'    schedule 28.06.2011
comment
В этом вопросе я предлагаю ответ, который будет отправлять запросы до тех пор, пока все они не будут успешными: stackoverflow.com/questions/7649155/   -  person Jack B Nimble    schedule 04.10.2011


Ответы (6)


Возможно, вы отправляете слишком много запросов в секунду, а Google не позволяет Вы делаете это.

Прочитайте http://code.google.com/apis/maps/faq.html#geocoder_classorhttp

person Ilya Saunkin    schedule 23.08.2010

Геокодирование в JavaScript API ограничено по скорости. При первой загрузке API вы можете отправить 10 запросов на адресное геокодирование или 5 на обратное (широта) геокодирование, прежде чем получите ответ OVER_QUERY_LIMIT. Когда вы это сделаете, используйте "экспоненциальная отсрочка" для задержки ваших запросов.

Вы также можете присоединиться к обсуждению проблемы 4805 (gmaps-api-проблемы).

person miguev    schedule 03.09.2016

Если вы используете автозаполнение, попробуйте использовать Google API автозаполнения мест. (Хотя это не совсем то, о чем он спрашивал, я предполагаю, что многие придут сюда из-за этого вопроса)

person thealexbaron    schedule 08.02.2014

Имейте список API и используйте их случайным образом для каждого запроса. Например в питоне

как ключи = [key1,key1,key3....]

location = Geocoder(random.choice(keys)).geocode(address) 

or

location = Geocoder(random.choice(keys)).reverse_geocode(Lat,Long)

На основе вашего требования

person Yaswanth    schedule 05.10.2015

Сначала прочтите эту статью. 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);

person Ehsan ul haq    schedule 05.02.2019

Мы можем использовать очередь ajax.

Одновременно будет выполняться 20 запросов ajax, а остальные будут ждать в очереди.

Создайте несколько ключей геокодирования, сохраните их в массиве и используйте его случайным образом для каждого запроса ajax.

Здесь я загрузил 2200 маркеров. Добавление 2200 местоположений занимает около 1 минуты.

<https://jsfiddle.net/suchg/qm1pqunz/11/>
person sachin gavas    schedule 06.11.2016
comment
Это решение может противоречить Условиям использования, параграф 10.4b. - person xomena; 07.11.2016