В этом документе описаны параметры запросов для Places Aggregate API, а также приведены рекомендации по использованию этого сервиса.
Places Aggregate API позволяет выполнять несколько ключевых функций:
- Подсчет мест. Определение количества мест, соответствующих определенным критериям, таким как тип местоположения, статус, уровень цен и рейтинги.
- Получение информации о местах. Получите названия мест, соответствующих заданным фильтрам, а затем запросите более подробную информацию с помощью Places API.
- Гибкая фильтрация. Применяйте комплексные фильтры, чтобы получать точные агрегированные данные. Доступны следующие фильтры:
- Географический регион (круг, регион или многоугольник)
- Типы мест
- Статус
- Уровни цен
- Диапазоны оценок
Обязательные параметры
В этом разделе описаны обязательные параметры, которые нужно указывать в запросе к Places Aggregate API. Каждый запрос должен содержать следующие данные:
- Тип статистики.
- Фильтр по местоположению и типу.
Тип статистики
Указывает тип статистики, которую вы хотите рассчитать. Поддерживаются следующие типы статистики:
INSIGHT_COUNT– возвращает количество мест, соответствующих критериям фильтра.INSIGHT_PLACES– возвращает идентификаторы мест, соответствующие критериям фильтра.
Фильтры
Задает критерии для фильтрации мест. Как минимум, необходимо указать LocationFilter и TypeFilter.
Фильтр местоположения
Фильтр местоположений может быть одного из следующих типов:
circle– определяет область в виде круга с центром и радиусом.region– определяет область как регион.customArea– определяет область как многоугольник.
Круг
Если вы выбрали круг, укажите center и radius. В качестве center можно указать широту и долготу или идентификатор места в центре круга. Этот метод позволяет точно фильтровать данные на основе заданной круговой области.
center:latLng– широта и долгота центра круга. Широта должна быть числом от -90 до 90 включительно. Долгота должна быть числом от -180 до 180 включительно.place– идентификатор места, которое находится в центре круга. Обратите внимание, что поддерживаются только места, обозначенные точками. Эта строка должна начинаться с префиксаplaces/.
radius– радиус окружности в метрах. Число должно быть положительным.
Регион
Определите область как регион, передав идентификатор места в параметр place. Идентификатор места представляет географическую область (например, область, которую можно представить в виде многоугольника). Например, идентификатор места для Тампы (Флорида) – places/ChIJ4dG5s4K3wogRY7SWr4kTX6c. Обратите внимание, что не у всех идентификаторов мест есть четко определенная геометрия. В таких случаях Places Aggregate API возвращает код ошибки 400 с сообщением о том, что регион не поддерживается. Кроме того, для сложных географических регионов оптимизация внутренней обработки может привести к небольшому завышению площади (до 2–3 %), представляющей регион.
Чтобы определить, относится ли идентификатор места к неподдерживаемому типу, передайте его в запросе Geocoding API. Ответ содержит массив type, в котором перечислены типы мест, связанные с идентификатором места, например locality, neighborhood или country. Место будет отклонено при фильтрации по региону, если любой из его типов совпадает с указанным в этом списке.
Неподдерживаемые типы мест:
establishmentчаще всего указывает место, для которого категория ещё не выбрана.intersectionуказывает крупный перекресток, как правило, двух крупных дорог.subpremise– указывает на адресный объект ниже уровня здания, например квартиру, блок или апартаменты.
Пользовательская область
Определяет область многоугольника с помощью координат широты и долготы.
Вы можете перейти на сайт https://geojson.io/, нарисовать собственный многоугольник и ввести его координаты в запрос. Многоугольник должен иметь не менее четырех координат, причем первая и последняя координаты должны совпадать. По крайней мере три из указанных координат должны быть уникальными.
Если в файле есть несколько одинаковых координат, они будут считаться за одну. Однако если повторяющиеся координаты не следуют друг за другом (за исключением обязательных идентичных первой и последней координат), возникнет ошибка.
Кроме того, несмежные ребра не должны пересекаться, а ребра не могут иметь длину 180 градусов (то есть смежные вершины не могут быть антиподами).
Пример:
"coordinates":[ { "latitude":37.776, "longitude":-122.666 }, { "latitude":37.130, "longitude":-121.898 }, { "latitude":37.326, "longitude":-121.598 }, { "latitude":37.912, "longitude":-122.247 }, { "latitude":37.776, "longitude":-122.666 } ]
Фильтр по типу
Указывает типы мест, которые нужно включить или исключить. Список основных и дополнительных типов мест, поддерживаемых Places Aggregate API, приведен в таблице А в разделе Типы мест документации по Places API (New). Необходимо указать хотя бы один тип includedTypes или includedPrimaryTypes.
includedTypes– список включенных типов мест.excludedTypes– список исключенных типов мест.includedPrimaryTypes– список включенных основных типов мест.excludedPrimaryTypes– список исключенных основных типов мест.
Подробнее о том, как работают фильтры по типам и типы мест…
Необязательные параметры
Доступны следующие фильтры:
operatingStatus– указывает статусы мест, которые нужно включить или исключить. По умолчанию фильтрация выполняется по значениюoperatingStatus: OPERATING_STATUS_OPERATIONAL(одному конкретному значению).priceLevels– указывает ценовые категории мест, которые нужно включить. По умолчанию фильтрация по уровню цен не применяется и возвращаются все места, включая те, для которых нет информации об уровне цен.ratingFilter– диапазон оценок мест. По умолчанию фильтрация не выполняется (в результаты включаются все оценки).
Статус
Фильтр operatingStatus позволяет отбирать места по статусу, например OPERATIONAL или TEMPORARILY_CLOSED. Фильтр operatingStatus работает следующим образом:
- Если фильтры не заданы, в результаты включаются только места со статусом
OPERATING_STATUS_OPERATIONAL. - Если указан один или несколько фильтров, необходимо задать допустимые значения статуса (
OPERATING_STATUS_OPERATIONAL,OPERATING_STATUS_PERMANENTLY_CLOSEDилиOPERATING_STATUS_TEMPORARILY_CLOSED).
Уровень цен
Фильтр priceLevels позволяет отбирать места по уровню цен. Допустимые значения: PRICE_LEVEL_FREE, PRICE_LEVEL_INEXPENSIVE, PRICE_LEVEL_MODERATE, PRICE_LEVEL_EXPENSIVE и PRICE_LEVEL_VERY_EXPENSIVE.
Фильтр priceLevels работает следующим образом:
- Если фильтры не заданы, возвращаются все места независимо от того, назначен ли им уровень цен. В том числе места, для которых не указан уровень цен. Они могут не возвращаться при фильтрации по определенным уровням цен.
- Если указан один или несколько фильтров, возвращаются только места, соответствующие указанным уровням цен.
Фильтр: оценка
Фильтрует места по средней оценке пользователей. Оба поля необязательны. Если их не заполнить, в результаты будут включены места без оценки.
minRating– минимальная средняя оценка пользователей (от 1,0 до 5,0).maxRating– максимальная средняя оценка (от 1,0 до 5,0).
Кроме того, значение minRating всегда должно быть меньше или равно значению maxRating. Если значение minRating больше maxRating, возвращается ошибка INVALID_ARGUMENT.