Как мне выполнить геокодирование в цикле без превышения ПРЕДЕЛА ЗАПРОСА

#javascript #google-maps #geocoding

#javascript #google-карты #геокодирование

Вопрос:

Привет, у меня есть программа, в которой мне нужно выполнить неопределенное количество геокодирований (обычно между 20-200) и сохранить адрес в массиве, однако, когда я выполняю геокодирование в цикле, я получаю ошибку превышения предела запроса. Как мне обойти это

Ответ №1:

Здесь, скорее всего, никто не даст вам стратегию преодоления этого ограничения. Правильный ответ заключается в том, что вам нужно кэшировать их локально. Если это означает, что у вас есть 200 элементов, то вам может потребоваться день или два для создания кэша, но вам нужно повторно реализовать свою программу таким образом, чтобы она запрашивала геокод от Google только в том случае, если он еще не кэширован локально.

Комментарии:

1. Я могу получить запрос из любой точки на карте, кэширование всех координат на земном шаре невозможно, и именно поэтому я прошу решение

2. @Nick — Тогда вы, вероятно, не достигнете того, что вам нужно. Политика Google ограничивает количество запросов за определенный период времени. Это четко объясняется в их документации здесь: code.google.com/apis/maps/documentation/geocoding и также упоминается в TOS для Maps API. Вы можете зарегистрироваться в премиум-аккаунте, чтобы увеличить лимиты, но будут ограничения.

3. Я знаю, что существует ограничение в 2500 запросов в день, но меня это устраивает, мне просто нужно доказать, что это работает, единственная проблема, с которой я сталкиваюсь, — это геокодирование в цикле 100 раз и проверка того, что я получаю все 100 значений в массиве

4. @Nick — «Кроме того, мы применяем ограничение скорости запросов, чтобы предотвратить злоупотребление сервисом». Вы могли бы попробовать добавить вызовы в Sleep (), чтобы замедлить работу вашей программы, но если вы пытаетесь выполнить 100 запросов в цикле почти мгновенно, вы злоупотребляете сервисом в соответствии с их определением злоупотребления. Ограничение скорости запросов напрямую не указано, поэтому 5-10 секунд между запросами может быть достаточным, но вам нужно будет протестировать это или связаться с кем-нибудь через канал поддержки, чтобы узнать наверняка, насколько быстрое слишком быстрое.

Ответ №2:

ПРИВЕТ, я попытался сделать это на веб-сайте моего друга, и это сработало…. Я думаю, что лимит google в секунду достаточно хорош для обработки циклов …… я думаю, что я исчерпал свой лимит в 2500 запросов в день