Подтвердить что ты не робот

Ограничения геокодирования API Javascript API

Каковы ограничения для геокодирования на стороне клиента с помощью API JavaScript Google Maps v3?


Мои исследования:

Однако нигде в какой-либо документации не указано, какие ограничения на геокодирование реализованы с помощью API JavaScript Google Maps v.3.

(Меня это беспокоило какое-то время, и я исследовал его не один раз и не нашел надежного ответа)

4b9b3361

Ответ 1

Я работаю в Google Maps для бизнеса. Следующее - мое личное мнение, а не Google, но позвольте сказать, что я довольно хорошо знаком с этой темой!

Во-первых, важно различать клиентское геокодирование (вызовы JavaScript для google.maps.Geocoder ) и серверное геокодирование (HTTP-запросы к /maps/api/geocode ). Этот вопрос и ответ конкретно касаются геокодирования на стороне клиента; для серверных ограничений, см. здесь. В частности, упомянутые 2500 запросов на каждый IP-день применяются только к серверному геокодированию, а не к стороне клиента.

Итак, короткий ответ: не существует документализованного ограничения на количество запросов для геокодирования на стороне клиента. Как только клиент загрузил библиотеку API JavaScript Google Maps, он может сделать столько запросов на геокодирование, сколько захочет, при условии, что они будут выполнены на разумной скорости. Два эмпирических правила, чтобы вы не столкнулись с проблемами:

  • Инициировать геокодирование в ответ на взаимодействие с пользователем, и вы будете в порядке, даже если есть короткие пакеты запросов (например, нажмите кнопку для геокодирования нескольких адресов).
  • Поймайте любые ошибки OVER_QUERY_LIMIT и обработайте их изящно (например, экспоненциальное отключение). Здесь приведен пример кода на Python.

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

UPDATE

По состоянию на 2017 год квота клиентской стороны рассчитывается в соответствии с соответствующей квотой веб-сервиса. Пожалуйста, посмотрите на ответ Кристофа Русси.

Ответ 2

Всегда читайте последние, которые вы можете найти на официальном веб-сайте официального сайта Google для правильной версии API, датированный ответ stackoverflow не является актуальной ссылкой!

https://developers.google.com/maps/documentation/geocoding/usage-limits

Вот что он сказал, когда я написал этот ответ:

Ограничения использования API геокодирования Google Maps

2500 бесплатных запросов в день, рассчитанных как сумма клиентской стороны и серверные запросы.

50 запросов в секунду, рассчитанных как сумма клиентской стороны и серверные запросы.

Включить оплату с оплатой по мере необходимости, чтобы разблокировать более высокие квоты:

$0.50 USD/1000 дополнительных запросов, до 100 000 в день.

В целом я думаю, что Google счастлив, пока запросы поступают от реальных пользователей, поскольку это имеет для них какое-то значение.

Существуют также способы сохранения нескольких запросов путем кэширования результатов в течение 30 дней: https://developers.google.com/maps/premium/optimize-web-services#optimize

Ответ 3

На основе https://developers.google.com/maps/articles/geocodestrat,

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

Итак, каковы ограничения скорости на сеанс карты?

В качестве ограничений на геокодирование на сеанс пользователя нет риска, что приложение достигнет глобального предела по мере роста вашей пользовательской базы. Геокодирование на стороне клиента не будет ограничиваться лимитом квоты, если вы не выполните пакет запросов геокодирования в пользовательском сеансе. Таким образом, запуск клиентское геокодирование, вам, как правило, не нужно беспокоиться о своих Квота.

Хорошо, какой предел? Здесь мы идем

https://developers.google.com/maps/documentation/business/articles/usage_limits

С лимитом скорости или 10 QPS (запросов в секунду), при отправке 11-го попросите ваше приложение проверить метку первой запросить и подождать, пока не пройдет 1 секунда. То же самое следует применять до ежедневных лимитов.

Все еще не понятно? меня тоже.

Это секретный ответ, который я нашел из их документа, и он говорит "ограничение скорости в 10 запросов в секунду"

https://developers.google.com/maps/documentation/business/webservices/quota

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

Ответ 4

Я недавно спросил об библиотеке "Места" (точнее, исследовал ее и пришел к выводу):

Что касается библиотеки мест для ограничений квоты API Карт Google

В принципе, похоже, что загрузка Map с ключом ограничена 25 000 в день на домен (это может быть неправильно, но я уверен, что это так).

Ограничения на геокодирование ограничены следующим образом:

2,500, если вы используете ключ API без настройки биллинга 100 000, если вы используете ключ API и настроили биллинг

Если вы выполняете геокодирование на стороне сервера (результаты предварительного кэширования или аналогичные), то ваше геокодирование относится к домену, и вы быстро исчерпаете запросы. (т.е. в аналогичном ключе, если вы делаете запросы мест с использованием REST API следующим образом: https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=XXXX)

Если вы используете библиотеку javascript, используя функцию автозаполнения или PlacesService, выполните следующие действия:

service = new google.maps.Geocoder();

тогда предел (2500 или 100 000 соответственно), предназначен для конечного пользователя, поэтому ваш лимит масштабируется с вашей пользовательской базой.

Ответ 5

В соответствии с статью, которую вы связали (под Когда использовать серверное геокодирование):

Ограничение на 2500 запросов на IP-адрес.

Итак - что именно вы подразумеваете под лимитом? Ограничение для хостинг-приложения или для клиента, выполняющего его?

Вышеприведенное утверждение говорит мне, что для "хозяина" нет предела; без ключевых или принудительных URL-адресов рефереров, Google не может определить (хороший) способ определить, откуда возникает запрос на геокодирование. Такую красоту REST, между прочим.

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