В этом документе описаны параметры запроса для API Places Aggregate, а также приведены рекомендации и лучшие практики использования этого сервиса.
API Places Aggregate позволяет выполнять несколько ключевых функций:
- Подсчет мест : Определите количество мест, соответствующих определенным критериям, таким как тип местоположения, статус работы, уровень цен и рейтинг.
- Получение подробной информации о местах : получите названия мест, соответствующих указанным фильтрам, а затем получите более подробную информацию с помощью API Places.
- Гибкая фильтрация : Применяйте комплексные фильтры для получения точных сводных данных. Доступные фильтры включают в себя следующие:
- Географическая область (круг, регион или пользовательский многоугольник)
- Типы мест
- Рабочее состояние
- Уровень цен
- Диапазоны оценок
Необходимые параметры
В этом разделе описаны необходимые параметры при отправке запроса к API Places Aggregate. Каждый запрос должен содержать следующие данные:
- Своеобразное озарение.
- Фильтр по местоположению и фильтр по типу.
Тип аналитической информации
Указывает тип получаемой информации. Поддерживаются следующие типы информации:
-
INSIGHT_COUNT: Возвращает количество мест, соответствующих критериям фильтра. -
INSIGHT_PLACES: Возвращает идентификаторы мест , соответствующих критериям фильтра.
Фильтры
Задает критерии для фильтрации мест. Как минимум, необходимо указать LocationFilter и TypeFilter .
Фильтр по местоположению
Фильтр по местоположению может иметь один из следующих типов:
-
circle: Определяет область как круг с центром и радиусом. -
region: Определяет область как регион. -
customArea: Определяет область в виде пользовательского многоугольника.
Круг
Если вы выберете географическую область в виде круга, вам необходимо указать center и radius . center могут быть либо широта и долгота, либо идентификатор места (Place ID) центра круга. Этот метод позволяет выполнять точную фильтрацию на основе определенной вами круговой области.
-
center:-
latLng: Широта и долгота центра круга. Широта должна быть числом от -90 до 90 включительно. Долгота должна быть числом от -180 до 180 включительно. -
place: Идентификатор точки в центре круга. Обратите внимание, что поддерживаются только точечные точки. Эта строка должна начинаться с префиксаplaces/.
-
-
radius: радиус окружности в метрах. Это число должно быть положительным.
Область
Определите свою область как регион, передав идентификатор места (place ID) параметру place . Идентификатор места представляет собой географическую область (например, область, которую можно представить многоугольником). Например, идентификатор места Тампа, Флорида, — places/ChIJ4dG5s4K3wogRY7SWr4kTX6c . Обратите внимание, что не все идентификаторы мест имеют четко определенную геометрию, и в этих случаях API Places Aggregate возвращает код ошибки 400 с сообщением о том, что регион не поддерживается. Кроме того, для сложных географических регионов внутренние оптимизации обработки могут привести к небольшому завышению площади (до 2-3%), представляющей регион.
Чтобы определить, относится ли идентификатор места к неподдерживаемому типу, передайте идентификатор места в запросе API геокодирования . Ответ будет содержать массив type , в котором перечислены типы мест, связанные с идентификатором места, такие как locality , neighborhood или country . Место будет отклонено для фильтрации по региону, если хотя бы один из его типов соответствует этому списку.
К неподдерживаемым типам мест относятся:
-
establishment: обычно обозначает место, которое еще не классифицировано. -
intersection: обозначает крупное пересечение, обычно двух крупных дорог. -
subpremise: обозначает объект, расположенный ниже уровня основного помещения, например, квартиру, блок или апартаменты.
Пользовательская область
Определяет площадь пользовательского многоугольника с использованием координат широты и долготы.
Вы можете посетить Используйте https://geojson.io/ для построения пользовательского многоугольника и ввода его координат в запрос. Многоугольник должен содержать как минимум 4 координаты, причем первая и последняя координаты должны совпадать. По крайней мере 3 из предоставленных координат должны быть уникальными.
Последовательно совпадающие координаты будут рассматриваться как одна координата. Однако непоследовательные повторяющиеся координаты (за исключением обязательных идентичных первой и последней координат) приведут к ошибке.
Кроме того, не допускается пересечение несмежных ребер, а также ребер длиной 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 } ]
Тип фильтра
Указывает типы мест, которые следует включить или исключить. Список основных и дополнительных типов мест, поддерживаемых API Places Aggregate, см. в таблице A в разделе « Типы мест для API Places (новые)». Необходимо указать как минимум один тип 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 .