просматривая Google Maps / Политики Google Places, я с разных сторон наткнулся на комментарии о том, что кэширование запрещено / запрещено / ограничено определенными элементами / ограничено дополнительными временными ограничениями и т. Д. c. Большинство вопросов, связанных со стековым потоком, имеют возраст не менее 3 лет go, что может более не отражать текущую политику.
Что я ищу: опции для кэширования результатов поиска в диапазоне 20 миль от местоположения пользователя, чтобы предоставить один и тот же список тому же пользователю, запрашивающему тот же самый день спустя, или другому пользователю, который географически очень близко к первому пользователю. Результаты поиска представляют собой список мест, включая адрес, часы работы, номер телефона. Услуга предоставляется бесплатно.
Вот информация, которую я нашел:
1. Кэширование результатов В разделе 3.2.4.b Условий предоставления услуг Google Maps Platform указывается, что вы можете временно кэшировать> данные Карт Google на период от до 30 дней , чтобы повысить производительность вашего применение. Кэшируя ответы веб-служб, ваше приложение может избежать отправки повторяющихся запросов в течение коротких периодов времени. Фактически ответы веб-службы всегда включают HTTP-заголовок Cache-Control, который указывает> период, за который вы можете кэшировать результат, например, Cache-Control: publi c, max-age = 86400. Для повышения эффективности убедитесь, что ваше приложение всегда кэширует результаты, по крайней мере, в течение периода времени, указанного в> этом заголовке, но не более максимального времени, указанного в Условиях использования Google Maps Platform.
Вы можете реализовать кэширование использование веб-прокси, большинство из которых выполняют эту функцию из коробки. Или вы можете использовать собственную реализацию веб-прокси. Обратите внимание, что некоторые клиентские библиотеки HTTP также кэшируют HTTP> ответы. Чтобы увеличить частоту попаданий в кэш, убедитесь, что вы нормализуете координаты широты / долготы (широты и долготы) путем> округления до 6 знаков после запятой, что обеспечивает точность около 11 сантиметров вокруг экватора. Если вы добавите больше десятичных знаков, результаты от веб-служб не изменятся, но частота попаданий в кэш уменьшится.
Также с https://cloud.google.com/maps-platform/terms/maps-service-terms кажется, что нельзя кэшировать Google Места на карте Данные за исключением places_id
:
5. API мест 5.4 Кеширование. Клиент может временно кэшировать значения широты (широты) и долготы (lng) из Places> API для до 30 последовательных календарных дней , после чего Клиент должен удалить кэшированные значения широты и> долготы. Заказчик может кэшировать значения идентификатора места API мест (place_id) в соответствии с политиками API мест.
А из ссылки на Политики API мест:
Предварительная выборка, кэширование или хранение контента Приложения, использующие API Places, связаны Условиями использования Google Maps Platform. Раздел> 3.2.4 (a) и (b) терминов гласит, что вы не должны предварительно извлекать, индексировать, хранить или кэшировать какой-либо Контент>, за исключением ограниченных условий, указанных в условиях. Обратите внимание, что идентификатор места, используемый для однозначной идентификации места, освобождается от ограничения кэширования. Таким образом, вы можете хранить значения идентификаторов мест неограниченное время. Идентификатор места возвращается в поле place_id в> Ответах API мест.
Мои вопросы:
- Из раздела 3.2.4.b я понимаю, что могу временно кэшировать Данные Google Maps - но охватывают ли они результаты поиска в виде мест?
- Обходит ли нормализация long / lat от пользователя каким-либо образом обходить запрос пользователя на сохранение его местоположения (потому что оно нормализовано и больше не "их точное") местоположение?)
- Разрешено кэшировать идентификатор места в течение 30 дней, поэтому я бы сэкономил на затратах на получение списка поиска, но мне нужно запросить информацию о каждом месте размещения - верно ли мое понимание здесь?
Спасибо за вашу поддержку!