Я пытаюсь найти хороший способ ограничить скорость отправки запросов геокодирования в службу геокодера API Карт Google v3. Я знаю, что у Javascript нет хороших wait
или sleep
, потому что его выполнение на данный момент однопоточное.
Каждый запрос геокодера отправляется внутри функции jQuery each
. Итак, общий скелет кода:
$(xml).find('foo').each(function(){
// do stuff
...
geocoder.geocode(request, function(results, status) {/* do other stuff */});
// do more stuff
...
}
Как установить фиксированный интервал ожидания между вызовами на geocode
? Если я отправляю каждый запрос так быстро, как будет работать Javascript, тогда я быстро начну получать OVER_QUERY_LIMIT
ответов - даже если я отправляю только 20 запросов. Это ожидаемо, и я пытаюсь заставить моего клиента хорошо играть с сервисом Google.
Альтернативный маршрут, который я хочу использовать, - полностью отказаться от Javascript для геокодирования и написать все это на Java. С Java было бы действительно легко спать между запросами.
Однако я не смог найти способ использовать службу геокодирования Google (в частности, используя API версии 3) в Java. GeoGoogle , похоже, устарел более чем на год и использует версию 2.
Можно ли это сделать на Java, и если да, то как?