OVER_QUERY_LIMIT при использовании карт Google - PullRequest
37 голосов
/ 20 августа 2010

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

Ответы [ 6 ]

11 голосов
/ 23 августа 2010

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

Чтение http://code.google.com/apis/maps/faq.html#geocoder_classorhttp

3 голосов
/ 03 сентября 2016

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

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

1 голос
/ 09 февраля 2014

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

0 голосов
/ 05 февраля 2019

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

0 голосов
/ 06 ноября 2016

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

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

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

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

<https://jsfiddle.net/suchg/qm1pqunz/11/>
0 голосов
/ 05 октября 2015

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

like keys = [key1, key1, key3 ....]

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

или

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

В зависимости от ваших требований

...